@cloudcommerce/api 0.0.58 → 0.0.61

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.
@@ -19,15 +19,21 @@ class ApiError extends Error {
19
19
  const def = {
20
20
  middleware(config) {
21
21
  const headers = { ...config.headers };
22
- if (config.accessToken) {
23
- // eslint-disable-next-line dot-notation
24
- headers['Authorization'] = `Bearer ${config.accessToken}`;
25
- } else if (config.authenticationId && config.apiKey) {
26
- const rawAuth = `${config.authenticationId}:${config.apiKey}`;
27
- const base64Auth = typeof Buffer === 'function'
28
- ? Buffer.from(rawAuth).toString('base64') : btoa(rawAuth);
29
- // eslint-disable-next-line dot-notation
30
- headers['Authorization'] = `Basic ${base64Auth}`;
22
+ if (!config.isNoAuth) {
23
+ if (config.accessToken) {
24
+ // eslint-disable-next-line dot-notation
25
+ headers['Authorization'] = `Bearer ${config.accessToken}`;
26
+ } else {
27
+ const authenticationId = config.authenticationId || env.ECOM_AUTHENTICATION_ID;
28
+ const apiKey = config.apiKey || env.ECOM_API_KEY;
29
+ if (authenticationId && apiKey) {
30
+ const rawAuth = `${authenticationId}:${apiKey}`;
31
+ const base64Auth = typeof Buffer === 'function'
32
+ ? Buffer.from(rawAuth).toString('base64') : btoa(rawAuth);
33
+ // eslint-disable-next-line dot-notation
34
+ headers['Authorization'] = `Basic ${base64Auth}`;
35
+ }
36
+ }
31
37
  }
32
38
  let url = config.baseUrl || env.API_BASE_URL || 'https://ecomplus.io/v2';
33
39
  const { endpoint, params } = config;
@@ -160,4 +166,4 @@ export default api;
160
166
  export {
161
167
  setMiddleware, get, post, put, patch, del, ApiError,
162
168
  };
163
- // # sourceMappingURL=index.js.map
169
+ // # sourceMappingURL=api.js.map
package/lib/api.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -24,6 +24,7 @@ declare type Config = {
24
24
  accessToken?: string;
25
25
  authenticationId?: string;
26
26
  apiKey?: string;
27
+ isNoAuth?: boolean;
27
28
  lang?: string;
28
29
  method?: Method;
29
30
  endpoint: Endpoint;
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@cloudcommerce/api",
3
3
  "type": "module",
4
- "version": "0.0.58",
4
+ "version": "0.0.61",
5
5
  "description": "E-Com Plus Cloud Commerce APIs client/adapter",
6
- "main": "lib/index.js",
7
- "types": "lib/index.d.ts",
6
+ "main": "lib/api.js",
7
+ "types": "lib/api.d.ts",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/ecomplus/cloud-commerce.git",
@@ -40,15 +40,21 @@ class ApiError extends Error {
40
40
  const def = {
41
41
  middleware(config: Config) {
42
42
  const headers: Headers | Record<string, string> = { ...config.headers };
43
- if (config.accessToken) {
44
- // eslint-disable-next-line dot-notation
45
- headers['Authorization'] = `Bearer ${config.accessToken}`;
46
- } else if (config.authenticationId && config.apiKey) {
47
- const rawAuth = `${config.authenticationId}:${config.apiKey}`;
48
- const base64Auth = typeof Buffer === 'function'
49
- ? Buffer.from(rawAuth).toString('base64') : btoa(rawAuth);
50
- // eslint-disable-next-line dot-notation
51
- headers['Authorization'] = `Basic ${base64Auth}`;
43
+ if (!config.isNoAuth) {
44
+ if (config.accessToken) {
45
+ // eslint-disable-next-line dot-notation
46
+ headers['Authorization'] = `Bearer ${config.accessToken}`;
47
+ } else {
48
+ const authenticationId = config.authenticationId || env.ECOM_AUTHENTICATION_ID;
49
+ const apiKey = config.apiKey || env.ECOM_API_KEY;
50
+ if (authenticationId && apiKey) {
51
+ const rawAuth = `${authenticationId}:${apiKey}`;
52
+ const base64Auth = typeof Buffer === 'function'
53
+ ? Buffer.from(rawAuth).toString('base64') : btoa(rawAuth);
54
+ // eslint-disable-next-line dot-notation
55
+ headers['Authorization'] = `Basic ${base64Auth}`;
56
+ }
57
+ }
52
58
  }
53
59
  let url = config.baseUrl || env.API_BASE_URL || 'https://ecomplus.io/v2';
54
60
  const { endpoint, params } = config;
@@ -161,8 +167,6 @@ Promise<Response & {
161
167
  };
162
168
 
163
169
  type AbstractedConfig = Omit<Config, 'endpoint' | 'method'>;
164
- type AbstractedAuthConfig = AbstractedConfig & { accessToken: string }
165
- | AbstractedConfig & { authenticationId: string, apiKey: string };
166
170
 
167
171
  const get = <E extends Endpoint, C extends AbstractedConfig>(
168
172
  endpoint: E,
@@ -172,10 +176,10 @@ const get = <E extends Endpoint, C extends AbstractedConfig>(
172
176
  data: ResponseBody<{ endpoint: E }>,
173
177
  }> => api({ ...config, endpoint });
174
178
 
175
- const post = <E extends Endpoint, C extends AbstractedAuthConfig>(
179
+ const post = <E extends Endpoint, C extends AbstractedConfig>(
176
180
  endpoint: E,
177
181
  body: RequestBody<{ endpoint: E, method: 'post' }>,
178
- config: E extends 'login' | 'authenticate' ? AbstractedConfig : C,
182
+ config?: E extends 'login' | 'authenticate' ? AbstractedConfig : C,
179
183
  ) => api({
180
184
  ...config,
181
185
  method: 'post',
@@ -183,10 +187,10 @@ const post = <E extends Endpoint, C extends AbstractedAuthConfig>(
183
187
  body,
184
188
  });
185
189
 
186
- const put = <E extends Exclude<Endpoint, ResourceOpQuery>, C extends AbstractedAuthConfig>(
190
+ const put = <E extends Exclude<Endpoint, ResourceOpQuery>, C extends AbstractedConfig>(
187
191
  endpoint: E,
188
192
  body: RequestBody<{ endpoint: E, method: 'put' }>,
189
- config: C,
193
+ config?: C,
190
194
  ) => api({
191
195
  ...config,
192
196
  method: 'put',
@@ -194,14 +198,14 @@ const put = <E extends Exclude<Endpoint, ResourceOpQuery>, C extends AbstractedA
194
198
  body,
195
199
  });
196
200
 
197
- const patch = (endpoint: Endpoint, body: any, config: AbstractedAuthConfig) => api({
201
+ const patch = (endpoint: Endpoint, body: any, config?: AbstractedConfig) => api({
198
202
  ...config,
199
203
  method: 'patch',
200
204
  endpoint,
201
205
  body,
202
206
  });
203
207
 
204
- const del = (endpoint: Endpoint, config: AbstractedAuthConfig) => api({
208
+ const del = (endpoint: Endpoint, config?: AbstractedConfig) => api({
205
209
  ...config,
206
210
  method: 'delete',
207
211
  endpoint,
package/src/types.ts CHANGED
@@ -53,6 +53,7 @@ type Config = {
53
53
  accessToken?: string,
54
54
  authenticationId?: string,
55
55
  apiKey?: string,
56
+ isNoAuth?: boolean,
56
57
  lang?: string,
57
58
  method?: Method,
58
59
  endpoint: Endpoint,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { test, expect } from 'vitest';
4
4
  import '../fetch-polyfill';
5
- import api, { ApiError } from '../src/index';
5
+ import api, { ApiError } from '../src/api';
6
6
 
7
7
  const productId = '618041aa239b7206d3fc06de';
8
8
  test('Read product and typecheck SKU', async () => {
@@ -32,7 +32,7 @@ test('404 with different Store ID from env', async () => {
32
32
 
33
33
  test('List categories and typecheck result', async () => {
34
34
  const { data } = await api.get('categories');
35
- if (data.result === []) {
35
+ if (!data.result.length) {
36
36
  console.log('Any category found');
37
37
  }
38
38
  expect(Array.isArray(data.result)).toBe(true);