@sp-api-sdk/catalog-items-api-v0 1.8.5 → 1.8.9

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.5",
5
+ "version": "1.8.9",
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.4",
29
- "@sp-api-sdk/common": "^1.7.6",
30
- "axios": "^0.21.1"
28
+ "@sp-api-sdk/auth": "^1.9.7",
29
+ "@sp-api-sdk/common": "^1.7.9",
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": "5dbdf09e0f74182eaa9b6c5f9ef0c931b0aa3089"
51
+ "gitHead": "dd52e8a895f590c62d06f19f4d8715eb7740df66"
52
52
  }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- /**
5
- * Selling Partner API for Catalog Items
6
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
7
- *
8
- * The version of the OpenAPI document: v0
9
- *
10
- *
11
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
- * https://openapi-generator.tech
13
- * Do not edit the class manually.
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +0,0 @@
1
- "use strict";
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- /**
5
- * Selling Partner API for Catalog Items
6
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
7
- *
8
- * The version of the OpenAPI document: v0
9
- *
10
- *
11
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
- * https://openapi-generator.tech
13
- * Do not edit the class manually.
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +0,0 @@
1
- "use strict";
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- /**
5
- * Selling Partner API for Catalog Items
6
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
7
- *
8
- * The version of the OpenAPI document: v0
9
- *
10
- *
11
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
- * https://openapi-generator.tech
13
- * Do not edit the class manually.
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * Selling Partner API for Catalog Items
5
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
6
- *
7
- * The version of the OpenAPI document: v0
8
- *
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * Selling Partner API for Catalog Items
5
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
6
- *
7
- * The version of the OpenAPI document: v0
8
- *
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * Selling Partner API for Catalog Items
5
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
6
- *
7
- * The version of the OpenAPI document: v0
8
- *
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};
@@ -1,30 +0,0 @@
1
- /**
2
- * Selling Partner API for Catalog Items
3
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
4
- *
5
- * The version of the OpenAPI document: v0
6
- *
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- /**
13
- * The number of offer listings with the specified condition.
14
- * @export
15
- * @interface OfferListingCountType
16
- */
17
- export interface OfferListingCountType {
18
- /**
19
- * The number of offer listings.
20
- * @type {number}
21
- * @memberof OfferListingCountType
22
- */
23
- Count: number;
24
- /**
25
- * The condition of the item.
26
- * @type {string}
27
- * @memberof OfferListingCountType
28
- */
29
- condition: string;
30
- }
@@ -1,55 +0,0 @@
1
- /**
2
- * Selling Partner API for Catalog Items
3
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
4
- *
5
- * The version of the OpenAPI document: v0
6
- *
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- import { ShippingTimeType } from './shipping-time-type';
13
- /**
14
- *
15
- * @export
16
- * @interface QualifiersType
17
- */
18
- export interface QualifiersType {
19
- /**
20
- * The condition of the item. Possible values: New, Used, Collectible, Refurbished, or Club.
21
- * @type {string}
22
- * @memberof QualifiersType
23
- */
24
- ItemCondition: string;
25
- /**
26
- * The item subcondition for the offer listing. Possible values: New, Mint, Very Good, Good, Acceptable, Poor, Club, OEM, Warranty, Refurbished Warranty, Refurbished, Open Box, or Other.
27
- * @type {string}
28
- * @memberof QualifiersType
29
- */
30
- ItemSubcondition: string;
31
- /**
32
- * The fulfillment channel for the item. Possible values: * Amazon - Fulfilled by Amazon. * Merchant - Fulfilled by the seller.
33
- * @type {string}
34
- * @memberof QualifiersType
35
- */
36
- FulfillmentChannel: string;
37
- /**
38
- * Indicates whether the marketplace specified in the request and the location that the item ships from are in the same country. Possible values: True, False, or Unknown.
39
- * @type {string}
40
- * @memberof QualifiersType
41
- */
42
- ShipsDomestically: string;
43
- /**
44
- *
45
- * @type {ShippingTimeType}
46
- * @memberof QualifiersType
47
- */
48
- ShippingTime: ShippingTimeType;
49
- /**
50
- * (98-100%, 95-97%, 90-94%, 80-89%, 70-79%, Less than 70%, or Just launched ) – Indicates the percentage of feedback ratings that were positive over the past 12 months.
51
- * @type {string}
52
- * @memberof QualifiersType
53
- */
54
- SellerPositiveFeedbackRating: string;
55
- }
@@ -1,24 +0,0 @@
1
- /**
2
- * Selling Partner API for Catalog Items
3
- * The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
4
- *
5
- * The version of the OpenAPI document: v0
6
- *
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- /**
13
- *
14
- * @export
15
- * @interface ShippingTimeType
16
- */
17
- export interface ShippingTimeType {
18
- /**
19
- * (0-2 days, 3-7 days, 8-13 days, or 14 or more days) – Indicates the maximum time within which the item will likely be shipped once an order has been placed.
20
- * @type {string}
21
- * @memberof ShippingTimeType
22
- */
23
- Max?: string;
24
- }