Source: package/package_info.js

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 };