CasperSecurity

Current Path : /usr/share/nodejs/get-spdx-license-ids/
Upload File :
Current File : //usr/share/nodejs/get-spdx-license-ids/index.js

'use strict';

const Fettucine = require('fettuccine-class');
const inspectWithKind = require('inspect-with-kind');

function isValidId({licenseId}) {
	return !licenseId.endsWith('+');
}

function isDeprecatedAndValidId({isDeprecatedLicenseId, licenseId}) {
	return isDeprecatedLicenseId && !licenseId.endsWith('+');
}

function isNonDeprecatedAndValidId({isDeprecatedLicenseId, licenseId}) {
	return !isDeprecatedLicenseId && !licenseId.endsWith('+');
}

function getLicenseId({licenseId}) {
	return licenseId;
}

const fettuccine = new Fettucine({
	baseUrl: 'https://spdx.org',
	json: true
});

async function getSpdxLicenseData(...args) {
	const argLen = args.length;

	if (argLen !== 0 && argLen !== 1) {
		throw new RangeError(`Expected 0 or 1 arguments (options: <Object>), but got ${argLen} arguments.`);
	}

	const [options] = args;

	if (argLen === 1) {
		if (options !== null && typeof options === 'object') {
			if (options.json === false) {
				throw new Error('Cannot disable `json` option because get-spdx-license-ids always gets the SPDX license IDs as JSON.');
			}
		} else {
			throw new TypeError(`Expected an object to set the options of get-spdx-license-ids, but got ${
				inspectWithKind(options)
			} instead.`);
		}
	}

	return (await fettuccine.get('licenses/licenses.json', ...args)).body.licenses;
}

module.exports = async function getSpdxLicenseIds(...args) {
	return (await getSpdxLicenseData(...args)).filter(isNonDeprecatedAndValidId).map(getLicenseId);
};

module.exports.all = async function getAllSpdxLicenseIds(...args) {
	return (await getSpdxLicenseData(...args)).filter(isValidId).map(getLicenseId);
};

module.exports.both = async function getBothSpdxLicenseIds(...args) {
	const deprecated = [];
	const valid = [];

	for (const {licenseId, isDeprecatedLicenseId} of await getSpdxLicenseData(...args)) {
		if (licenseId.endsWith('+')) {
			continue;
		}

		if (isDeprecatedLicenseId) {
			deprecated.push(licenseId);
			continue;
		}

		valid.push(licenseId);
	}

	return [valid, deprecated];
};

module.exports.deprecated = async function getDeprecatedSpdxLicenseIds(...args) {
	return (await getSpdxLicenseData(...args)).filter(isDeprecatedAndValidId).map(getLicenseId);
};
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY