From 9a4f76ecaa3585c3f0ffe7e726568004da31ef31 Mon Sep 17 00:00:00 2001 From: Mickael Jeanroy Date: Wed, 7 Aug 2019 18:26:47 +0200 Subject: [PATCH] release: prepare next release --- dist/dependency.js | 153 ---------- dist/eol.js | 26 -- dist/generate-block-comment.js | 46 --- dist/index-rollup-legacy.js | 101 ------- dist/index-rollup-stable.js | 72 ----- dist/index.js | 31 -- dist/license-plugin.js | 498 --------------------------------- dist/person.js | 115 -------- 8 files changed, 1042 deletions(-) delete mode 100644 dist/dependency.js delete mode 100644 dist/eol.js delete mode 100644 dist/generate-block-comment.js delete mode 100644 dist/index-rollup-legacy.js delete mode 100644 dist/index-rollup-stable.js delete mode 100644 dist/index.js delete mode 100644 dist/license-plugin.js delete mode 100644 dist/person.js diff --git a/dist/dependency.js b/dist/dependency.js deleted file mode 100644 index 46e11def..00000000 --- a/dist/dependency.js +++ /dev/null @@ -1,153 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var _ = require('lodash'); - -var EOL = require('./eol.js'); - -var Person = require('./person.js'); -/** - * Dependency structure. - */ - - -var Dependency = -/*#__PURE__*/ -function () { - /** - * Create new dependency from package description. - * - * @param {Object} pkg Package description. - * @constructor - */ - function Dependency(pkg) { - _classCallCheck(this, Dependency); - - var dependency = _.pick(pkg, ['name', 'author', 'contributors', 'maintainers', 'version', 'description', 'license', 'licenses', 'repository', 'homepage', 'private']); // Parse the author field to get an object. - - - if (dependency.author) { - dependency.author = new Person(dependency.author); - } // Parse the contributor array. - - - if (dependency.contributors) { - // Translate to an array if it is not already. - if (_.isString(dependency.contributors)) { - dependency.contributors = [dependency.contributors]; - } // Parse each contributor to produce a single object for each person. - - - dependency.contributors = _.map(dependency.contributors, function (contributor) { - return new Person(contributor); - }); - } // The `licenses` field is deprecated but may be used in some packages. - // Map it to a standard license field. - - - if (!dependency.license && dependency.licenses) { - // Map it to a valid license field. - // See: https://docs.npmjs.com/files/package.json#license - dependency.license = "(".concat(_.chain(dependency.licenses).map(function (license) { - return license.type || license; - }).join(' OR ').value(), ")"); // Remove it. - - delete dependency.licenses; - } - - _.extend(this, dependency); - } - /** - * Serialize dependency as a string. - * - * @param {string} prefix Optional prefix prepended to the output string. - * @param {suffix} suffix Optional suffix appended to the output string. - * @param {string} joiner Optional character used to join all the lines. - * @return {string} The dependency correctly formatted. - */ - - - _createClass(Dependency, [{ - key: "text", - value: function text() { - var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var joiner = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EOL; - var lines = []; - lines.push("".concat(prefix, "Name: ").concat(this.name).concat(suffix)); - lines.push("".concat(prefix, "Version: ").concat(this.version).concat(suffix)); - lines.push("".concat(prefix, "License: ").concat(this.license).concat(suffix)); - lines.push("".concat(prefix, "Private: ").concat(this["private"] || false).concat(suffix)); - - if (this.description) { - lines.push("".concat(prefix, "Description: ").concat(this.description || false).concat(suffix)); - } - - if (this.repository) { - lines.push("".concat(prefix, "Repository: ").concat(this.repository.url).concat(suffix)); - } - - if (this.homepage) { - lines.push("".concat(prefix, "Homepage: ").concat(this.homepage).concat(suffix)); - } - - if (this.author) { - lines.push("".concat(prefix, "Author: ").concat(this.author.text()).concat(suffix)); - } - - if (this.contributors) { - lines.push("".concat(prefix, "Contributors:").concat(suffix)); - - var allContributors = _.chain(this.contributors).map(function (contributor) { - return contributor.text(); - }).map(function (line) { - return "".concat(prefix, " ").concat(line).concat(suffix); - }).value(); - - lines.push.apply(lines, _toConsumableArray(allContributors)); - } - - return lines.join(joiner); - } - }]); - - return Dependency; -}(); - -module.exports = Dependency; \ No newline at end of file diff --git a/dist/eol.js b/dist/eol.js deleted file mode 100644 index 5d9f849a..00000000 --- a/dist/eol.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -module.exports = '\n'; \ No newline at end of file diff --git a/dist/generate-block-comment.js b/dist/generate-block-comment.js deleted file mode 100644 index e332173d..00000000 --- a/dist/generate-block-comment.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -var commenting = require('commenting'); -/** - * Generate block comment from given text content. - * - * @param {string} text Text content. - * @param {Object} commentStyle The comment style setting. - * @return {string} Block comment. - */ - - -module.exports = function generateBlockComment(text, commentStyle) { - var options = { - extension: '.js' - }; - - if (commentStyle) { - options.style = new commenting.Style(commentStyle.body, commentStyle.start, commentStyle.end); - } - - return commenting(text.trim(), options); -}; \ No newline at end of file diff --git a/dist/index-rollup-legacy.js b/dist/index-rollup-legacy.js deleted file mode 100644 index d24d9824..00000000 --- a/dist/index-rollup-legacy.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -var _ = require('lodash'); - -var LicensePlugin = require('./license-plugin.js'); - -module.exports = function () { - var _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var plugin = new LicensePlugin(_options); - return { - /** - * Name of the plugin, used automatically by rollup. - * @type {string} - */ - name: plugin.name, - - /** - * Function called by rollup when a JS file is loaded: it is used to scan - * third-party dependencies. - * - * @param {string} id JS file path. - * @return {void} - */ - load: function load(id) { - plugin.scanDependency(id); - }, - - /** - * Function called by rollup to read global options: if source map parameter - * is truthy, enable it on the plugin. - * - * @param {object} opts Rollup options. - * @return {void} - */ - options: function options(opts) { - if (!opts) { - return; - } - - if (_.has(_options, 'sourceMap') || _.has(_options, 'sourcemap')) { - // SourceMap has been set on the plugin itself. - return; - } // Rollup >= 0.48 replace `sourceMap` with `sourcemap`. - // If `sourcemap` is disabled globally, disable it on the plugin. - - - if (opts.sourceMap === false || opts.sourcemap === false) { - plugin.disableSourceMap(); - } - }, - - /** - * Function called by rollup when the final bundle is generated: it is used - * to prepend the banner file on the generated bundle. - * - * @param {string} code Bundle content. - * @param {Object} outputOptions The options for this output. - * @return {void} - */ - transformBundle: function transformBundle(code) { - var outputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var sourcemap = outputOptions.sourcemap !== false || outputOptions.sourceMap !== false; - return plugin.prependBanner(code, sourcemap); - }, - - /** - * Function called by rollup when the final bundle will be written on disk: it - * is used to generate a file containing a summary of all third-party dependencies - * with license information. - * - * @return {void} - */ - ongenerate: function ongenerate() { - plugin.exportThirdParties(); - } - }; -}; \ No newline at end of file diff --git a/dist/index-rollup-stable.js b/dist/index-rollup-stable.js deleted file mode 100644 index 864d0e7f..00000000 --- a/dist/index-rollup-stable.js +++ /dev/null @@ -1,72 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -var _ = require('lodash'); - -var LicensePlugin = require('./license-plugin.js'); - -module.exports = function () { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var plugin = new LicensePlugin(options); - return { - /** - * Name of the plugin, used automatically by rollup. - * @type {string} - */ - name: plugin.name, - - /** - * Function called by rollup when the final bundle is generated: it is used - * to prepend the banner file on the generated bundle. - * - * @param {string} code Bundle content. - * @param {Object} chunk The chunk being generated. - * @param {Object} outputOptions The options for the generated output. - * @return {void} - */ - renderChunk: function renderChunk(code, chunk) { - var outputOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - plugin.scanDependencies(_.chain(chunk.modules).toPairs().reject(function (mod) { - return mod[1].isAsset; - }).filter(function (mod) { - return mod[1].renderedLength > 0; - }).map(function (mod) { - return mod[0]; - }).value()); - return plugin.prependBanner(code, outputOptions.sourcemap !== false); - }, - - /** - * Function called by rollup when the final bundle will be written on disk: it - * is used to generate a file containing a summary of all third-party dependencies - * with license information. - * - * @return {void} - */ - generateBundle: function generateBundle() { - plugin.exportThirdParties(); - } - }; -}; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 34ab5f99..00000000 --- a/dist/index.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -var rollup = require('rollup'); - -var VERSION = rollup.VERSION; -var MAJOR_VERSION = VERSION ? Number(VERSION.split('.')[0]) : 0; -var IS_ROLLUP_LEGACY = MAJOR_VERSION === 0; -module.exports = IS_ROLLUP_LEGACY ? require('./index-rollup-legacy') : require('./index-rollup-stable'); \ No newline at end of file diff --git a/dist/license-plugin.js b/dist/license-plugin.js deleted file mode 100644 index 42872b3c..00000000 --- a/dist/license-plugin.js +++ /dev/null @@ -1,498 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var fs = require('fs'); - -var path = require('path'); - -var mkdirp = require('mkdirp'); - -var _ = require('lodash'); - -var moment = require('moment'); - -var MagicString = require('magic-string'); - -var Dependency = require('./dependency.js'); - -var generateBlockComment = require('./generate-block-comment.js'); - -var EOL = require('./eol.js'); -/** - * The list of avaiilable options. - * @type {Set} - */ - - -var OPTIONS = new Set(['cwd', 'debug', 'sourcemap', 'banner', 'thirdParty']); -/** - * Pre-Defined comment style: - * - * - `regular` stands for "classic" block comment. - * - `ignored` stands for block comment starting with standard prefix ignored by minifier. - * - `slash` stands for "inline" style (i.e `//`). - * - `none` stands for no comment style at all. - * - * @type {Object} - */ - -var COMMENT_STYLES = { - regular: { - start: '/**', - body: ' *', - end: ' */' - }, - ignored: { - start: '/*!', - body: ' *', - end: ' */' - }, - slash: { - start: '//', - body: '//', - end: '//' - }, - none: null -}; -/** - * Compute the comment style to use for given text: - * - If text starts with a block comment, nothing is done (i.e use `none`). - * - Otherwise, use the `regular` style. - * - * @param {string} text The text to comment. - * @return {string} The comment style name. - */ - -function computeDefaultCommentStyle(text) { - var trimmedText = text.trim(); - var start = trimmedText.slice(0, 3); - var startWithComment = start === '/**' || start === '/*!'; - return startWithComment ? 'none' : 'regular'; -} -/** - * The plugin name. - * @type {string} - */ - - -var PLUGIN_NAME = 'rollup-plugin-license'; -/** - * Print for deprecated or unknown options according to the `OPTIONS` - * set defined below. - * - * @param {Object} options The initialization option. - * @return {void} - */ - -function validateOptions(options) { - var notSupported = _.reject(_.keys(options), function (key) { - return OPTIONS.has(key); - }); - - if (notSupported.length > 0) { - console.warn("[".concat(PLUGIN_NAME, "] Options ").concat(notSupported, " are not supported, use following options: ").concat(Array.from(OPTIONS))); - } -} -/** - * Fix option object, replace `sourceMap` with `sourcemap` if needed. - * - * @param {Object} options Original option object. - * @return {Object} The new fixed option object. - */ - - -function fixSourceMapOptions(options) { - // Rollup <= 0.48 used `sourceMap` in camelcase, so this plugin used - // this convention at the beginning. - // Now, the `sourcemap` key should be used, but legacy version should still - // be able to use the `sourceMap` key. - var newOptions = _.omitBy(options, function (value, key) { - return key === 'sourceMap'; - }); // If the old `sourceMap` key is used, set it to `sourcemap` key. - - - if (_.hasIn(options, 'sourceMap')) { - console.warn("[".concat(PLUGIN_NAME, "] sourceMap has been deprecated, please use sourcemap instead.")); - - if (!_.hasIn(newOptions, 'sourcemap')) { - newOptions.sourcemap = options.sourceMap; - } - } // Validate options. - - - validateOptions(newOptions); - return newOptions; -} -/** - * Rollup Plugin. - */ - - -module.exports = -/*#__PURE__*/ -function () { - /** - * Initialize plugin. - * - * @param {Object} options Plugin options. - */ - function LicensePlugin() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, LicensePlugin); - - // Plugin name, used by rollup. - this.name = PLUGIN_NAME; // Initialize main options. - - this._options = fixSourceMapOptions(options); - this._cwd = this._options.cwd || process.cwd(); - this._dependencies = {}; - this._pkg = require(path.join(this._cwd, 'package.json')); - this._debug = this._options.debug || false; // SourceMap can now be disable/enable on the plugin. - - this._sourcemap = this._options.sourcemap !== false; // This is a cache storing a directory path to associated package. - // This is an improvement to avoid looking for package information for - // already scanned directory. - - this._cache = {}; - } - /** - * Enable source map. - * - * @return {void} - */ - - - _createClass(LicensePlugin, [{ - key: "disableSourceMap", - value: function disableSourceMap() { - this._sourcemap = false; - } - /** - * Hook triggered by `rollup` to load code from given path file. - * - * This hook is used here to analyze a JavaScript file to extract - * associated `package.json` file and store the main information about - * it (license, author, etc.). - * - * This method is used to analyse all the files added to the final bundle - * to extract license informations. - * - * @param {string} id Module identifier. - * @return {void} - */ - - }, { - key: "scanDependency", - value: function scanDependency(id) { - var _this = this; - - if (id.startsWith('\0')) { - id = id.replace(/^\0/, ''); - this.debug("scanning internal module ".concat(id)); - } - - this.debug("scanning ".concat(id)); // Look for the `package.json` file - - var dir = path.parse(id).dir; - var pkg = null; - var scannedDirs = []; - - while (dir && dir !== this._cwd) { - // Try the cache. - if (_.has(this._cache, dir)) { - pkg = this._cache[dir]; - - if (pkg) { - this.debug("found package.json in cache (package: ".concat(pkg.name, ")")); - this.addDependency(pkg); - } - - break; - } - - scannedDirs.push(dir); - var pkgPath = path.join(dir, 'package.json'); - var exists = fs.existsSync(pkgPath); - - if (exists) { - this.debug("found package.json at: ".concat(pkgPath, ", read it")); // Read `package.json` file - - pkg = require(pkgPath); // Add the new dependency to the set of third-party dependencies. - - this.addDependency(pkg); // We can stop now. - - break; - } // Go up in the directory tree. - - - dir = path.normalize(path.join(dir, '..')); - } // Update the cache - - - _.forEach(scannedDirs, function (scannedDir) { - _this._cache[scannedDir] = pkg; - }); - } - /** - * Hook triggered by `rollup` to load code from given path file. - * - * @param {Object} dependencies List of modules included in the final bundle. - * @return {void} - */ - - }, { - key: "scanDependencies", - value: function scanDependencies(dependencies) { - var _this2 = this; - - this.debug("Scanning: ".concat(dependencies)); - - _.forEach(dependencies, function (dependency) { - _this2.scanDependency(dependency); - }); - } - /** - * Hook triggered by `rollup` to transform the final generated bundle. - * This hook is used here to prepend the license banner to the final bundle. - * - * @param {string} code The bundle content. - * @param {boolean} sourcemap If sourcemap must be generated. - * @return {Object} The result containing the code and, optionnally, the source map - * if it has been enabled (using `enableSourceMap` method). - */ - - }, { - key: "prependBanner", - value: function prependBanner(code, sourcemap) { - // Create a magicString: do not manipulate the string directly since it - // will be used to generate the sourcemap. - var magicString = new MagicString(code); - var banner = this._options.banner; - - var content = this._readBanner(banner); - - if (content) { - magicString.prepend(EOL); - magicString.prepend(this._generateBanner(content, banner)); - } - - var result = { - code: magicString.toString() - }; - - if (this._sourcemap !== false && sourcemap !== false) { - result.map = magicString.generateMap({ - hires: true - }); - } - - return result; - } - /** - * Add new dependency to the bundle descriptor. - * - * @param {Object} pkg Dependency package information. - * @return {void} - */ - - }, { - key: "addDependency", - value: function addDependency(pkg) { - var name = pkg.name; - - if (!_.has(this._dependencies, name)) { - this._dependencies[name] = new Dependency(pkg); - } - } - /** - * Generate third-party dependencies summary. - * - * @param {boolean} includePrivate Flag that can be used to include / exclude private dependencies. - * @return {void} - */ - - }, { - key: "exportThirdParties", - value: function exportThirdParties() { - var thirdParty = this._options.thirdParty; - - if (!thirdParty) { - return; - } - - var output = thirdParty.output; - - if (output) { - this.debug("exporting third-party summary to ".concat(output)); // Create directory if it does not already exist. - - mkdirp(path.parse(output).dir); - var includePrivate = thirdParty.includePrivate; - - var text = _.chain(this._dependencies).values().filter(function (dependency) { - return includePrivate || !dependency["private"]; - }).map(function (dependency) { - return dependency.text(); - }).join("".concat(EOL).concat(EOL, "---").concat(EOL).concat(EOL)).trim().value(); - - var encoding = thirdParty.encoding || 'utf-8'; - this.debug("use encoding: ".concat(encoding)); - fs.writeFileSync(output, text || 'No third parties dependencies', { - encoding: encoding - }); - } - } - /** - * Log debug message if debug mode is enabled. - * - * @param {string} msg Log message. - * @return {void} - */ - - }, { - key: "debug", - value: function debug(msg) { - if (this._debug) { - console.log("[".concat(this.name, "] -- ").concat(msg)); - } - } - /** - * Log a warning to the console. - * - * @param {string} msg Message to log. - * @return {void} - */ - - }, { - key: "warn", - value: function warn(msg) { - console.warn("[".concat(this.name, "] -- ").concat(msg)); - } - /** - * Read banner from given options and returns it. - * - * @param {Object|string} banner Banner as a raw string, or banner options. - * @return {string|null} The banner template. - * @private - */ - - }, { - key: "_readBanner", - value: function _readBanner(banner) { - if (_.isNil(banner)) { - return null; - } // Banner can be defined as a simple inline string. - - - if (_.isString(banner)) { - this.debug('prepend banner from raw string'); - return banner; - } // Warn about deprecated option. - - - if (_.has(banner, 'file') || _.has(banner, 'encoding')) { - this.warn('option `"banner.file"` and `"banner.encoding"` are deprecated and will be removed in a future version, ' + 'please use `"banner.content": {file, encoding}` option instead'); - } // Extract banner content. - - - var content = _.has(banner, 'content') ? _.result(banner, 'content') : { - file: banner.file, - encoding: banner.encoding - }; // Content can be an inline string. - - if (_.isString(content)) { - this.debug('prepend banner from content raw string'); - return content; - } // Otherwise, file must be defined (if not, that's an error). - - - if (!_.has(content, 'file')) { - throw new Error("[".concat(this.name, "] -- Cannot find banner content, please specify an inline content, or a path to a file")); - } - - var file = content.file; - var encoding = content.encoding || 'utf-8'; - this.debug("prepend banner from file: ".concat(file)); - this.debug("use encoding: ".concat(encoding)); - var filePath = path.resolve(file); - var exists = fs.existsSync(filePath); // Fail fast if file does not exist. - - if (!exists) { - throw new Error("[".concat(this.name, "] -- Template file ").concat(filePath, " does not exist, or cannot be read")); - } - - return fs.readFileSync(filePath, encoding); - } - /** - * Generate banner output from given raw string and given options. - * - * Banner output will be a JavaScript comment block, comment style may be customized using - * the `commentStyle` option. - * - * @param {string} content Banner content, as a raw string. - * @param {Object} banner Banner options. - * @return {string} The banner output. - * @private - */ - - }, { - key: "_generateBanner", - value: function _generateBanner(content, banner) { - // Create the template function with lodash. - var tmpl = _.template(content); // Generate the banner. - - - var pkg = this._pkg; - - var dependencies = _.values(this._dependencies); - - var data = banner.data ? _.result(banner, 'data') : {}; - var text = tmpl({ - _: _, - moment: moment, - pkg: pkg, - dependencies: dependencies, - data: data - }); // Compute comment style to use. - - var style = _.has(banner, 'commentStyle') ? banner.commentStyle : computeDefaultCommentStyle(text); // Ensure given style name is valid. - - if (!_.has(COMMENT_STYLES, style)) { - throw new Error("Unknown comment style ".concat(style, ", please use one of: ").concat(_.keys(COMMENT_STYLES))); - } - - this.debug("generate banner using comment style: ".concat(style)); - return COMMENT_STYLES[style] ? generateBlockComment(text, COMMENT_STYLES[style]) : text; - } - }]); - - return LicensePlugin; -}(); \ No newline at end of file diff --git a/dist/person.js b/dist/person.js deleted file mode 100644 index 63b4db90..00000000 --- a/dist/person.js +++ /dev/null @@ -1,115 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016-2018 Mickael Jeanroy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var _ = require('lodash'); -/** - * Person, defined by: - * - A name. - * - An email (optional). - * - An URL (optional). - */ - - -var Person = -/*#__PURE__*/ -function () { - /** - * Create the person. - * - * If parameter is a string, it will be automatically parsed according to - * this format: NAME (URL) (where email and url are optional). - * - * @param {string|object} person The person identity. - * @constructor - */ - function Person(person) { - _classCallCheck(this, Person); - - if (_.isString(person)) { - var o = {}; - var current = 'name'; - - for (var i = 0, size = person.length; i < size; ++i) { - var character = person.charAt(i); - - if (character === '<') { - current = 'email'; - } else if (character === '(') { - current = 'url'; - } else if (character !== ')' && character !== '>') { - o[current] = (o[current] || '') + character; - } - } - - _.forEach(['name', 'email', 'url'], function (prop) { - if (_.has(o, prop)) { - o[prop] = _.trim(o[prop]); - } - }); - - person = o; - } - - _.extend(this, person); - } - /** - * Serialize the person to a string with the following format: - * NAME (URL) - * - * @param {string} prefix Optional prefix prepended to the output string. - * @param {string} suffix Optional suffix appended to the output string. - * @return {string} The person as a string. - */ - - - _createClass(Person, [{ - key: "text", - value: function text() { - var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var text = "".concat(this.name); - - if (this.email) { - text += " <".concat(this.email, ">"); - } - - if (this.url) { - text += " (".concat(this.url, ")"); - } - - return "".concat(prefix).concat(text).concat(suffix); - } - }]); - - return Person; -}(); - -module.exports = Person; \ No newline at end of file