@sp-api-sdk/catalog-items-api-v0 1.8.3 → 1.8.7

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/README.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
4
4
 
5
+ [![npm version](https://badgen.net/npm/v/@sp-api-sdk/catalog-items-api-v0)](https://www.npmjs.com/package/@sp-api-sdk/catalog-items-api-v0)
6
+ [![XO code style](https://badgen.net/badge/code%20style/XO/cyan)](https://github.com/xojs/xo)
7
+
8
+ ## Documentation
9
+
10
+ Learn more about this Selling Partner API by visiting the [official documentation](https://github.com/amzn/selling-partner-api-docs/tree/main/references/catalog-items-api/catalogItemsV0.md).
11
+
12
+ Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp_api_sdk_catalog_items_api_v0.html) for this API client.
13
+
5
14
  ## Installing
6
15
 
7
16
  ```sh
@@ -19,26 +28,25 @@ import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
19
28
  import {CatalogItemsApiClient} from '@sp-api-sdk/catalog-items-api-v0'
20
29
 
21
30
  const auth = new SellingPartnerApiAuth({
22
- clientId: '',
23
- clientSecret: '',
24
- refreshToken: '',
25
- secretAccessKey: '',
31
+ clientId: process.env.LWA_CLIENT_ID,
32
+ clientSecret: process.env.LWA_CLIENT_SECRET,
33
+ refreshToken: 'Atzr|…',
26
34
  accessKeyId: '',
27
- region: '',
35
+ secretAccessKey: '',
28
36
  role: {
29
- arn: '',
30
- }
37
+ arn: 'arn:aws:iam::…',
38
+ },
31
39
  })
32
40
 
33
41
  const client = new CatalogItemsApiClient({
34
42
  auth,
35
- region: 'eu' // or 'eu-west-1'
43
+ region: 'eu',
36
44
  })
37
45
  ```
38
46
 
39
- ## Handle Rate Limiting
47
+ ## Rate Limiting
40
48
 
41
- If you want to let the SDK retry after each 429 responses, instanciate the client like this:
49
+ In order to retry rate limited requests (HTTP 429), you can configure the API client as such:
42
50
 
43
51
  ```javascript
44
52
  const client = new CatalogItemsApiClient({
@@ -46,13 +54,28 @@ const client = new CatalogItemsApiClient({
46
54
  region: 'eu',
47
55
  rateLimiting: {
48
56
  retry: true,
49
- onRetry: (retryInfo) => console.log(retryInfo) // Optional
50
- }
57
+ // Optionally specify a callback that will be called on every retry.
58
+ onRetry: (retryInfo) => {
59
+ console.log(retryInfo)
60
+ },
61
+ },
51
62
  })
52
63
  ```
53
64
 
54
- The SDK gets the rate limits for each routes from the API documentation
65
+ The rate limits used for each route are specified in the [API documentation]((https://github.com/amzn/selling-partner-api-docs/tree/main/references/catalog-items-api/catalogItemsV0.md)).
66
+
67
+ ## License
68
+
69
+ MIT
55
70
 
56
- ## API documentation
71
+ ## Miscellaneous
57
72
 
58
- See [here](https://github.com/amzn/selling-partner-api-docs/tree/main/references/catalog-items-api/catalogItemsV0.md)
73
+ ```
74
+ ╚⊙ ⊙╝
75
+ ╚═(███)═╝
76
+ ╚═(███)═╝
77
+ ╚═(███)═╝
78
+ ╚═(███)═╝
79
+ ╚═(███)═╝
80
+ ╚═(███)═╝
81
+ ```
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CatalogItemsApiClient = exports.RATE_LIMITS = void 0;
3
+ exports.CatalogItemsApiClient = exports.clientRateLimits = void 0;
4
4
  /* eslint-disable prefer-regex-literals */
5
5
  const common_1 = require("@sp-api-sdk/common");
6
6
  const api_model_1 = require("./api-model");
7
7
  const error_1 = require("./error");
8
- exports.RATE_LIMITS = [
8
+ exports.clientRateLimits = [
9
9
  {
10
10
  method: 'get',
11
11
  urlRegex: new RegExp('^/catalog/v0/items$'),
@@ -27,20 +27,23 @@ exports.RATE_LIMITS = [
27
27
  ];
28
28
  class CatalogItemsApiClient extends api_model_1.CatalogApi {
29
29
  constructor(parameters) {
30
- const region = common_1.awsRegionByCode[parameters.region] ?? parameters.region;
30
+ const config = common_1.sellingPartnerRegions[parameters.region];
31
+ if (!config) {
32
+ throw new error_1.CatalogItemsApiError(`Unknown region: ${parameters.region}`);
33
+ }
31
34
  const { rateLimiting, ...clientParameters } = parameters;
32
- const axiosParameters = { ...clientParameters, region };
35
+ const axiosParameters = {
36
+ ...clientParameters,
37
+ region: config.awsRegion,
38
+ };
33
39
  if (rateLimiting?.retry) {
34
- axiosParameters.rateLimits = exports.RATE_LIMITS;
40
+ axiosParameters.rateLimits = exports.clientRateLimits;
35
41
  axiosParameters.onRetry = rateLimiting.onRetry;
36
42
  }
37
43
  const axiosInstance = (0, common_1.createAxiosInstance)(axiosParameters);
38
44
  const configuration = new api_model_1.Configuration();
39
45
  const environment = parameters.sandbox ? 'sandbox' : 'production';
40
- const endpoint = common_1.endpoints[environment][region];
41
- if (!endpoint) {
42
- throw new error_1.CatalogItemsApiError(`Unknown region : ${region}`);
43
- }
46
+ const endpoint = config.endpoints[environment];
44
47
  super(configuration, endpoint, axiosInstance);
45
48
  }
46
49
  }
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable prefer-regex-literals */
2
- import { endpoints, awsRegionByCode, createAxiosInstance } from '@sp-api-sdk/common';
2
+ import { sellingPartnerRegions, createAxiosInstance } from '@sp-api-sdk/common';
3
3
  import { Configuration, CatalogApi } from './api-model';
4
4
  import { CatalogItemsApiError } from './error';
5
- export const RATE_LIMITS = [
5
+ export const clientRateLimits = [
6
6
  {
7
7
  method: 'get',
8
8
  urlRegex: new RegExp('^/catalog/v0/items$'),
@@ -24,20 +24,23 @@ export const RATE_LIMITS = [
24
24
  ];
25
25
  export class CatalogItemsApiClient extends CatalogApi {
26
26
  constructor(parameters) {
27
- const region = awsRegionByCode[parameters.region] ?? parameters.region;
27
+ const config = sellingPartnerRegions[parameters.region];
28
+ if (!config) {
29
+ throw new CatalogItemsApiError(`Unknown region: ${parameters.region}`);
30
+ }
28
31
  const { rateLimiting, ...clientParameters } = parameters;
29
- const axiosParameters = { ...clientParameters, region };
32
+ const axiosParameters = {
33
+ ...clientParameters,
34
+ region: config.awsRegion,
35
+ };
30
36
  if (rateLimiting?.retry) {
31
- axiosParameters.rateLimits = RATE_LIMITS;
37
+ axiosParameters.rateLimits = clientRateLimits;
32
38
  axiosParameters.onRetry = rateLimiting.onRetry;
33
39
  }
34
40
  const axiosInstance = createAxiosInstance(axiosParameters);
35
41
  const configuration = new Configuration();
36
42
  const environment = parameters.sandbox ? 'sandbox' : 'production';
37
- const endpoint = endpoints[environment][region];
38
- if (!endpoint) {
39
- throw new CatalogItemsApiError(`Unknown region : ${region}`);
40
- }
43
+ const endpoint = config.endpoints[environment];
41
44
  super(configuration, endpoint, axiosInstance);
42
45
  }
43
46
  }
@@ -239,7 +239,7 @@ export declare class CatalogApi extends BaseAPI {
239
239
  * @throws {RequiredError}
240
240
  * @memberof CatalogApi
241
241
  */
242
- getCatalogItem(requestParameters: CatalogApiGetCatalogItemRequest, options?: any): Promise<import("axios").AxiosResponse<GetCatalogItemResponse>>;
242
+ getCatalogItem(requestParameters: CatalogApiGetCatalogItemRequest, options?: any): Promise<import("axios").AxiosResponse<GetCatalogItemResponse, any>>;
243
243
  /**
244
244
  * Returns the parent categories to which an item belongs, based on the specified ASIN or SellerSKU. **Usage Plans:** | Plan type | Rate (requests per second) | Burst | | ---- | ---- | ---- | |Default| 1 | 40 | |Selling partner specific| Variable | Variable | The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see \"Usage Plans and Rate Limits\" in the Selling Partner API documentation.
245
245
  * @param {CatalogApiListCatalogCategoriesRequest} requestParameters Request parameters.
@@ -247,7 +247,7 @@ export declare class CatalogApi extends BaseAPI {
247
247
  * @throws {RequiredError}
248
248
  * @memberof CatalogApi
249
249
  */
250
- listCatalogCategories(requestParameters: CatalogApiListCatalogCategoriesRequest, options?: any): Promise<import("axios").AxiosResponse<ListCatalogCategoriesResponse>>;
250
+ listCatalogCategories(requestParameters: CatalogApiListCatalogCategoriesRequest, options?: any): Promise<import("axios").AxiosResponse<ListCatalogCategoriesResponse, any>>;
251
251
  /**
252
252
  * Returns a list of items and their attributes, based on a search query or item identifiers that you specify. When based on a search query, provide the Query parameter and optionally, the QueryContextId parameter. When based on item identifiers, provide a single appropriate parameter based on the identifier type, and specify the associated item value. MarketplaceId is always required. At least one of Query, SellerSKU, UPC, EAN, ISBN, JAN is also required. This operation returns a maximum of ten products and does not return non-buyable products. **Usage Plans:** | Plan type | Rate (requests per second) | Burst | | ---- | ---- | ---- | |Default| 6 | 40 | |Selling partner specific| Variable | Variable | The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see \"Usage Plans and Rate Limits\" in the Selling Partner API documentation.
253
253
  * @param {CatalogApiListCatalogItemsRequest} requestParameters Request parameters.
@@ -255,5 +255,5 @@ export declare class CatalogApi extends BaseAPI {
255
255
  * @throws {RequiredError}
256
256
  * @memberof CatalogApi
257
257
  */
258
- listCatalogItems(requestParameters: CatalogApiListCatalogItemsRequest, options?: any): Promise<import("axios").AxiosResponse<ListCatalogItemsResponse>>;
258
+ listCatalogItems(requestParameters: CatalogApiListCatalogItemsRequest, options?: any): Promise<import("axios").AxiosResponse<ListCatalogItemsResponse, any>>;
259
259
  }
@@ -62,4 +62,4 @@ export declare const toPathString: (url: URL) => string;
62
62
  *
63
63
  * @export
64
64
  */
65
- export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration | undefined) => (axios?: AxiosInstance, basePath?: string) => Promise<import("axios").AxiosResponse<any>>;
65
+ export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration | undefined) => (axios?: AxiosInstance, basePath?: string) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -1,11 +1,11 @@
1
- import { onRetry } from '@sp-api-sdk/common';
2
- import type { ClientConfiguration, RateLimit } from '@sp-api-sdk/common';
1
+ import type { ClientConfiguration, SellingPartnerRegion, RateLimit, OnRetryHandler } from '@sp-api-sdk/common';
3
2
  import { CatalogApi } from './api-model';
4
- export declare const RATE_LIMITS: RateLimit[];
3
+ export declare const clientRateLimits: RateLimit[];
5
4
  export interface ClientParameters extends Omit<ClientConfiguration, 'rateLimits' | 'onRetry'> {
5
+ region: SellingPartnerRegion;
6
6
  rateLimiting?: {
7
7
  retry: boolean;
8
- onRetry?: onRetry;
8
+ onRetry?: OnRetryHandler;
9
9
  };
10
10
  }
11
11
  export declare class CatalogItemsApiClient extends CatalogApi {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@sp-api-sdk/catalog-items-api-v0",
3
3
  "author": "Vincent Mesquita <vincent.mesquita@bizon.solutions>",
4
4
  "description": "The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.",
5
- "version": "1.8.3",
5
+ "version": "1.8.7",
6
6
  "main": "dist/cjs/index.js",
7
7
  "module": "dist/es/index.js",
8
8
  "types": "dist/types/index.d.ts",
@@ -25,9 +25,9 @@
25
25
  "test": "NODE_ENV='test' yarn jest"
26
26
  },
27
27
  "dependencies": {
28
- "@sp-api-sdk/auth": "^1.9.3",
29
- "@sp-api-sdk/common": "^1.7.4",
30
- "axios": "^0.21.1"
28
+ "@sp-api-sdk/auth": "^1.9.6",
29
+ "@sp-api-sdk/common": "^1.7.8",
30
+ "axios": "^0.24.0"
31
31
  },
32
32
  "repository": {
33
33
  "type": "git",
@@ -48,5 +48,5 @@
48
48
  "sp sdk",
49
49
  "catalog items api"
50
50
  ],
51
- "gitHead": "30d4f1399133a7e6a08f9a2ec2cb9ce4641a623b"
51
+ "gitHead": "f21b5cb511abd110bf1f07843558719993f36187"
52
52
  }