From 1dc84cdb53eff394b4d057be56f3ac3b2066b0b4 Mon Sep 17 00:00:00 2001 From: Forrest L Norvell Date: Thu, 27 Aug 2015 17:09:51 -0700 Subject: init-package-json@1.9.1 Support `silent` to suppress all output from the init process. --- .../init-package-json/init-package-json.js | 4 +- .../validate-npm-package-license/LICENSE | 174 +++++++++++++++++++++ .../validate-npm-package-license/README.md | 113 +++++++++++++ .../validate-npm-package-license/index.js | 84 ++++++++++ .../validate-npm-package-license/package.json | 87 +++++++++++ node_modules/init-package-json/package.json | 50 +++--- node_modules/init-package-json/test/silent.js | 23 +++ 7 files changed, 513 insertions(+), 22 deletions(-) create mode 100644 node_modules/init-package-json/node_modules/validate-npm-package-license/LICENSE create mode 100644 node_modules/init-package-json/node_modules/validate-npm-package-license/README.md create mode 100644 node_modules/init-package-json/node_modules/validate-npm-package-license/index.js create mode 100644 node_modules/init-package-json/node_modules/validate-npm-package-license/package.json create mode 100644 node_modules/init-package-json/test/silent.js (limited to 'node_modules/init-package-json') diff --git a/node_modules/init-package-json/init-package-json.js b/node_modules/init-package-json/init-package-json.js index 5e50e7127..87c72ccf9 100644 --- a/node_modules/init-package-json/init-package-json.js +++ b/node_modules/init-package-json/init-package-json.js @@ -106,7 +106,9 @@ function init (dir, input, config, cb) { var d = JSON.stringify(pkg, null, 2) + '\n' function write (yes) { fs.writeFile(package, d, 'utf8', function (er) { - if (!er && yes) console.log('Wrote to %s:\n\n%s\n', package, d) + if (!er && yes && !config.get('silent')) { + console.log('Wrote to %s:\n\n%s\n', package, d) + } return cb(er, pkg) }) } diff --git a/node_modules/init-package-json/node_modules/validate-npm-package-license/LICENSE b/node_modules/init-package-json/node_modules/validate-npm-package-license/LICENSE new file mode 100644 index 000000000..a5e905d55 --- /dev/null +++ b/node_modules/init-package-json/node_modules/validate-npm-package-license/LICENSE @@ -0,0 +1,174 @@ +SPDX:Apache-2.0 + +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control +with that entity. For the purposes of this definition, "control" means +(i) the power, direct or indirect, to cause the direction or management +of such entity, whether by contract or otherwise, or (ii) ownership of +fifty percent (50%) or more of the outstanding shares, or (iii) +beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but not +limited to compiled object code, generated documentation, and +conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object +form, made available under the License, as indicated by a copyright +notice that is included in or attached to the work (an example is +provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor +for inclusion in the Work by the copyright owner or by an individual or +Legal Entity authorized to submit on behalf of the copyright owner. For +the purposes of this definition, "submitted" means any form of +electronic, verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on +electronic mailing lists, source code control systems, and issue +tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding +communication that is conspicuously marked or otherwise designated in +writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright +license to reproduce, prepare Derivative Works of, publicly display, +publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, +sell, import, and otherwise transfer the Work, where such license +applies only to those patent claims licensable by such Contributor that +are necessarily infringed by their Contribution(s) alone or by +combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent litigation +against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that the Work or a Contribution incorporated within +the Work constitutes direct or contributory patent infringement, then +any patent licenses granted to You under this License for that Work +shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work +or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You meet the +following conditions: + +(a) You must give any other recipients of the Work or Derivative Works a +copy of this License; and + +(b) You must cause any modified files to carry prominent notices stating +that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices +from the Source form of the Work, excluding those notices that do not +pertain to any part of the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include +a readable copy of the attribution notices contained within such NOTICE +file, excluding those notices that do not pertain to any part of the +Derivative Works, in at least one of the following places: within a +NOTICE text file distributed as part of the Derivative Works; within the +Source form or documentation, if provided along with the Derivative +Works; or, within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents of the +NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative +Works that You distribute, alongside or as an addendum to the NOTICE +text from the Work, provided that such additional attribution notices +cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated +in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work by +You to the Licensor shall be under the terms and conditions of this +License, without any additional terms or conditions. Notwithstanding the +above, nothing herein shall supersede or modify the terms of any +separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed +to in writing, Licensor provides the Work (and each Contributor provides +its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS +OF ANY KIND, either express or implied, including, without limitation, +any warranties or conditions of TITLE, NON-INFRINGEMENT, +MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely +responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your +exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, unless +required by applicable law (such as deliberate and grossly negligent +acts) or agreed to in writing, shall any Contributor be liable to You +for damages, including any direct, indirect, special, incidental, or +consequential damages of any character arising as a result of this +License or out of the use or inability to use the Work (including but +not limited to damages for loss of goodwill, work stoppage, computer +failure or malfunction, or any and all other commercial damages or +losses), even if such Contributor has been advised of the possibility of +such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on +Your sole responsibility, not on behalf of any other Contributor, and +only if You agree to indemnify, defend, and hold each Contributor +harmless for any liability incurred by, or claims asserted against, such +Contributor by reason of your accepting any such warranty or additional +liability. diff --git a/node_modules/init-package-json/node_modules/validate-npm-package-license/README.md b/node_modules/init-package-json/node_modules/validate-npm-package-license/README.md new file mode 100644 index 000000000..c5b3bfcf3 --- /dev/null +++ b/node_modules/init-package-json/node_modules/validate-npm-package-license/README.md @@ -0,0 +1,113 @@ +validate-npm-package-license +============================ + +Give me a string and I'll tell you if it's a valid npm package license string. + +```javascript +var valid = require('validate-npm-package-license'); +``` + +SPDX license identifiers are valid license strings: + +```javascript + +var assert = require('assert'); +var validSPDXExpression = { + validForNewPackages: true, + validForOldPackages: true, + spdx: true +}; + +assert.deepEqual(valid('MIT'), validSPDXExpression); +assert.deepEqual(valid('BSD-2-Clause'), validSPDXExpression); +assert.deepEqual(valid('Apache-2.0'), validSPDXExpression); +assert.deepEqual(valid('ISC'), validSPDXExpression); +``` +The function will return a warning and suggestion for nearly-correct license identifiers: + +```javascript +assert.deepEqual( + valid('Apache 2.0'), + { + validForOldPackages: false, + validForNewPackages: false, + warnings: [ + 'license should be ' + + 'a valid SPDX license expression (without "LicenseRef"), ' + + '"UNLICENSED", or ' + + '"SEE LICENSE IN "', + 'license is similar to the valid expression "Apache-2.0"' + ] + } +); +``` + +SPDX expressions are valid, too ... + +```javascript +// Simple SPDX license expression for dual licensing +assert.deepEqual( + valid('(GPL-3.0 OR BSD-2-Clause)'), + validSPDXExpression +); +``` + +... except if they contain `LicenseRef`: + +```javascript +var warningAboutLicenseRef = { + validForOldPackages: false, + validForNewPackages: false, + spdx: true, + warnings: [ + 'license should be ' + + 'a valid SPDX license expression (without "LicenseRef"), ' + + '"UNLICENSED", or ' + + '"SEE LICENSE IN "', + ] +}; + +assert.deepEqual( + valid('LicenseRef-Made-Up'), + warningAboutLicenseRef +); + +assert.deepEqual( + valid('(MIT OR LicenseRef-Made-Up)'), + warningAboutLicenseRef +); +``` + +If you can't describe your licensing terms with standardized SPDX identifiers, put the terms in a file in the package and point users there: + +```javascript +assert.deepEqual( + valid('SEE LICENSE IN LICENSE.txt'), + { + validForNewPackages: true, + validForOldPackages: true, + inFile: 'LICENSE.txt' + } +); + +assert.deepEqual( + valid('SEE LICENSE IN license.md'), + { + validForNewPackages: true, + validForOldPackages: true, + inFile: 'license.md' + } +); +``` + +If there aren't any licensing terms, use `UNLICENSED`: + +```javascript +var unlicensed = { + validForNewPackages: true, + validForOldPackages: true, + unlicensed: true +}; +assert.deepEqual(valid('UNLICENSED'), unlicensed); +assert.deepEqual(valid('UNLICENCED'), unlicensed); +``` diff --git a/node_modules/init-package-json/node_modules/validate-npm-package-license/index.js b/node_modules/init-package-json/node_modules/validate-npm-package-license/index.js new file mode 100644 index 000000000..2ad98d9d8 --- /dev/null +++ b/node_modules/init-package-json/node_modules/validate-npm-package-license/index.js @@ -0,0 +1,84 @@ +var parse = require('spdx-expression-parse'); +var correct = require('spdx-correct'); + +var genericWarning = ( + 'license should be ' + + 'a valid SPDX license expression (without "LicenseRef"), ' + + '"UNLICENSED", or ' + + '"SEE LICENSE IN "' +); + +var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/; + +function startsWith(prefix, string) { + return string.slice(0, prefix.length) === prefix; +} + +function usesLicenseRef(ast) { + if (ast.hasOwnProperty('license')) { + var license = ast.license; + return ( + startsWith('LicenseRef', license) || + startsWith('DocumentRef', license) + ); + } else { + return ( + usesLicenseRef(ast.left) || + usesLicenseRef(ast.right) + ); + } +} + +module.exports = function(argument) { + var ast; + + try { + ast = parse(argument); + } catch (e) { + var match + if ( + argument === 'UNLICENSED' || + argument === 'UNLICENCED' + ) { + return { + validForOldPackages: true, + validForNewPackages: true, + unlicensed: true + }; + } else if (match = fileReferenceRE.exec(argument)) { + return { + validForOldPackages: true, + validForNewPackages: true, + inFile: match[1] + }; + } else { + var result = { + validForOldPackages: false, + validForNewPackages: false, + warnings: [genericWarning] + }; + var corrected = correct(argument); + if (corrected) { + result.warnings.push( + 'license is similar to the valid expression "' + corrected + '"' + ); + } + return result; + } + } + + if (usesLicenseRef(ast)) { + return { + validForNewPackages: false, + validForOldPackages: false, + spdx: true, + warnings: [genericWarning] + }; + } else { + return { + validForNewPackages: true, + validForOldPackages: true, + spdx: true + }; + } +}; diff --git a/node_modules/init-package-json/node_modules/validate-npm-package-license/package.json b/node_modules/init-package-json/node_modules/validate-npm-package-license/package.json new file mode 100644 index 000000000..30c34970c --- /dev/null +++ b/node_modules/init-package-json/node_modules/validate-npm-package-license/package.json @@ -0,0 +1,87 @@ +{ + "_args": [ + [ + "validate-npm-package-license@^3.0.1", + "/Users/ogd/Documents/projects/npm/npm/node_modules/init-package-json" + ] + ], + "_from": "validate-npm-package-license@>=3.0.1 <4.0.0", + "_id": "validate-npm-package-license@3.0.1", + "_inCache": true, + "_location": "/init-package-json/validate-npm-package-license", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "kyle@kemitchell.com", + "name": "kemitchell" + }, + "_npmVersion": "2.13.5", + "_phantomChildren": {}, + "_requested": { + "name": "validate-npm-package-license", + "raw": "validate-npm-package-license@^3.0.1", + "rawSpec": "^3.0.1", + "scope": null, + "spec": ">=3.0.1 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/init-package-json" + ], + "_resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "_shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", + "_shrinkwrap": null, + "_spec": "validate-npm-package-license@^3.0.1", + "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/init-package-json", + "author": { + "email": "kyle@kemitchell.com", + "name": "Kyle E. Mitchell", + "url": "https://kemitchell.com" + }, + "bugs": { + "url": "https://github.com/kemitchell/validate-npm-package-license.js/issues" + }, + "dependencies": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + }, + "description": "Give me a string and I'll tell you if it's a valid npm package license string", + "devDependencies": { + "defence-cli": "^1.0.1", + "replace-require-self": "^1.0.0" + }, + "directories": {}, + "dist": { + "shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", + "tarball": "http://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + }, + "gitHead": "00200d28f9960985f221bc1a8a71e4760daf39bf", + "homepage": "https://github.com/kemitchell/validate-npm-package-license.js#readme", + "installable": true, + "keywords": [ + "license", + "npm", + "package", + "validation" + ], + "license": "Apache-2.0", + "maintainers": [ + { + "name": "kemitchell", + "email": "kyle@kemitchell.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + } + ], + "name": "validate-npm-package-license", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/validate-npm-package-license.js.git" + }, + "scripts": { + "test": "defence README.md | replace-require-self | node" + }, + "version": "3.0.1" +} diff --git a/node_modules/init-package-json/package.json b/node_modules/init-package-json/package.json index db2f7957d..a3ee5eea9 100644 --- a/node_modules/init-package-json/package.json +++ b/node_modules/init-package-json/package.json @@ -1,36 +1,40 @@ { "_args": [ [ - "init-package-json@~1.8.0", - "/Users/rebecca/code/npm" + "init-package-json@~1.9.1", + "/Users/ogd/Documents/projects/npm/npm" ] ], - "_from": "init-package-json@>=1.8.0 <1.9.0", - "_id": "init-package-json@1.8.0", + "_from": "init-package-json@>=1.9.1 <1.10.0", + "_id": "init-package-json@1.9.1", "_inCache": true, "_location": "/init-package-json", - "_nodeVersion": "3.0.0", + "_nodeVersion": "2.2.2", "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.1", + "_phantomChildren": { + "spdx-correct": "1.0.0", + "spdx-expression-parse": "1.0.0" }, - "_npmVersion": "2.13.3", - "_phantomChildren": {}, "_requested": { "name": "init-package-json", - "raw": "init-package-json@~1.8.0", - "rawSpec": "~1.8.0", + "raw": "init-package-json@~1.9.1", + "rawSpec": "~1.9.1", "scope": null, - "spec": ">=1.8.0 <1.9.0", + "spec": ">=1.9.1 <1.10.0", "type": "range" }, "_requiredBy": [ "/" ], - "_shasum": "b868fcb698a993a00e70d8eb008b64e3c9bb3097", + "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.1.tgz", + "_shasum": "a28e05b5baeb3363cd473df68d30d3a80523a31c", "_shrinkwrap": null, - "_spec": "init-package-json@~1.8.0", - "_where": "/Users/rebecca/code/npm", + "_spec": "init-package-json@~1.9.1", + "_where": "/Users/ogd/Documents/projects/npm/npm", "author": { "email": "i@izs.me", "name": "Isaac Z. Schlueter", @@ -46,7 +50,7 @@ "read": "~1.0.1", "read-package-json": "1 || 2", "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^2.0.0", + "validate-npm-package-license": "^3.0.1", "validate-npm-package-name": "^2.0.1" }, "description": "A node module to get your node module started", @@ -57,10 +61,10 @@ }, "directories": {}, "dist": { - "shasum": "b868fcb698a993a00e70d8eb008b64e3c9bb3097", - "tarball": "http://registry.npmjs.org/init-package-json/-/init-package-json-1.8.0.tgz" + "shasum": "a28e05b5baeb3363cd473df68d30d3a80523a31c", + "tarball": "http://registry.npmjs.org/init-package-json/-/init-package-json-1.9.1.tgz" }, - "gitHead": "7f79195a15c74711928f50e301ae996e835cfec5", + "gitHead": "37c38b4e23189eb5645901fa6851f343fddd4b73", "homepage": "https://github.com/isaacs/init-package-json#readme", "installable": true, "keywords": [ @@ -78,7 +82,7 @@ "maintainers": [ { "name": "isaacs", - "email": "i@izs.me" + "email": "isaacs@npmjs.com" }, { "name": "othiym23", @@ -87,6 +91,10 @@ { "name": "iarna", "email": "me@re-becca.org" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" } ], "name": "init-package-json", @@ -98,5 +106,5 @@ "scripts": { "test": "tap test/*.js" }, - "version": "1.8.0" + "version": "1.9.1" } diff --git a/node_modules/init-package-json/test/silent.js b/node_modules/init-package-json/test/silent.js new file mode 100644 index 000000000..493702056 --- /dev/null +++ b/node_modules/init-package-json/test/silent.js @@ -0,0 +1,23 @@ +var tap = require('tap') +var init = require('../') +var rimraf = require('rimraf') + +var log = console.log +var logged = false +console.log = function () { + logged = true +} + +tap.test('silent: true', function (t) { + init(__dirname, __dirname, {yes: 'yes', silent: true}, function (er, data) { + if (er) throw er + + t.false(logged, 'did not print anything') + t.end() + }) +}) + +tap.test('teardown', function (t) { + console.log = log + rimraf(__dirname + '/package.json', t.end.bind(t)) +}) -- cgit v1.2.3