@cloudcommerce/api 0.0.40 → 0.0.43

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
- @cloudcommerce/api:build: cache hit, replaying output 28449352267fe91e
1
+ @cloudcommerce/api:build: cache hit, replaying output 06315149adc38209
2
2
  @cloudcommerce/api:build: 
3
- @cloudcommerce/api:build: > @cloudcommerce/api@0.0.39 build /home/leo/code/ecomplus/cloud-commerce/packages/api
3
+ @cloudcommerce/api:build: > @cloudcommerce/api@0.0.42 build /home/leo/code/ecomplus/cloud-commerce/packages/api
4
4
  @cloudcommerce/api:build: > sh ../../scripts/build-lib.sh && cp -r src/types lib/
5
5
  @cloudcommerce/api:build: 
@@ -1,18 +1,20 @@
1
- @cloudcommerce/api:test: cache hit, replaying output f7112bbd521a4ef4
2
- @cloudcommerce/api:test: 
3
- @cloudcommerce/api:test: > @cloudcommerce/api@0.0.39 test /home/leo/code/ecomplus/cloud-commerce/packages/api
4
- @cloudcommerce/api:test: > tsc -p ../../tsconfig.test.json && vitest run
5
- @cloudcommerce/api:test: 
6
- @cloudcommerce/api:test: 
7
- @cloudcommerce/api:test:  RUN v0.19.1 /home/leo/code/ecomplus/cloud-commerce/packages/api
8
- @cloudcommerce/api:test: 
9
- @cloudcommerce/api:test:  ✓ tests/index.test.ts > Read product and typecheck SKU
10
- @cloudcommerce/api:test:  ✓ tests/index.test.ts > 404 with different Store ID from env
11
- @cloudcommerce/api:test:  tests/index.test.ts > List categories and typecheck result
12
- @cloudcommerce/api:test:  ✓ tests/index.test.ts > 401 trying to list API events
13
- @cloudcommerce/api:test:  ✓ tests/index.test.ts > 401 to create category and body typecheck
14
- @cloudcommerce/api:test: 
15
- @cloudcommerce/api:test: Test Files 1 passed (1)
16
- @cloudcommerce/api:test:  Tests 5 passed (5)
17
- @cloudcommerce/api:test:  Time 2.52s (in thread 1.04s, 243.07%)
18
- @cloudcommerce/api:test: 
1
+ @cloudcommerce/api:test: cache hit, replaying output 8e4df92d0547e596
2
+ @cloudcommerce/api:test: 
3
+ @cloudcommerce/api:test: > @cloudcommerce/api@0.0.42 test /home/leo/code/ecomplus/cloud-commerce/packages/api
4
+ @cloudcommerce/api:test: > tsc -p ../../tsconfig.test.json && vitest run
5
+ @cloudcommerce/api:test: 
6
+ @cloudcommerce/api:test: 
7
+ @cloudcommerce/api:test:  RUN v0.20.2 /home/leo/code/ecomplus/cloud-commerce/packages/api
8
+ @cloudcommerce/api:test: 
9
+ @cloudcommerce/api:test:  ✓ tests/index.test.ts > Read product and typecheck SKU
10
+ @cloudcommerce/api:test: (node:41553) [https://github.com/node-fetch/node-fetch/issues/1000 (response)] DeprecationWarning: data doesn't exist, use json(), text(), arrayBuffer(), or body instead
11
+ @cloudcommerce/api:test: (Use `node --trace-deprecation ...` to show where the warning was created)
12
+ @cloudcommerce/api:test:  ✓ tests/index.test.ts > 404 with different Store ID from env
13
+ @cloudcommerce/api:test:  ✓ tests/index.test.ts > List categories and typecheck result
14
+ @cloudcommerce/api:test:  ✓ tests/index.test.ts > 401 trying to list API events
15
+ @cloudcommerce/api:test:  tests/index.test.ts > 401 to create category and body typecheck
16
+ @cloudcommerce/api:test: 
17
+ @cloudcommerce/api:test: Test Files 1 passed (1)
18
+ @cloudcommerce/api:test:  Tests 5 passed (5)
19
+ @cloudcommerce/api:test:  Time 3.14s (setup 0ms, collect 117ms, tests 1.53s)
20
+ @cloudcommerce/api:test: 
package/lib/index.d.ts CHANGED
@@ -1,10 +1,13 @@
1
- import type { ResourceOpQuery, Endpoint, Config, ResponseBody, RequestBody } from './types';
1
+ import type { ResourceOpQuery, Endpoint, Config, ResponseBody, RequestBody, ErrorBody } from './types';
2
2
  declare class ApiError extends Error {
3
3
  config: Config;
4
- response?: Response;
4
+ response?: Response & {
5
+ data?: ErrorBody;
6
+ };
5
7
  statusCode?: number;
8
+ data?: ErrorBody;
6
9
  isTimeout: boolean;
7
- constructor(config: Config, response?: Response, msg?: string, isTimeout?: boolean);
10
+ constructor(config: Config, response?: ApiError['response'], msg?: string, isTimeout?: boolean);
8
11
  }
9
12
  declare const def: {
10
13
  middleware(config: Config): {
@@ -10030,3 +10033,6 @@ declare const del: (endpoint: Endpoint, config: AbstractedAuthConfig) => Promise
10030
10033
  }>;
10031
10034
  export default api;
10032
10035
  export { setMiddleware, get, post, put, patch, del, ApiError, };
10036
+ export declare type ApiEndpoint = Endpoint;
10037
+ export declare type ApiConfig = Config;
10038
+ export declare type ApiErrorBody = ErrorBody;
package/lib/index.js CHANGED
@@ -4,10 +4,15 @@ const env = (typeof window === 'object' && window)
4
4
  || {};
5
5
  class ApiError extends Error {
6
6
  constructor(config, response, msg, isTimeout = false) {
7
- super(response?.statusText || msg || 'Request error');
7
+ if (response) {
8
+ super(response.statusText);
9
+ this.data = response.data;
10
+ this.statusCode = response.status;
11
+ } else {
12
+ super(msg || 'Request error');
13
+ }
8
14
  this.config = config;
9
15
  this.response = response;
10
- this.statusCode = response?.status;
11
16
  this.isTimeout = isTimeout;
12
17
  }
13
18
  }
@@ -101,6 +106,11 @@ const api = async (config, retries = 0) => {
101
106
  });
102
107
  }
103
108
  }
109
+ try {
110
+ response.data = await response?.json();
111
+ } catch (e) {
112
+ //
113
+ }
104
114
  throw new ApiError(config, response);
105
115
  };
106
116
  const get = (endpoint, config) => api({ ...config, endpoint });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -27,7 +27,7 @@ declare type Config = {
27
27
  lang?: string;
28
28
  method?: Method;
29
29
  endpoint: Endpoint;
30
- params?: Record<string, string | number>;
30
+ params?: Record<string, string | number | boolean>;
31
31
  headers?: Headers | Record<string, string>;
32
32
  timeout?: number;
33
33
  maxRetries?: number;
@@ -91,4 +91,14 @@ declare type ResponseBody<TConfig extends Config> = TConfig['method'] extends 'p
91
91
  declare type DocSchema<Document extends any> = Omit<Document, '_id' | 'store_id' | 'store_ids' | 'created_at' | 'updated_at'>;
92
92
  declare type SetDocEndpoint<TResource extends Resource> = TResource | `${TResource}/${ResourceId}`;
93
93
  declare type RequestBody<TConfig extends Config> = TConfig['method'] extends undefined | 'get' | 'delete' ? undefined : TConfig['method'] extends 'patch' ? any : TConfig['endpoint'] extends SetDocEndpoint<'products'> ? DocSchema<Products> : TConfig['endpoint'] extends SetDocEndpoint<'categories'> ? DocSchema<Categories> : TConfig['endpoint'] extends SetDocEndpoint<'brands'> ? DocSchema<Brands> : TConfig['endpoint'] extends SetDocEndpoint<'collections'> ? DocSchema<Collections> : TConfig['endpoint'] extends SetDocEndpoint<'grids'> ? DocSchema<Grids> : TConfig['endpoint'] extends SetDocEndpoint<'carts'> ? DocSchema<Carts> : TConfig['endpoint'] extends SetDocEndpoint<'orders'> ? DocSchema<Orders> : TConfig['endpoint'] extends SetDocEndpoint<'customers'> ? DocSchema<Customers> : TConfig['endpoint'] extends SetDocEndpoint<'stores'> ? DocSchema<Stores> : TConfig['endpoint'] extends SetDocEndpoint<'applications'> ? DocSchema<Applications> : TConfig['endpoint'] extends SetDocEndpoint<'authentications'> ? DocSchema<Authentications> : any;
94
- export type { Products, Categories, Brands, Collections, Grids, Carts, Orders, Customers, Stores, Applications, Authentications, Resource, ResourceId, ResourceAndId, ResourceOpQuery, Endpoint, Method, Config, ResourceListResult, EventsResult, ResponseBody, RequestBody, };
94
+ declare type ErrorBody = {
95
+ status: number;
96
+ error_code: number;
97
+ message: string;
98
+ user_message?: {
99
+ en_us: string;
100
+ pt_br: string;
101
+ };
102
+ more_info?: string;
103
+ };
104
+ export type { Products, Categories, Brands, Collections, Grids, Carts, Orders, Customers, Stores, Applications, Authentications, Resource, ResourceId, ResourceAndId, ResourceOpQuery, Endpoint, Method, Config, ResourceListResult, EventsResult, ResponseBody, RequestBody, ErrorBody, };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/api",
3
3
  "type": "module",
4
- "version": "0.0.40",
4
+ "version": "0.0.43",
5
5
  "description": "E-Com Plus Cloud Commerce APIs client/adapter",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ import type {
4
4
  Config,
5
5
  ResponseBody,
6
6
  RequestBody,
7
+ ErrorBody,
7
8
  } from './types';
8
9
 
9
10
  // @ts-ignore
@@ -13,14 +14,25 @@ const env: { [key: string]: string } = (typeof window === 'object' && window)
13
14
 
14
15
  class ApiError extends Error {
15
16
  config: Config;
16
- response?: Response;
17
+ response?: Response & { data?: ErrorBody };
17
18
  statusCode?: number;
19
+ data?: ErrorBody;
18
20
  isTimeout: boolean;
19
- constructor(config: Config, response?: Response, msg?: string, isTimeout: boolean = false) {
20
- super(response?.statusText || msg || 'Request error');
21
+ constructor(
22
+ config: Config,
23
+ response?: ApiError['response'],
24
+ msg?: string,
25
+ isTimeout: boolean = false,
26
+ ) {
27
+ if (response) {
28
+ super(response.statusText);
29
+ this.data = response.data;
30
+ this.statusCode = response.status;
31
+ } else {
32
+ super(msg || 'Request error');
33
+ }
21
34
  this.config = config;
22
35
  this.response = response;
23
- this.statusCode = response?.status;
24
36
  this.isTimeout = isTimeout;
25
37
  }
26
38
  }
@@ -98,7 +110,7 @@ Promise<Response & {
98
110
  abortController.abort();
99
111
  isTimeout = true;
100
112
  }, timeout);
101
- let response: Response | undefined;
113
+ let response: Response & { data?: any } | undefined;
102
114
  try {
103
115
  response = await (config.fetch || fetch)(url, {
104
116
  method,
@@ -129,6 +141,11 @@ Promise<Response & {
129
141
  });
130
142
  }
131
143
  }
144
+ try {
145
+ response.data = await response?.json() as ErrorBody;
146
+ } catch (e) {
147
+ //
148
+ }
132
149
  throw new ApiError(config, response);
133
150
  };
134
151
 
@@ -197,3 +214,9 @@ export {
197
214
  del,
198
215
  ApiError,
199
216
  };
217
+
218
+ export type ApiEndpoint = Endpoint;
219
+
220
+ export type ApiConfig = Config;
221
+
222
+ export type ApiErrorBody = ErrorBody;
package/src/types.ts CHANGED
@@ -56,7 +56,7 @@ type Config = {
56
56
  lang?: string,
57
57
  method?: Method,
58
58
  endpoint: Endpoint,
59
- params?: Record<string, string | number>,
59
+ params?: Record<string, string | number | boolean>,
60
60
  headers?: Headers | Record<string, string>,
61
61
  timeout?: number,
62
62
  maxRetries?: number,
@@ -171,6 +171,17 @@ type RequestBody<TConfig extends Config> =
171
171
  TConfig['endpoint'] extends SetDocEndpoint<'authentications'> ? DocSchema<Authentications> :
172
172
  any;
173
173
 
174
+ type ErrorBody = {
175
+ status: number,
176
+ error_code: number,
177
+ message: string,
178
+ user_message?: {
179
+ en_us: string,
180
+ pt_br: string,
181
+ },
182
+ more_info?: string,
183
+ };
184
+
174
185
  export type {
175
186
  Products,
176
187
  Categories,
@@ -194,4 +205,5 @@ export type {
194
205
  EventsResult,
195
206
  ResponseBody,
196
207
  RequestBody,
208
+ ErrorBody,
197
209
  };