walmart_marketplace
Version:
Walmart Marketplace CA Generated Connector
29 lines (28 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generate_signature = exports.generate_correlation_id = exports.json_to_query_string = void 0;
// @ts-ignore
const crypto_browserify_1 = require("crypto-browserify");
const json_to_query_string = json => {
const str = Object.entries(json)
.map(([k, v]) => `${k}=${v}`)
.join('&');
// .replaceAll(':', '%3A')
const prefix = str.length > 0 ? '?' : '';
return prefix + str;
};
exports.json_to_query_string = json_to_query_string;
const generate_correlation_id = () => {
return (0, crypto_browserify_1.randomBytes)(16).toString('hex');
};
exports.generate_correlation_id = generate_correlation_id;
const generate_signature = (url, method, secret, consumer, timestamp) => {
const pk_header = '\n-----BEGIN PRIVATE KEY-----\n';
const pk_footer = '\n-----END PRIVATE KEY-----\n';
const privateKey = `${pk_header}${secret}${pk_footer}`;
const stringToSign = consumer + '\n' + url + '\n' + method.toUpperCase() + '\n' + timestamp + '\n';
const sign = (0, crypto_browserify_1.createSign)('RSA-SHA256');
sign.update(stringToSign);
return sign.sign(privateKey, 'base64');
};
exports.generate_signature = generate_signature;