@lemay/mws-api-lite
Version:
Lightweight Amazon MWS API Client
1,252 lines (1,225 loc) • 664 kB
JavaScript
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.WebBrowserMWSClient = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var mws_info = require('@lemay/mws-api-info');
var xmljs = require('xml-js');
var api_mapping = {
Feeds: {
path: 'Feeds',
version: '2009-01-01',
},
Finances: {
path: 'Finances',
version: '2015-05-01',
},
FulfillmentInboundShipment: {
path: 'FulfillmentInboundShipment',
version: '2010-10-01',
},
FulfillmentInventory: {
path: 'FulfillmentInventory',
version: '2010-10-01',
},
FulfillmentOutboundShipment: {
path: 'FulfillmentOutboundShipment',
version: '2010-10-01',
},
MerchantFulfillment: {
path: 'MerchantFulfillment',
version: '2015-06-01',
},
Orders: {
path: 'Orders',
version: '2013-09-01',
},
Products: {
path: 'Products',
version: '2011-10-01',
},
Recommendations: {
path: 'Recommendations',
version: '2013-04-01',
},
Reports: {
path: 'Reports',
version: '2009-01-01',
},
Sellers: {
path: 'Sellers',
version: '2011-07-01',
},
Subscriptions: {
path: 'Subscriptions',
version: '2013-07-01',
}
};
var MWSClientBase = (function () {
function MWSClientBase(marketplace, access_key, access_secret, seller_id, auth_token) {
if (auth_token === void 0) { auth_token = ''; }
var marketplace_info = this.getMarketplaceInfo(marketplace);
this.useragent = null;
this.marketplace = marketplace;
this.marketplace_id = marketplace_info['id'];
this.protocol = 'https';
this.endpoint = marketplace_info['mws_endpoint'];
this.site_url = marketplace_info['site'];
this.access_key = access_key;
this.access_secret = access_secret;
this.seller_id = seller_id;
this.auth_token = auth_token;
}
MWSClientBase.version = function () {
return "1.1.11";
};
MWSClientBase.escapeUserAgentFieldValue = function (v) {
return v.replace(/[\\\/();=]/g, function (m) {
return '\\' + m;
});
};
MWSClientBase.getMarketplaceId = function (country_code) {
country_code = country_code.toUpperCase();
if (!mws_info[country_code])
throw new Error("Invalid country code: " + country_code);
return mws_info[country_code]['id'];
};
MWSClientBase.parseResponseError = function (status, headers, body) {
status = parseInt(status);
if (status > 199 && status < 300) {
if (headers['Content-MD5']) {
throw new Error("Reponse content MD5 checksum not match!");
}
return null;
}
else {
var err = {
status: status,
headers: headers,
quota: {},
body: body,
};
if (headers['x-mws-quota-max'])
err['quota']['max'] = parseInt(headers['x-mws-quota-max']);
if (headers['x-mws-quota-remaining'])
err['quota']['remaining'] = parseInt(headers['x-mws-quota-remaining']);
if (headers['x-mws-quota-resetsOn'] || headers['x-mws-quota-resetson'])
err['quota']['resetsOn'] = new Date(headers['x-mws-quota-resetsOn'] || headers['x-mws-quota-resetson']);
if (headers['x-mws-request-id'])
err['request-id'] = headers['x-mws-request-id'];
if (headers['x-mws-response-context'])
err['response-context'] = headers['x-mws-response-context'];
if (headers['x-mws-timestamp'])
err['timestamp'] = new Date(headers['x-mws-timestamp']);
if (headers['Content-Type'] == 'text/xml' || headers['content-type'] == 'text/xml') {
err['data'] = xmljs.xml2js(body);
}
else {
err['data'] = body;
}
return err;
}
};
MWSClientBase.parseResponse = function (status, headers, body) {
status = parseInt(status);
if (status > 199 && status < 300) {
var res = {
status: status,
headers: headers,
body: body,
quota: {}
};
if (headers['x-mws-quota-max'])
res['quota']['max'] = parseInt(headers['x-mws-quota-max']);
if (headers['x-mws-quota-remaining'])
res['quota']['remaining'] = parseInt(headers['x-mws-quota-remaining']);
if (headers['x-mws-quota-resetsOn'] || headers['x-mws-quota-resetson'])
res['quota']['resetsOn'] = new Date(headers['x-mws-quota-resetsOn'] || headers['x-mws-quota-resetson']);
if (headers['x-mws-request-id'])
res['request-id'] = headers['x-mws-request-id'];
if (headers['x-mws-response-context'])
res['response-context'] = headers['x-mws-response-context'];
if (headers['x-mws-timestamp'])
res['timestamp'] = new Date(headers['x-mws-timestamp']);
if (headers['Content-Type'] == 'text/xml' || headers['content-type'] == 'text/xml') {
res['data'] = xmljs.xml2js(body, { compact: true });
}
else {
res['data'] = body;
}
return res;
}
else {
return null;
}
};
MWSClientBase.prototype.getMarketplaceInfo = function (country_code) {
if (!mws_info[country_code])
throw new Error("Invalid country code: " + country_code);
return mws_info[country_code];
};
MWSClientBase.prototype.urlEncode = function (str) {
return encodeURIComponent(str).replace(/[!*()']/g, function (c) {
return '%' + c.charCodeAt(0).toString(16);
});
};
MWSClientBase.prototype.createQueryString = function (params) {
var query_parts = [];
var keys = Object.keys(params);
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
var k = keys_1[_i];
query_parts.push(k + '=' + this.urlEncode(params[k]));
}
var queryString = query_parts.join('&');
return queryString;
};
MWSClientBase.prototype.calcSignature = function (endpoint, path, params) {
var str = '';
var keys = Object.keys(params);
keys = keys.sort();
for (var i = 0; i < keys.length; i++) {
if (i != 0)
str += '&';
str += keys[i] + '=' + this.urlEncode(params[keys[i]]);
}
var stringToSign = "POST\n" + endpoint + "\n" + path + "\n" + str;
var hmac = this.calcHMAC(stringToSign, this.access_secret);
return hmac;
};
MWSClientBase.prototype.callApi = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var section = null;
var version = null;
var action = null;
var params = {};
var feed = null;
var cbk = null;
var argc = arguments.length;
if (argc < 4) {
throw new Error("Invalid paramters, at least 4 parameter needed!");
}
section = arguments[0];
version = arguments[1];
action = arguments[2];
if (argc == 4) {
cbk = arguments[3];
}
else if (argc == 5) {
params = arguments[3];
cbk = arguments[4];
}
else {
params = arguments[3];
feed = arguments[4];
cbk = arguments[5];
}
var headers = {
"User-Agent": this.getUserAgent(),
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
};
var requiredParams = {
AWSAccessKeyId: this.access_key,
Action: action,
SellerId: this.seller_id,
SignatureMethod: 'HmacSHA256',
SignatureVersion: '2',
Timestamp: new Date().toISOString(),
Version: version,
};
for (var k in params) {
requiredParams[k] = params[k];
}
if (this.auth_token) {
requiredParams['MWSAuthToken'] = this.auth_token;
}
if (action == 'SubmitFeed') {
if (params['FeedType'].indexOf('FLAT_FILE') > -1) {
if (this.marketplace == 'CN') {
headers['Content-Type'] = 'text/tab-separated-values; charset=utf-8';
feed = this.encodeContent(feed, 'utf8');
}
else if (this.marketplace == 'JP') {
headers['Content-Type'] = 'text/tab-separated-values; charset=Shift_JIS';
feed = this.encodeContent(feed, 'shift_jis');
}
else {
headers['Content-Type'] = 'text/tab-separated-values; charset=iso-8859-1';
feed = this.encodeContent(feed, 'iso-8859-1');
}
}
else {
headers['Content-Type'] = 'text/xml';
feed = this.encodeContent(feed, 'utf8');
}
requiredParams['ContentMD5Value'] = this.calcMD5(feed);
}
requiredParams['Signature'] = this.calcSignature(this.endpoint, '/' + section + '/' + version, requiredParams);
var queryString = this.createQueryString(requiredParams);
var url = this.protocol + '://' + this.endpoint + '/' + section + '/' + version;
if (queryString)
url = url + '?' + queryString;
if (action == 'SubmitFeed') {
this.makeHttpRequest('POST', url, headers, feed, cbk);
}
else {
this.makeHttpRequest('POST', url, headers, null, cbk);
}
};
MWSClientBase.prototype._invokeApi = function (section, name) {
var params = [];
for (var _i = 2; _i < arguments.length; _i++) {
params[_i - 2] = arguments[_i];
}
if (!api_mapping[section])
throw new Error("Invalid MWS API Section name: " + section + "!");
return this.callApi.apply(this, [section, api_mapping[section].version, name].concat(params));
};
MWSClientBase.prototype.SubmitFeed = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Feeds', 'SubmitFeed'].concat(params));
};
MWSClientBase.prototype.GetFeedSubmissionList = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Feeds', 'GetFeedSubmissionList'].concat(params));
};
MWSClientBase.prototype.GetFeedSubmissionListByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Feeds', 'GetFeedSubmissionListByNextToken'].concat(params));
};
MWSClientBase.prototype.GetFeedSubmissionCount = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Feeds', 'GetFeedSubmissionCount'].concat(params));
};
MWSClientBase.prototype.CancelFeedSubmissions = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Feeds', 'CancelFeedSubmissions'].concat(params));
};
MWSClientBase.prototype.GetFeedSubmissionResult = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Feeds', 'GetFeedSubmissionResult'].concat(params));
};
MWSClientBase.prototype.ListFinancialEventGroups = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Finances', 'ListFinancialEventGroups'].concat(params));
};
MWSClientBase.prototype.ListFinancialEventGroupsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Finances', 'ListFinancialEventGroupsByNextToken'].concat(params));
};
MWSClientBase.prototype.ListFinancialEvents = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Finances', 'ListFinancialEvents'].concat(params));
};
MWSClientBase.prototype.ListFinancialEventsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Finances', 'ListFinancialEventsByNextToken'].concat(params));
};
MWSClientBase.prototype.GetInboundGuidanceForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetInboundGuidanceForSKU'].concat(params));
};
MWSClientBase.prototype.GetInboundGuidanceForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetInboundGuidanceForASIN'].concat(params));
};
MWSClientBase.prototype.CreateInboundShipmentPlan = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'CreateInboundShipmentPlan'].concat(params));
};
MWSClientBase.prototype.CreateInboundShipment = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'CreateInboundShipment'].concat(params));
};
MWSClientBase.prototype.UpdateInboundShipment = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'UpdateInboundShipment'].concat(params));
};
MWSClientBase.prototype.GetPreorderInfo = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetPreorderInfo'].concat(params));
};
MWSClientBase.prototype.ConfirmPreorder = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'ConfirmPreorder'].concat(params));
};
MWSClientBase.prototype.GetPrepInstructionsForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetPrepInstructionsForSKU'].concat(params));
};
MWSClientBase.prototype.GetPrepInstructionsForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetPrepInstructionsForASIN'].concat(params));
};
MWSClientBase.prototype.PutTransportContent = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'PutTransportContent'].concat(params));
};
MWSClientBase.prototype.EstimateTransportRequest = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'EstimateTransportRequest'].concat(params));
};
MWSClientBase.prototype.GetTransportContent = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetTransportContent'].concat(params));
};
MWSClientBase.prototype.ConfirmTransportRequest = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'ConfirmTransportRequest'].concat(params));
};
MWSClientBase.prototype.VoidTransportRequest = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'VoidTransportRequest'].concat(params));
};
MWSClientBase.prototype.GetPackageLabels = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetPackageLabels'].concat(params));
};
MWSClientBase.prototype.GetUniquePackageLabels = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetUniquePackageLabels'].concat(params));
};
MWSClientBase.prototype.GetPalletLabels = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetPalletLabels'].concat(params));
};
MWSClientBase.prototype.GetBillOfLading = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'GetBillOfLading'].concat(params));
};
MWSClientBase.prototype.ListInboundShipments = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'ListInboundShipments'].concat(params));
};
MWSClientBase.prototype.ListInboundShipmentsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'ListInboundShipmentsByNextToken'].concat(params));
};
MWSClientBase.prototype.ListInboundShipmentItems = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'ListInboundShipmentItems'].concat(params));
};
MWSClientBase.prototype.ListInboundShipmentItemsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInboundShipment', 'ListInboundShipmentItemsByNextToken'].concat(params));
};
MWSClientBase.prototype.ListInventorySupply = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInventory', 'ListInventorySupply'].concat(params));
};
MWSClientBase.prototype.ListInventorySupplyByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentInventory', 'ListInventorySupplyByNextToken'].concat(params));
};
MWSClientBase.prototype.GetFulfillmentPreview = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'GetFulfillmentPreview'].concat(params));
};
MWSClientBase.prototype.CreateFulfillmentOrder = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'CreateFulfillmentOrder'].concat(params));
};
MWSClientBase.prototype.UpdateFulfillmentOrder = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'UpdateFulfillmentOrder'].concat(params));
};
MWSClientBase.prototype.GetFulfillmentOrder = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'GetFulfillmentOrder'].concat(params));
};
MWSClientBase.prototype.ListAllFulfillmentOrders = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'ListAllFulfillmentOrders'].concat(params));
};
MWSClientBase.prototype.ListAllFulfillmentOrdersByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'ListAllFulfillmentOrdersByNextToken'].concat(params));
};
MWSClientBase.prototype.GetPackageTrackingDetails = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'GetPackageTrackingDetails'].concat(params));
};
MWSClientBase.prototype.CancelFulfillmentOrder = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'CancelFulfillmentOrder'].concat(params));
};
MWSClientBase.prototype.ListReturnReasonCodes = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'ListReturnReasonCodes'].concat(params));
};
MWSClientBase.prototype.CreateFulfillmentReturn = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'CreateFulfillmentReturn'].concat(params));
};
MWSClientBase.prototype.GetEligibleShippingServices = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['MerchantFulfillment', 'GetEligibleShippingServices'].concat(params));
};
MWSClientBase.prototype.CreateShipment = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['MerchantFulfillment', 'CreateShipment'].concat(params));
};
MWSClientBase.prototype.GetShipment = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'GetShipment'].concat(params));
};
MWSClientBase.prototype.CancelShipment = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['FulfillmentOutboundShipment', 'CancelShipment'].concat(params));
};
MWSClientBase.prototype.ListOrders = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Orders', 'ListOrders'].concat(params));
};
MWSClientBase.prototype.ListOrdersByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Orders', 'ListOrdersByNextToken'].concat(params));
};
MWSClientBase.prototype.GetOrder = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Orders', 'GetOrder'].concat(params));
};
MWSClientBase.prototype.ListOrderItems = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Orders', 'ListOrderItems'].concat(params));
};
MWSClientBase.prototype.ListOrderItemsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Orders', 'ListOrderItemsByNextToken'].concat(params));
};
MWSClientBase.prototype.ListMatchingProducts = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'ListMatchingProducts'].concat(params));
};
MWSClientBase.prototype.GetMatchingProduct = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetMatchingProduct'].concat(params));
};
MWSClientBase.prototype.GetMatchingProductForId = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetMatchingProductForId'].concat(params));
};
MWSClientBase.prototype.GetCompetitivePricingForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetCompetitivePricingForSKU'].concat(params));
};
MWSClientBase.prototype.GetCompetitivePricingForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetCompetitivePricingForASIN'].concat(params));
};
MWSClientBase.prototype.GetLowestOfferListingsForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetLowestOfferListingsForSKU'].concat(params));
};
MWSClientBase.prototype.GetLowestOfferListingsForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetLowestOfferListingsForASIN'].concat(params));
};
MWSClientBase.prototype.GetLowestPricedOffersForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetLowestPricedOffersForSKU'].concat(params));
};
MWSClientBase.prototype.GetLowestPricedOffersForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetLowestPricedOffersForASIN'].concat(params));
};
MWSClientBase.prototype.GetMyFeesEstimate = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetMyFeesEstimate'].concat(params));
};
MWSClientBase.prototype.GetMyPriceForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetMyPriceForSKU'].concat(params));
};
MWSClientBase.prototype.GetMyPriceForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetMyPriceForASIN'].concat(params));
};
MWSClientBase.prototype.GetProductCategoriesForSKU = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetProductCategoriesForSKU'].concat(params));
};
MWSClientBase.prototype.GetProductCategoriesForASIN = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Products', 'GetProductCategoriesForASIN'].concat(params));
};
MWSClientBase.prototype.GetLastUpdatedTimeForRecommendations = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Recommendations', 'GetLastUpdatedTimeForRecommendations'].concat(params));
};
MWSClientBase.prototype.ListRecommendations = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Recommendations', 'ListRecommendations'].concat(params));
};
MWSClientBase.prototype.ListRecommendationsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Recommendations', 'ListRecommendationsByNextToken'].concat(params));
};
MWSClientBase.prototype.RequestReport = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'RequestReport'].concat(params));
};
MWSClientBase.prototype.GetReportRequestList = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportRequestList'].concat(params));
};
MWSClientBase.prototype.GetReportRequestListByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportRequestListByNextToken'].concat(params));
};
MWSClientBase.prototype.GetReportRequestCount = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportRequestCount'].concat(params));
};
MWSClientBase.prototype.CancelReportRequests = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'CancelReportRequests'].concat(params));
};
MWSClientBase.prototype.GetReportList = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportList'].concat(params));
};
MWSClientBase.prototype.GetReportListByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportListByNextToken'].concat(params));
};
MWSClientBase.prototype.GetReportCount = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportCount'].concat(params));
};
MWSClientBase.prototype.GetReport = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReport'].concat(params));
};
MWSClientBase.prototype.ManageReportSchedule = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'ManageReportSchedule'].concat(params));
};
MWSClientBase.prototype.GetReportScheduleList = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportScheduleList'].concat(params));
};
MWSClientBase.prototype.GetReportScheduleListByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportScheduleListByNextToken'].concat(params));
};
MWSClientBase.prototype.GetReportScheduleCount = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'GetReportScheduleCount'].concat(params));
};
MWSClientBase.prototype.UpdateReportAcknowledgements = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Reports', 'UpdateReportAcknowledgements'].concat(params));
};
MWSClientBase.prototype.ListMarketplaceParticipations = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Sellers', 'ListMarketplaceParticipations'].concat(params));
};
MWSClientBase.prototype.ListMarketplaceParticipationsByNextToken = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Sellers', 'ListMarketplaceParticipationsByNextToken'].concat(params));
};
MWSClientBase.prototype.RegisterDestination = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'RegisterDestination'].concat(params));
};
MWSClientBase.prototype.DeregisterDestination = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'DeregisterDestination'].concat(params));
};
MWSClientBase.prototype.ListRegisteredDestinations = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'ListRegisteredDestinations'].concat(params));
};
MWSClientBase.prototype.SendTestNotificationToDestination = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'SendTestNotificationToDestination'].concat(params));
};
MWSClientBase.prototype.CreateSubscription = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'CreateSubscription'].concat(params));
};
MWSClientBase.prototype.GetSubscription = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'GetSubscription'].concat(params));
};
MWSClientBase.prototype.DeleteSubscription = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'DeleteSubscription'].concat(params));
};
MWSClientBase.prototype.ListSubscriptions = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'ListSubscriptions'].concat(params));
};
MWSClientBase.prototype.UpdateSubscription = function () {
var params = [];
for (var _i = 0; _i < arguments.length; _i++) {
params[_i] = arguments[_i];
}
return this._invokeApi.apply(this, ['Subscriptions', 'UpdateSubscription'].concat(params));
};
MWSClientBase.prototype.GetServiceStatus = function (section) {
var params = [];
for (var _i = 1; _i < arguments.length; _i++) {
params[_i - 1] = arguments[_i];
}
return this._invokeApi.apply(this, [section, 'GetServiceStatus'].concat(params));
};
return MWSClientBase;
}());
exports.MWSClientBase = MWSClientBase;
},{"@lemay/mws-api-info":3,"xml-js":74}],2:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = require("./base");
var md5 = require('md5');
var createHmac = require('create-hmac');
var iconv = require('iconv-lite');
function base64(hex_str) {
return btoa(hex_str.replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {
return String.fromCharCode(parseInt('0x' + p1));
}));
}
var WebBrowserMWSClient = (function (_super) {
__extends(WebBrowserMWSClient, _super);
function WebBrowserMWSClient() {
return _super !== null && _super.apply(this, arguments) || this;
}
WebBrowserMWSClient.prototype.calcMD5 = function (content) {
return base64(md5(content));
};
WebBrowserMWSClient.prototype.calcHMAC = function (content, secret) {
var hmac = createHmac('sha256', secret);
hmac.update(content);
return hmac.digest('base64');
};
WebBrowserMWSClient.prototype.makeHttpRequest = function (method, url, headers, body, cbk) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE) {
cbk(base_1.MWSClientBase.parseResponseError(xhr.status, xhr.getAllResponseHeaders(), xhr.responseText), base_1.MWSClientBase.parseResponse(xhr.status, xhr.getAllResponseHeaders(), xhr.responseText));
}
};
for (var k in headers) {
if (k == 'User-Agent') {
xhr.setRequestHeader('x-amz-user-agent', headers[k]);
}
else {
xhr.setRequestHeader(k, headers[k]);
}
}
xhr.send(body);
};
WebBrowserMWSClient.prototype.encodeContent = function (content, encoding) {
return iconv.encode(content, encoding);
};
WebBrowserMWSClient.prototype.getUserAgent = function () {
return "LemayWebBrowserMWSClient/" + base_1.MWSClientBase.version() + " (Language=Javascript, Platform=" + base_1.MWSClientBase.escapeUserAgentFieldValue(navigator.appVersion) + ")";
};
return WebBrowserMWSClient;
}(base_1.MWSClientBase));
module.exports = WebBrowserMWSClient;
},{"./base":1,"create-hmac":12,"iconv-lite":35,"md5":40}],3:[function(require,module,exports){
module.exports={
"US": {
"name": "Amazon United States",
"site": "amazon.com",
"id": "ATVPDKIKX0DER",
"mws_endpoint": "mws.amazonservices.com",
"region": "NA"
},
"CA": {
"name": "Amazon Canada",
"site": "amazon.ca",
"id": "A2EUQ1WTGCTBG2",
"mws_endpoint": "mws.amazonservices.com",
"region": "NA"
},
"MX": {
"name": "Amazon Mexico",
"site": "amazon.com.mx",
"id": "A1AM78C64UM0Y8",
"mws_endpoint": "mws.amazonservices.com",
"region": "NA"
},
"DE": {
"name": "Amazon Germany",
"site": "amazon.de",
"id": "A1PA6795UKMFR9",
"mws_endpoint": "mws-eu.amazonservices.com",
"region": "EU"
},
"ES": {
"name": "Amazon Spain",
"site": "amazon.es",
"id": "A1RKKUPIHCS9HS",
"mws_endpoint": "mws-eu.amazonservices.com",
"region": "EU"
},
"FR": {
"name": "Amazon France",
"site": "amazon.fr",
"id": "A13V1IB3VIYZZH",
"mws_endpoint": "mws-eu.amazonservices.com",
"region": "EU"
},
"IT": {
"name": "Amazon Italy",
"site": "amazon.it",
"id": "APJ6JRA9NG5V4",
"mws_endpoint": "mws-eu.amazonservices.com",
"region": "EU"
},
"UK": {
"name": "Amazon UK",
"site": "amazon.co.uk",
"id": "A1F83G8C2ARO7P",
"mws_endpoint": "mws-eu.amazonservices.com",
"region": "EU"
},
"IN": {
"name": "Amazon India",
"site": "amazon.in",
"id": "A21TJRUUN4KGV",
"mws_endpoint": "mws.amazonservices.in",
"region": "IN"
},
"AU": {
"name": "Amazon Australia",
"site": "amazon.com.au",
"id": "A39IBJ37TRP1C6",
"mws_endpoint": "mws.amazonservices.com.au",
"region": "FE"
},
"JP": {
"name": "Amazon Japan",
"site": "amazon.co.jp",
"id": "A1VC38T7YXB528",
"mws_endpoint": "mws.amazonservices.jp",
"region": "FE"
},
"CN": {
"name": "Amazon China",
"site": "amazon.cn",
"id": "AAHKV2X7AFYLW",
"mws_endpoint": "mws.amazonservices.com.cn",
"region": "CN"
},
"BR": {
"name": "Amazon Brazil",
"site": "amazon.com.br",
"id": "A2Q3Y263D00KWC",
"mws_endpoint": "mws.amazonservices.com",
"region": "BR"
}
}
},{}],4:[function(require,module,exports){
'use strict'
exports.byteLength = byteLength
exports.toByteArray = toByteArray
exports.fromByteArray = fromByteArray
var lookup = []
var revLookup = []
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for (var i = 0, len = code.length; i < len; ++i) {
lookup[i] = code[i]
revLookup[code.charCodeAt(i)] = i
}
// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
revLookup['-'.charCodeAt(0)] = 62
revLookup['_'.charCodeAt(0)] = 63
function getLens (b64) {
var len = b64.length
if (len % 4 > 0) {
throw new Error('Invalid string. Length must be a multiple of 4')
}
// Trim off extra bytes after placeholder bytes are found
// See: https://github.com/beatgammit/base64-js/issues/42
var validLen = b64.indexOf('=')
if (validLen === -1) validLen = len
var placeHoldersLen = validLen === len
? 0
: 4 - (validLen % 4)
return [validLen, placeHoldersLen]
}
// base64 is 4/3 + up to two characters of the original data
function byteLength (b64) {
var lens = getLens(b64)
var validLen = lens[0]
var placeHoldersLen = lens[1]
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}
function _byteLength (b64, validLen, placeHoldersLen) {
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}
function toByteArray (b64) {
var tmp
var lens = getLens(b64)
var validLen = lens[0]
var placeHoldersLen = lens[1]
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
var curByte = 0
// if there are placeholders, only get up to the last complete 4 chars
var len = placeHoldersLen > 0
? validLen - 4
: validLen
for (var i = 0; i < len; i += 4) {
tmp =
(revLookup[b64.charCodeAt(i)] << 18) |
(revLookup[b64.charCodeAt(i + 1)] << 12) |
(revLookup[b64.charCodeAt(i + 2)] << 6) |
revLookup[b64.charCodeAt(i + 3)]
arr[curByte++] = (tmp >> 16) & 0xFF
arr[curByte++] = (tmp >> 8) & 0xFF
arr[curByte++] = tmp & 0xFF
}
if (placeHoldersLen === 2) {
tmp =
(revLookup[b64.charCodeAt(i)] << 2) |
(revLookup[b64.charCodeAt(i + 1)] >> 4)
arr[curByte++] = tmp & 0xFF
}
if (placeHoldersLen === 1) {
tmp =
(revLookup[b64.charCodeAt(i)] << 10) |
(revLookup[b64.charCodeAt(i + 1)] << 4) |
(revLookup[b64.charCodeAt(i + 2)] >> 2)
arr[curByte++] = (tmp >> 8) & 0xFF
arr[curByte++] = tmp & 0xFF
}
return arr
}
function tripletToBase64 (num) {
return lookup[num >> 18 & 0x3F] +
lookup[num >> 12 & 0x3F] +
lookup[num >> 6 & 0x3F] +
lookup[num & 0x3F]
}
function encodeChunk (uint8, start, end) {
var tmp
var output = []
for (var i = start; i < end; i += 3) {
tmp =
((uint8[i] << 16) & 0xFF0000) +
((uint8[i + 1] << 8) & 0xFF00) +
(uint8[i + 2] & 0xFF)
output.push(tripletToBase64(tmp))
}
return output.join('')
}
function fromByteArray (uint8) {
var tmp
var len = uint8.length
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
var parts = []
var maxChunkLength = 16383 // must be multiple of 3
// go through the array every three bytes, we'll deal with trailing stuff later
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
parts.push(encodeChunk(
uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
))
}
// pad the end with zeros, but make sure to not forget the extra bytes
if (extraBytes === 1) {
tmp = uint8[len - 1]
parts.push(
lookup[tmp >> 2] +
lookup[(tmp << 4) & 0x3F] +
'=='
)
} else if (ext