@ylveracode/veracode-cli
Version:
a NodeJS based API wrapper for utilizing the Veracode APIs
61 lines (60 loc) • 2.82 kB
JavaScript
;
//import { type } from "os";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.request = exports.guidRegEx = exports.DEFAULT_XML_API_HOST = exports.DEFAULT_API_HOST = void 0;
//const veracodeHmac = require('./veracode-hmac');
//const credHandler = require('./credsHandler');
const axios_1 = __importDefault(require("axios"));
const hmacHandler_1 = require("../helpers/hmacHandler");
const USER_AGENT = 'veracode-api-handler';
const PROTOCOL = 'https://';
const DEFAULT_METHOD = 'GET';
exports.DEFAULT_API_HOST = 'api.veracode.com';
exports.DEFAULT_XML_API_HOST = 'analysiscenter.veracode.com';
exports.guidRegEx = /[a-z\d]{8}-[a-z\d]{4}-[a-z\d]{4}-[a-z\d]{4}-[a-z\d]{12}/i;
function request(inputMethod, host, path, params) {
return __awaiter(this, void 0, void 0, function* () {
//console.log('api query handler');
let method = inputMethod || DEFAULT_METHOD;
// funky for the Veracode HMAC generation
let queryString = '';
if (params !== null && Object.keys(params).length > 0) {
var entries = Object.entries(params);
queryString = '?';
let index = 0;
for (var entry of entries) {
if (index > 0)
queryString += '&';
queryString += entry[0] + '=' + ('' + entry[1]).replace(/\s/g, "+");
index++;
}
}
//console.log('before Axios.request');
const authHeader = hmacHandler_1.generateHeader(host, path + queryString, method);
//console.log(`Method: ${method}, Header:${authHeader}`);
return axios_1.default.request({
method,
headers: {
//'Accept': 'application/json',
'User-Agent': USER_AGENT,
'Authorization': authHeader,
"Accept-encoding": "utf8"
},
params,
url: PROTOCOL + host + path
});
});
}
exports.request = request;