ebay-api 9.0.3 → 9.1.0

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.
@@ -13,7 +13,8 @@ export declare class ApiEnvError extends EBayError {
13
13
  export declare class EbayApiError extends EBayError {
14
14
  readonly errorCode: number | undefined;
15
15
  readonly meta?: EBayErrorMeta;
16
- constructor(message: string, description?: string, meta?: EBayErrorMeta, errorCode?: number | undefined);
16
+ readonly firstError?: EBayFirstError;
17
+ constructor(message: string, description?: string, meta?: EBayErrorMeta, errorCode?: number, firstError?: EBayFirstError);
17
18
  }
18
19
  export declare class EBayApiError extends EbayApiError {
19
20
  }
@@ -127,4 +128,4 @@ export type EBayErrorBag = {
127
128
  };
128
129
  export declare const extractEBayError: (result: ApiRequestResult, data?: EBayApiErrorResponse) => EBayErrorBag;
129
130
  export declare const handleEBayError: (error: any) => never;
130
- export declare const checkEBayTraditionalResponse: (result: any, data: any) => void;
131
+ export declare const checkEBayTraditionalResponse: (apiResponse: any, data: any) => void;
@@ -30,9 +30,10 @@ class ApiEnvError extends EBayError {
30
30
  }
31
31
  exports.ApiEnvError = ApiEnvError;
32
32
  class EbayApiError extends EBayError {
33
- constructor(message, description, meta, errorCode) {
33
+ constructor(message, description, meta, errorCode, firstError) {
34
34
  super(message, description, meta);
35
35
  this.errorCode = errorCode;
36
+ this.firstError = firstError;
36
37
  }
37
38
  }
38
39
  exports.EbayApiError = EbayApiError;
@@ -71,7 +72,7 @@ EBayTokenRequired.code = 930;
71
72
  class EBayInvalidScope extends EBayApiError {
72
73
  }
73
74
  exports.EBayInvalidScope = EBayInvalidScope;
74
- function getEBayErrorFromResponse(data) {
75
+ function getEBayError(data) {
75
76
  if (!data) {
76
77
  return {
77
78
  message: `eBay API Error`,
@@ -134,7 +135,7 @@ const getErrorCode = (eBayError) => {
134
135
  return undefined;
135
136
  };
136
137
  const extractEBayError = (result, data) => {
137
- const eBayError = getEBayErrorFromResponse(result.response?.data || data);
138
+ const eBayError = getEBayError(data || result.response?.data);
138
139
  const meta = {
139
140
  ...eBayError,
140
141
  [exports.rawError]: result
@@ -175,44 +176,44 @@ const handleEBayError = (error) => {
175
176
  else if (typeof error !== 'object') {
176
177
  throw new EBayError(error);
177
178
  }
178
- const { message, meta, description, errorCode } = (0, exports.extractEBayError)(error);
179
+ const { message, meta, description, errorCode, firstError } = (0, exports.extractEBayError)(error);
179
180
  if ('domain' in meta && meta.domain === 'ACCESS') {
180
- throw new EBayAccessDenied(message, description, meta, errorCode);
181
+ throw new EBayAccessDenied(message, description, meta, errorCode, firstError);
181
182
  }
182
183
  else if ('message' in meta && meta.message === 'invalid_grant') {
183
- throw new EBayInvalidGrant(message, description, meta, errorCode);
184
+ throw new EBayInvalidGrant(message, description, meta, errorCode, firstError);
184
185
  }
185
186
  else if ('message' in meta && meta.message === 'invalid_scope') {
186
- throw new EBayInvalidScope(message, description, meta, errorCode);
187
+ throw new EBayInvalidScope(message, description, meta, errorCode, firstError);
187
188
  }
188
189
  else if ('message' in meta && meta.message === 'Invalid access token') {
189
- throw new EBayInvalidAccessToken(message, description, meta, errorCode);
190
+ throw new EBayInvalidAccessToken(message, description, meta, errorCode, firstError);
190
191
  }
191
192
  else if (errorCode === EBayNotFound.code) {
192
- throw new EBayNotFound(message, description, meta, errorCode);
193
+ throw new EBayNotFound(message, description, meta, errorCode, firstError);
193
194
  }
194
- throw new EBayApiError(message, description, meta, errorCode);
195
+ throw new EBayApiError(message, description, meta, errorCode, firstError);
195
196
  };
196
197
  exports.handleEBayError = handleEBayError;
197
- const checkEBayTraditionalResponse = (result, data) => {
198
+ const checkEBayTraditionalResponse = (apiResponse, data) => {
198
199
  if (!('Errors' in data) && !('errorMessage' in data)) {
199
200
  return;
200
201
  }
201
- const { message, meta, description, errorCode } = (0, exports.extractEBayError)(result, data);
202
+ const { message, meta, description, errorCode, firstError } = (0, exports.extractEBayError)(apiResponse, data);
202
203
  if (typeof errorCode === 'undefined') {
203
- throw new EBayApiError(message, description, meta, errorCode);
204
+ throw new EBayApiError(message, description, meta, errorCode, firstError);
204
205
  }
205
206
  switch (errorCode) {
206
207
  case EBayIAFTokenExpired.code:
207
- throw new EBayIAFTokenExpired(message, description, meta, errorCode);
208
+ throw new EBayIAFTokenExpired(message, description, meta, errorCode, firstError);
208
209
  case EBayIAFTokenInvalid.code:
209
210
  case 1.32:
210
- throw new EBayIAFTokenInvalid(message, description, meta, errorCode);
211
+ throw new EBayIAFTokenInvalid(message, description, meta, errorCode, firstError);
211
212
  case EBayTokenRequired.code:
212
- throw new EBayTokenRequired(message, description, meta, errorCode);
213
+ throw new EBayTokenRequired(message, description, meta, errorCode, firstError);
213
214
  case EBayAuthTokenIsHardExpired.code:
214
- throw new EBayAuthTokenIsHardExpired(message, description, meta, errorCode);
215
+ throw new EBayAuthTokenIsHardExpired(message, description, meta, errorCode, firstError);
215
216
  }
216
- throw new EBayApiError(message, description, meta, errorCode);
217
+ throw new EBayApiError(message, description, meta, errorCode, firstError);
217
218
  };
218
219
  exports.checkEBayTraditionalResponse = checkEBayTraditionalResponse;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ebay-api",
3
3
  "author": "Daniil Tomilow",
4
- "version": "9.0.3",
4
+ "version": "9.1.0",
5
5
  "description": "eBay API for Node and Browser",
6
6
  "type": "module",
7
7
  "main": "./lib/index.js",
@@ -88,7 +88,7 @@
88
88
  "dependencies": {
89
89
  "axios": "^1.6.8",
90
90
  "debug": "^4.3.4",
91
- "fast-xml-parser": "^4.2.5",
91
+ "fast-xml-parser": "^4.4.0",
92
92
  "qs": "^6.11.0"
93
93
  },
94
94
  "devDependencies": {