import { Reporter } from '../reporter/reporter.js';
import { InfoComponent } from '../component/info_component.js';
import { checkPropTypes, semverRegex } from '../lib.js';
/**
* Package info
*/
class PackageInfo extends InfoComponent {
/**
* @param {Reporter} reporter
* @param {Object} settings
* @param {UUID} [settings.id]
* @param {string} settings.name
* @param {Semver} settings.version
* @param {string} [settings.creationDate]
* @param {string} [settings.author]
* @param {string} [settings.license]
* @param {string} [settings.description]
* @param {string} [settings.generator]
* @param {URL} [settings.repository]
* @param {Array<URL>} [settings.allowedURLS]
*/
constructor(reporter, settings) {
super(reporter, settings);
checkPropTypes(
settings,
{
name: 'string',
version: semverRegex
},
{
creationDate: "string", // Date ?
author: "string",
license: "string",
description: "string",
generator: "string",
repository: URL,
allowedURLS: Array,
}
);
}
static _exportName = {
singular: 'info',
plural: 'info'
};
}
export { PackageInfo };