@hijiriishi/piece-myjvn
Version:
This package is an Activepieces piece for integrating with MyJVM. Information on vulnerabilities and countermeasures for software used in Japan, provided through the MyJVN API.
75 lines • 3.13 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVulnDetailInfo = void 0;
const tslib_1 = require("tslib");
const pieces_framework_1 = require("@activepieces/pieces-framework");
const pieces_common_1 = require("@activepieces/pieces-common");
const pieces_common_2 = require("@activepieces/pieces-common");
const common_1 = require("../common");
const xml2js_1 = require("xml2js");
const zod_1 = require("zod");
exports.getVulnDetailInfo = (0, pieces_framework_1.createAction)({
name: 'get-vulnDetailInfo',
displayName: 'Get Vuln Detail Info',
description: 'fetch detailed vulnerability information.',
props: {
startItem: pieces_framework_1.Property.Number({
displayName: 'startItem',
description: 'Start entry index (1 or greater))',
required: false,
defaultValue: 1
}),
maxCountItem: pieces_framework_1.Property.Number({
displayName: 'maxCountItem',
description: 'Number of Entries to Retrieve (1 to 10)',
required: false,
defaultValue: 1
}),
vulnId: pieces_framework_1.Property.Array({
displayName: 'vulnId',
description: 'Vulnerability ID (JVNDB-YYYY-XXXXXX)',
required: true,
defaultValue: [],
}),
lang: common_1.myjvnCommon.lang,
ft: common_1.myjvnCommon.ft,
},
run(context) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
yield pieces_common_2.propsValidation.validateZod(context.propsValue, {
startItem: zod_1.z.number().min(1, 'startItem (1 or greater)').optional(),
maxCountItem: zod_1.z.number().min(1).max(10, 'maxCountItem (1 to 10)').optional(),
});
const { startItem, maxCountItem, vulnId, lang, ft } = context.propsValue;
const payload = new URLSearchParams({
method: 'getVulnDetailInfo',
feed: 'hnd',
});
if (startItem)
payload.append('startItem', startItem.toString());
if (maxCountItem)
payload.append('maxCountItem', maxCountItem.toString());
if (vulnId && vulnId.length > 0)
payload.append('vulnId', vulnId.join('+'));
if (lang)
payload.append('lang', lang);
const res = yield pieces_common_1.httpClient.sendRequest({
method: pieces_common_1.HttpMethod.POST,
url: common_1.myjvnCommon.baseUrl,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (ft === 'json') {
const parser = new xml2js_1.Parser({ explicitArray: false });
const jsonData = yield parser.parseStringPromise(res.body);
return jsonData;
}
else {
return res.body;
}
});
},
});
//# sourceMappingURL=get-vulndetailInfo.js.map