From 44e070aa22bd7fcaf53e9d0f0166bcf559168ec6 Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 11:59:24 -0500 Subject: [PATCH 1/8] Update node api docs --- docs/api.md | 162 ++++++++++++---------------------------------------- 1 file changed, 38 insertions(+), 124 deletions(-) diff --git a/docs/api.md b/docs/api.md index 07d93edf..e01666ea 100644 --- a/docs/api.md +++ b/docs/api.md @@ -3,137 +3,71 @@ id: api title: Node.js API --- -npm-package-json-lint exports two main objects: `CLIEngine` and `NpmPackageJsonLint`. +npm-package-json-lint exports one object, `NpmPackageJsonLint`. -## NpmPackageJsonLint() +## NpmPackageJsonLint(options) Creates an instance of NpmPackageJsonLint -`NpmPackageJsonLint` has one public method, `lint`. `lint` takes a package.json object in object form and a config object as parameters. +`NpmPackageJsonLint` has one public method, `lint`. `lint` takes a `NpmPackageJsonLintOptions` object. -### .lint(packageJsonData, configObj) - -Runs configured rules against the provided package.json object. - -#### packageJsonData +#### options Type: `Object` -A package.json file in object form. +A `NpmPackageJsonLint` options object. -#### configObj - -Type: `Object` - -A valid configuration object. +| Option | Type | Description | Default | +| --- | --- | --- | --- | +| `cwd` | {string} | The current working diretory for all file operations. | `process.cwd()` | +| `packageJsonObject` | {Object} | A package.json object. This must be provided or a `patterns` should be provided. | -- | +| `packageJsonFilePath` | {string} | If providing a package.json object, this option allows a file path to be assigned to it. | -- | +| `config` | {object} | Allows for a config object to be passed as an object via code instead of a file. | -- | +| `configFile` | {string} | Relative path to a configuration file. If provided, the config in the file will be used and npm-package-json-lint will not traverse the file system to find other config files. | -- | +| `patterns` | {string[]} | An array of glob patterns used to find package.json files. This must be provided or a `packageJsonObject` should be provided. | -- | +| `quiet` | {boolean} | A flag indicating whether to suppress warnings. | `false` | +| `ignorePath` | {string} | File path to an ignore file. | `` | #### Example -The following example demostrates how to use `lint`. +The following example demostrates how to instantiate `NpmPackageJsonLint`. ```js const {NpmPackageJsonLint} = require('npm-package-json-lint'); -const npmPackageJsonLint = new NpmPackageJsonLint(); -const results = npmPackageJsonLint.lint(packageJsonDataAsObject, configObject); +const npmPackageJsonLint = new NpmPackageJsonLint({ + cwd, + packageJsonObject, + packageJsonFilePath, + config, + configFile, + configBaseDirectory, + patterns, + quiet, + ignorePath +}); ``` -#### Return - -`lint` returns an object with an array of `LintIssue`s. Please see `LintIssue` section for more detail. +### .lint() -```js -{ - issues: [ - { - lintId: 'require-name', - severity: 'error', - node: 'name', - lintMessage: 'name is required' - } - ] -} -``` - -### .version - -Calling `.version` on an instance of `NpmPackageJsonLint` will return the version number of npm-package-json-lint that the linter is associated with. +Runs configured rules against the provided package.json object(s). #### Example -```js -const {NpmPackageJsonLint} = require('npm-package-json-lint'); - -const npmPackageJsonLint = new NpmPackageJsonLint(); - -npmPackageJsonLint.version; -// => '3.0.0' -``` - -## CLIEngine(options) - -Creates an instance of CLIEngine - -### options - -Type: `Object` - -CLIEngine configuration object - -* `configFile` {String} Name of module/file to use. -* `cwd` {String} The current working diretory for all file operations. -* `useConfigFiles` {Boolean} False disables use of .npmpackagejsonlintrc.json files and npmpackagejsonlint.config.js files. -* `rules` {Object} An object of rules to use. - -### Example - -The following example demostrates how to initialize a `CLIEngine`. +The following example demostrates how to use `lint`. ```js -const {CLIEngine} = require('npm-package-json-lint'); - -const cliEngineOptions = { - configFile: '', - cwd: process.cwd(), - useConfigFiles: true, - rules: {} -}; - -const cliEngine = new CLIEngine(cliEngineOptions); -``` - -### .executeOnPackageJsonFiles(patterns) - -Runs npm-package-json-lint against the array a patterns. - -#### patterns - -Type: `Array` - -An array of glob patterns - -#### Example - -The following example demostrates how to use `executeOnPackageJsonFiles`. +const {NpmPackageJsonLint} = require('npm-package-json-lint'); -```js -const {CLIEngine} = require('npm-package-json-lint'); - -const cliEngineOptions = { - configFile: '', - cwd: process.cwd(), - useConfigFiles: true, - rules: {} -}; -const patterns = ['.']; - -const cliEngine = new CLIEngine(cliEngineOptions); -const results = cliEngine.executeOnPackageJsonFiles(patterns); +const npmPackageJsonLint = new NpmPackageJsonLint({ + ... +}); +const results = npmPackageJsonLint.lint(); ``` #### Return -`executeOnPackageJsonFiles` returns an object with an array of results. +Returns an object with an array of results. ```js { @@ -149,36 +83,16 @@ const results = cliEngine.executeOnPackageJsonFiles(patterns); } ], errorCount: 1, + ignoreCount: 0, warningCount: 0 } ], errorCount: 1, + ignoreCount: 0, warningCount: 0 } ``` -### .version - -Calling `.version` on an instance of `CLIEngine` will return the version number of npm-package-json-lint that the CLIEngine is associated with. - -#### Example - -```js -const {CLIEngine} = require('npm-package-json-lint'); - -const cliEngineOptions = { - configFile: '', - cwd: process.cwd(), - useConfigFiles: true, - rules: {} -}; - -const cliEngine = new CLIEngine(cliEngineOptions); - -cliEngine.version; -// => '3.0.0' -``` - > **WARNING** Only the functions documented above are supported. All other functions that are exposed may change with any release. Please refrain from using them. From a6956f2c73b110d5095236083f904cbedc18634f Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 11:59:31 -0500 Subject: [PATCH 2/8] Update cli docs --- docs/cli.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/cli.md b/docs/cli.md index e58a2c57..1c671efd 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -80,3 +80,7 @@ $ npmPkgJsonLint . --ignorePath .gitignore ``` > Looks for all `package.json` files in the project and exclude ignored paths. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +## `--maxWarnings` (alias `-mw`) + +Max number of warnings that are allowed before an error is thrown. By default, npm-package-json-lint allows `10000000`. From 4d5e9211b6972742c5834bc7f4e261c847b40f65 Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 11:59:44 -0500 Subject: [PATCH 3/8] Add v4 migration guide --- docs/rules.md | 4 ++++ docs/v3-to-v4.md | 14 ++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 docs/v3-to-v4.md diff --git a/docs/rules.md b/docs/rules.md index e67d6620..79c8664f 100644 --- a/docs/rules.md +++ b/docs/rules.md @@ -5,6 +5,10 @@ title: Rules Rules allow npm-package-json-lint to be fully customizable. npm-package-json-lint will only run the rules supplied. As of v2.7.0, there are multiple ways to supply [configuration](configuration.md). One of the easiest way is via a [.npmpackagejsonlintrc.json](rcfile-example.md) file. The default configuration supplied in v1 is no longer provided in v2. Please see the new default config module, [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) instead. +> Migrating from v3.x.x to 4.x.x? + +Please see [migrating-from-v3-to-v4](v3-to-v4.md) + > Migrating from v2.x.x to 3.x.x? Please see [migrating-from-v2-to-v3](v2-to-v3.md) diff --git a/docs/v3-to-v4.md b/docs/v3-to-v4.md new file mode 100644 index 00000000..0f370ac6 --- /dev/null +++ b/docs/v3-to-v4.md @@ -0,0 +1,14 @@ +--- +id: v3-to-v4 +title: v3 to v4 Migration Guide +--- + +v4.0.0 Migration Guide + +> FYI: v4 drops support for Node 6 and 7. If you need support for versions of Node that have reached EOL, please use v3. + +## Node.js API + +There is a new [Node.js API](api.md) available. Please see the docs. + +Please see the [release notes](https://github.com/tclindner/npm-package-json-lint/releases/tag/v4.0.0) for additional changes introduced in v4.0.0. From f95bf7650dcdfab98b6466672df903ecb157e141 Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 12:00:13 -0500 Subject: [PATCH 4/8] Bump deps for module and website --- package.json | 4 +- website/i18n/en.json | 6 +- website/package-lock.json | 894 ++++++++++++++++++++------------------ website/package.json | 2 +- 4 files changed, 467 insertions(+), 439 deletions(-) diff --git a/package.json b/package.json index 0890c28f..f74ab396 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-package-json-lint", - "version": "4.0.0-beta.3", + "version": "4.0.0", "description": "Configurable linter for package.json files.", "keywords": [ "lint", @@ -50,7 +50,7 @@ "strip-json-comments": "^3.0.1" }, "devDependencies": { - "eslint": "^6.4.0", + "eslint": "^6.5.1", "eslint-config-tc": "^8.0.1", "eslint-formatter-pretty": "^2.1.1", "eslint-plugin-import": "^2.18.2", diff --git a/website/i18n/en.json b/website/i18n/en.json index cdbed226..4107a9ee 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -308,6 +308,9 @@ "v2-to-v3": { "title": "v2 to v3 Migration Guide" }, + "v3-to-v4": { + "title": "v3 to v4 Migration Guide" + }, "why": { "title": "Why npm-package-json-lint?" }, @@ -613,9 +616,6 @@ }, "version-3.7.0/version-3.7.0-v2-to-v3": { "title": "v2 to v3 Migration Guide" - }, - "version-3.7.0/version-3.7.0-why": { - "title": "Why npm-package-json-lint?" } }, "links": { diff --git a/website/package-lock.json b/website/package-lock.json index b1ceb81a..eae3d2c9 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -12,18 +12,18 @@ } }, "@babel/core": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", - "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", + "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.5.5", - "@babel/helpers": "^7.5.5", - "@babel/parser": "^7.5.5", - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.2", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", @@ -34,16 +34,15 @@ } }, "@babel/generator": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", - "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", + "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", "dev": true, "requires": { - "@babel/types": "^7.5.5", + "@babel/types": "^7.6.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { @@ -87,9 +86,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz", - "integrity": "sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz", + "integrity": "sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==", "dev": true, "requires": { "@babel/helper-function-name": "^7.1.0", @@ -263,14 +262,14 @@ } }, "@babel/helpers": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz", - "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", + "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", "dev": true, "requires": { - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5" + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0" } }, "@babel/highlight": { @@ -285,9 +284,9 @@ } }, "@babel/parser": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", - "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", + "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -332,9 +331,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz", - "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", + "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -352,14 +351,14 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", - "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", + "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.6.0" } }, "@babel/plugin-syntax-async-generators": { @@ -446,9 +445,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz", - "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz", + "integrity": "sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -481,23 +480,23 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz", - "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", + "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", - "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", + "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.6.0" } }, "@babel/plugin-transform-duplicate-keys": { @@ -568,9 +567,9 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz", - "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", + "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.4.4", @@ -601,12 +600,12 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", - "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz", + "integrity": "sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g==", "dev": true, "requires": { - "regexp-tree": "^0.1.6" + "regexpu-core": "^4.6.0" } }, "@babel/plugin-transform-new-target": { @@ -716,9 +715,9 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", + "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" @@ -754,20 +753,20 @@ } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", - "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", + "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.6.0" } }, "@babel/polyfill": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz", - "integrity": "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.6.0.tgz", + "integrity": "sha512-q5BZJI0n/B10VaQQvln1IlDK3BTBJFbADx7tv+oXDPIDZuTo37H5Adb9jhlXm/fEN4Y7/64qD9mnrJJG7rmaTw==", "dev": true, "requires": { "core-js": "^2.6.5", @@ -775,9 +774,9 @@ } }, "@babel/preset-env": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz", - "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.2.tgz", + "integrity": "sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", @@ -785,9 +784,9 @@ "@babel/plugin-proposal-async-generator-functions": "^7.2.0", "@babel/plugin-proposal-dynamic-import": "^7.5.0", "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", "@babel/plugin-syntax-async-generators": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-syntax-json-strings": "^7.2.0", @@ -796,11 +795,11 @@ "@babel/plugin-transform-arrow-functions": "^7.2.0", "@babel/plugin-transform-async-to-generator": "^7.5.0", "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.5.5", + "@babel/plugin-transform-block-scoping": "^7.6.2", "@babel/plugin-transform-classes": "^7.5.5", "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.5.0", - "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-destructuring": "^7.6.0", + "@babel/plugin-transform-dotall-regex": "^7.6.2", "@babel/plugin-transform-duplicate-keys": "^7.5.0", "@babel/plugin-transform-exponentiation-operator": "^7.2.0", "@babel/plugin-transform-for-of": "^7.4.4", @@ -808,10 +807,10 @@ "@babel/plugin-transform-literals": "^7.2.0", "@babel/plugin-transform-member-expression-literals": "^7.2.0", "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", "@babel/plugin-transform-modules-systemjs": "^7.5.0", "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.2", "@babel/plugin-transform-new-target": "^7.4.4", "@babel/plugin-transform-object-super": "^7.5.5", "@babel/plugin-transform-parameters": "^7.4.4", @@ -819,12 +818,12 @@ "@babel/plugin-transform-regenerator": "^7.4.5", "@babel/plugin-transform-reserved-words": "^7.2.0", "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-spread": "^7.6.2", "@babel/plugin-transform-sticky-regex": "^7.2.0", "@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.4.4", - "@babel/types": "^7.5.5", + "@babel/plugin-transform-unicode-regex": "^7.6.2", + "@babel/types": "^7.6.0", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", @@ -846,59 +845,50 @@ } }, "@babel/register": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.5.5.tgz", - "integrity": "sha512-pdd5nNR+g2qDkXZlW1yRCWFlNrAn2PPdnZUB72zjX4l1Vv4fMRRLwyf+n/idFCLI1UgVGboUU8oVziwTBiyNKQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.6.2.tgz", + "integrity": "sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ==", "dev": true, "requires": { - "core-js": "^3.0.0", "find-cache-dir": "^2.0.0", "lodash": "^4.17.13", "mkdirp": "^0.5.1", "pirates": "^4.0.0", "source-map-support": "^0.5.9" - }, - "dependencies": { - "core-js": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", - "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==", - "dev": true - } } }, "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" } }, "@babel/traverse": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", - "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", + "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.5.5", + "@babel/generator": "^7.6.2", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.5.5", - "@babel/types": "^7.5.5", + "@babel/parser": "^7.6.2", + "@babel/types": "^7.6.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", - "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -929,18 +919,18 @@ "dev": true }, "@types/cheerio": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.12.tgz", - "integrity": "sha512-aczowyAJNfrkBV+HS8DyAA87OnvkqGrrOmm5s7V6Jbgimzv/1ZoAy91cLJX8GQrUS60KufD7EIzA2LbK8HV4hg==", + "version": "0.22.13", + "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.13.tgz", + "integrity": "sha512-OZd7dCUOUkiTorf97vJKwZnSja/DmHfuBAroe1kREZZTCf/tlFecwHhsOos3uVHxeKGZDwzolIrCUApClkdLuA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/node": { - "version": "12.6.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.8.tgz", - "integrity": "sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg==", + "version": "12.7.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.11.tgz", + "integrity": "sha512-Otxmr2rrZLKRYIybtdG/sgeO+tHY20GxeDjcGmUnmmlCWyEnv2a2x1ZXBo3BTec4OiTXMQCiazB8NMBf0iRlFw==", "dev": true }, "@types/q": { @@ -960,9 +950,9 @@ } }, "address": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, "ajv": { @@ -1020,9 +1010,9 @@ "dev": true }, "anymatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz", - "integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -1079,12 +1069,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -1097,18 +1081,6 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -1182,24 +1154,27 @@ "dev": true }, "autolinker": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.15.3.tgz", - "integrity": "sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI=", - "dev": true + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", + "integrity": "sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=", + "dev": true, + "requires": { + "gulp-header": "^1.7.1" + } }, "autoprefixer": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", - "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.4.tgz", + "integrity": "sha512-Koz2cJU9dKOxG8P1f8uVaBntOv9lP4yz9ffWvWaicv9gHBPhpQB22nGijwd8gqW9CNT+UdkbQOQNLVI8jN1ZfQ==", "dev": true, "requires": { - "browserslist": "^4.6.3", - "caniuse-lite": "^1.0.30000980", + "browserslist": "^4.7.0", + "caniuse-lite": "^1.0.30000998", "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.17", - "postcss-value-parser": "^4.0.0" + "postcss": "^7.0.18", + "postcss-value-parser": "^4.0.2" } }, "aws-sign2": { @@ -1341,9 +1316,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "bcrypt-pbkdf": { @@ -1689,20 +1664,20 @@ } }, "browserslist": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", - "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000984", - "electron-to-chromium": "^1.3.191", - "node-releases": "^1.1.25" + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" } }, "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -1874,9 +1849,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000986", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000986.tgz", - "integrity": "sha512-pM+LnkoAX0+QnIH3tpW5EnkmfpEoqOD8FAcoBvsl3Xh6DXkgctiCxeCbXphP/k3XJtJzm+zOAJbi6U6IVkpWZQ==", + "version": "1.0.30000999", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz", + "integrity": "sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg==", "dev": true }, "caseless": { @@ -1958,6 +1933,16 @@ "nth-check": "~1.0.1" } }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", @@ -1967,23 +1952,29 @@ "dom-serializer": "0", "domelementtype": "1" } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true } } }, "chokidar": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz", - "integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.2.1.tgz", + "integrity": "sha512-/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w==", "dev": true, "requires": { - "anymatch": "^3.0.1", - "braces": "^3.0.2", - "fsevents": "^2.0.6", - "glob-parent": "^5.0.0", - "is-binary-path": "^2.1.0", - "is-glob": "^4.0.1", - "normalize-path": "^3.0.0", - "readdirp": "^3.1.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.0", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.1.3" } }, "class-utils": { @@ -2123,9 +2114,9 @@ } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", + "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", "dev": true }, "commondir": { @@ -2158,6 +2149,23 @@ "typedarray": "^0.0.6" } }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "config-chain": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", @@ -2229,14 +2237,13 @@ "dev": true }, "core-js-compat": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.1.4.tgz", - "integrity": "sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz", + "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==", "dev": true, "requires": { - "browserslist": "^4.6.2", - "core-js-pure": "3.1.4", - "semver": "^6.1.1" + "browserslist": "^4.6.6", + "semver": "^6.3.0" }, "dependencies": { "semver": { @@ -2247,12 +2254,6 @@ } } }, - "core-js-pure": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.1.4.tgz", - "integrity": "sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA==", - "dev": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -2770,9 +2771,9 @@ } }, "docusaurus": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/docusaurus/-/docusaurus-1.12.0.tgz", - "integrity": "sha512-C8HUDctWn72JOxqwnP6/+fUUQFADIjNw9Tvgw9CBlXLVN6CUhuTrk3YShM5EjZILjIrcmReoHcy6lCDkCa2X8Q==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/docusaurus/-/docusaurus-1.13.0.tgz", + "integrity": "sha512-3L/0p7CVM4jzAKoUzDDO4IFvLAJ6aA/8zin00tvLk32VQSdw+6S8JggE2ZFKOg+c+oxQ5MQUnsUxL/n5HyBtVg==", "dev": true, "requires": { "@babel/core": "^7.5.5", @@ -2784,7 +2785,7 @@ "@babel/register": "^7.5.5", "@babel/traverse": "^7.5.5", "@babel/types": "^7.5.5", - "autoprefixer": "^9.6.0", + "autoprefixer": "^9.6.1", "babylon": "^6.18.0", "chalk": "^2.4.2", "chokidar": "^3.0.2", @@ -2793,7 +2794,7 @@ "commander": "^2.20.0", "cross-spawn": "^6.0.5", "crowdin-cli": "^0.3.0", - "cssnano": "^4.1.0", + "cssnano": "^4.1.10", "escape-string-regexp": "^2.0.0", "express": "^4.17.1", "feed": "^1.1.0", @@ -2806,33 +2807,42 @@ "imagemin-jpegtran": "^6.0.0", "imagemin-optipng": "^6.0.0", "imagemin-svgo": "^7.0.0", - "lodash": "^4.17.14", + "lodash": "^4.17.15", "markdown-toc": "^1.2.0", "mkdirp": "^0.5.1", "portfinder": "^1.0.21", "postcss": "^7.0.17", - "prismjs": "^1.16.0", + "prismjs": "^1.17.1", "react": "^16.8.4", "react-dev-utils": "^9.0.1", "react-dom": "^16.8.4", - "remarkable": "^1.7.1", + "remarkable": "^1.7.4", "request": "^2.88.0", "shelljs": "^0.8.3", "sitemap": "^3.2.2", + "striptags": "^3.1.1", "tcp-port-used": "^1.0.1", "tiny-lr": "^1.1.1", "tree-node-cli": "^1.2.5", - "truncate-html": "^1.0.1" + "truncate-html": "^1.0.2" } }, "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", + "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + } } }, "domelementtype": { @@ -2940,9 +2950,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.201", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.201.tgz", - "integrity": "sha512-aCTPIfY1Jvuam5b6vuWRjt1F8i4kY7zX0Qtpu5SNd6l1zjuxU9fDNpbM4o6+oJsra+TMD2o7D20GnkSIgpTr9w==", + "version": "1.3.275", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.275.tgz", + "integrity": "sha512-/YWtW/VapMnuYA1lNOaa1F4GhR1LBf+CUTp60lzDPEEh0XOzyOAyULyYZVF9vziZ3qSbTqCwmKwsyRXp66STbw==", "dev": true }, "emojis-list": { @@ -2958,28 +2968,27 @@ "dev": true }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", "dev": true }, "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.0.tgz", + "integrity": "sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg==", "dev": true, "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" + "string-template": "~0.2.1" } }, "error-ex": { @@ -3000,17 +3009,21 @@ } }, "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz", + "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==", "dev": true, "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", "has": "^1.0.3", + "has-symbols": "^1.0.0", "is-callable": "^1.1.4", "is-regex": "^1.0.4", - "object-keys": "^1.0.12" + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" } }, "es-to-primitive": { @@ -3043,9 +3056,9 @@ "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "etag": { @@ -3634,9 +3647,9 @@ "dev": true }, "fork-ts-checker-webpack-plugin": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.1.1.tgz", - "integrity": "sha512-gqWAEMLlae/oeVnN6RWCAhesOJMswAN1MaKNqhhjXHV5O0/rTUjWI4UbgQHdlrVbCnb+xLotXmJbBlC66QmpFw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", "dev": true, "requires": { "babel-code-frame": "^6.22.0", @@ -3695,9 +3708,9 @@ } }, "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -4401,9 +4414,9 @@ "dev": true }, "fsevents": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", - "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.0.tgz", + "integrity": "sha512-+iXhW3LuDQsno8dOIrCIT/CBjeBWuP7PXe8w9shnj9Lebny/Gx1ZjVBYwexLz36Ri2jKuXMNpV6CYNh8lHHgrQ==", "dev": true, "optional": true }, @@ -4511,9 +4524,9 @@ } }, "glob-parent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", - "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -4618,9 +4631,9 @@ } }, "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", "dev": true }, "graceful-readlink": { @@ -4653,22 +4666,25 @@ } } }, + "gulp-header": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", + "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", + "dev": true, + "requires": { + "concat-with-sourcemaps": "*", + "lodash.template": "^4.4.0", + "through2": "^2.0.0" + } + }, "gzip-size": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz", - "integrity": "sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", "dev": true, "requires": { "duplexer": "^0.1.1", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "pify": "^4.0.1" } }, "har-schema": { @@ -4791,15 +4807,15 @@ "dev": true }, "highlight.js": { - "version": "9.15.8", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.8.tgz", - "integrity": "sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==", + "version": "9.15.10", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", + "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==", "dev": true }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", "dev": true }, "hsl-regex": { @@ -4834,6 +4850,12 @@ "readable-stream": "^3.1.1" }, "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "readable-stream": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", @@ -5048,9 +5070,9 @@ "dev": true }, "inquirer": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", - "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", @@ -5059,12 +5081,12 @@ "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { @@ -5373,15 +5395,15 @@ "dev": true }, "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "dev": true }, "is-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.0.0.tgz", - "integrity": "sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", "dev": true }, "is-stream": { @@ -5565,9 +5587,9 @@ "dev": true }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -5582,12 +5604,6 @@ "graceful-fs": "^4.1.6" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -5739,6 +5755,12 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, "lodash.assignin": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", @@ -5835,6 +5857,25 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -6004,9 +6045,9 @@ "dev": true }, "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", "dev": true }, "methods": { @@ -6269,12 +6310,20 @@ "dev": true }, "node-releases": { - "version": "1.1.26", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.26.tgz", - "integrity": "sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ==", + "version": "1.1.34", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.34.tgz", + "integrity": "sha512-fNn12JTEfniTuCqo0r9jXgl44+KxRH/huV7zM/KAGOKxDKrHr6EbT7SSs4B+DNxyBE2mks28AD+Jw6PkfY5uwA==", "dev": true, "requires": { - "semver": "^5.3.0" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "normalize-package-data": { @@ -6398,6 +6447,12 @@ } } }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -6483,10 +6538,10 @@ "mimic-fn": "^1.0.0" } }, - "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -6555,9 +6610,9 @@ "dev": true }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6795,9 +6850,9 @@ } }, "portfinder": { - "version": "1.0.21", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.21.tgz", - "integrity": "sha512-ESabpDCzmBS3ekHbmpAIiESq3udRsCBGiBZLsC+HgBKv2ezb0R4oG+7RnYEVZ/ZCfhel5Tx3UzdNWA0Lox2QCA==", + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz", + "integrity": "sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg==", "dev": true, "requires": { "async": "^1.5.2", @@ -6829,9 +6884,9 @@ "dev": true }, "postcss": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", - "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", + "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -7350,9 +7405,9 @@ } }, "postcss-value-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz", - "integrity": "sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", "dev": true }, "prepend-http": { @@ -7416,9 +7471,9 @@ "dev": true }, "psl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", - "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", "dev": true }, "pump": { @@ -7504,76 +7559,55 @@ } }, "react": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", - "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.10.2.tgz", + "integrity": "sha512-MFVIq0DpIhrHFyqLU0S3+4dIcBhhOvBE8bJ/5kHPVOVaGdo0KuiQzpcjCPsf585WvhypqtrMILyoE2th6dT+Lw==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" + "prop-types": "^15.6.2" } }, "react-dev-utils": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.0.1.tgz", - "integrity": "sha512-pnaeMo/Pxel8aZpxk1WwxT3uXxM3tEwYvsjCYn5R7gNxjhN1auowdcLDzFB8kr7rafAj2rxmvfic/fbac5CzwQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", + "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "address": "1.0.3", - "browserslist": "4.5.4", + "@babel/code-frame": "7.5.5", + "address": "1.1.2", + "browserslist": "4.7.0", "chalk": "2.4.2", "cross-spawn": "6.0.5", "detect-port-alt": "1.1.6", "escape-string-regexp": "1.0.5", "filesize": "3.6.1", "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.1.1", + "fork-ts-checker-webpack-plugin": "1.5.0", "global-modules": "2.0.0", "globby": "8.0.2", - "gzip-size": "5.0.0", + "gzip-size": "5.1.1", "immer": "1.10.0", - "inquirer": "6.2.2", - "is-root": "2.0.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", "loader-utils": "1.2.3", - "opn": "5.4.0", + "open": "^6.3.0", "pkg-up": "2.0.0", - "react-error-overlay": "^5.1.6", + "react-error-overlay": "^6.0.3", "recursive-readdir": "2.2.2", - "shell-quote": "1.6.1", - "sockjs-client": "1.3.0", + "shell-quote": "1.7.2", + "sockjs-client": "1.4.0", "strip-ansi": "5.2.0", "text-table": "0.2.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "browserslist": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz", - "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000955", - "electron-to-chromium": "^1.3.122", - "node-releases": "^1.1.13" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -7592,27 +7626,27 @@ } }, "react-dom": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", - "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.10.2.tgz", + "integrity": "sha512-kWGDcH3ItJK4+6Pl9DZB16BXYAZyrYQItU4OMy0jAkv5aNqc+mAKb4TpFtAteI6TJZu+9ZlNhaeNQSVQDHJzkw==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.6" + "scheduler": "^0.16.2" } }, "react-error-overlay": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz", - "integrity": "sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.3.tgz", + "integrity": "sha512-bOUvMWFQVk5oz8Ded9Xb7WVdEi3QGLC8tH7HmYP0Fdp4Bn3qw0tRFmr5TW6mvahzvmrK4a6bqWGfCevBflP+Xw==", "dev": true }, "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", + "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==", "dev": true }, "read-pkg": { @@ -7692,9 +7726,9 @@ } }, "readdirp": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.1.tgz", - "integrity": "sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.3.tgz", + "integrity": "sha512-ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q==", "dev": true, "requires": { "picomatch": "^2.0.4" @@ -7768,20 +7802,14 @@ "safe-regex": "^1.1.0" } }, - "regexp-tree": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz", - "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==", - "dev": true - }, "regexpu-core": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", - "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.0.2", + "regenerate-unicode-properties": "^8.1.0", "regjsgen": "^0.5.0", "regjsparser": "^0.6.0", "unicode-match-property-ecmascript": "^1.0.4", @@ -7812,25 +7840,13 @@ } }, "remarkable": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", - "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", + "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==", "dev": true, "requires": { - "argparse": "~0.1.15", - "autolinker": "~0.15.0" - }, - "dependencies": { - "argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", - "dev": true, - "requires": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" - } - } + "argparse": "^1.0.10", + "autolinker": "~0.28.0" } }, "remove-trailing-separator": { @@ -7901,9 +7917,9 @@ "dev": true }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -7959,9 +7975,9 @@ "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -7977,9 +7993,9 @@ } }, "rxjs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", - "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -8019,9 +8035,9 @@ "dev": true }, "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-BqYVWqwz6s1wZMhjFvLfVR5WXP7ZY32M/wYPo04CcuPM7XZEbV2TBNW7Z0UkguPTl0dWMA59VbNXxK6q+pHItg==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -8056,9 +8072,9 @@ "optional": true }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "semver-regex": { @@ -8188,16 +8204,10 @@ "dev": true }, "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true }, "shelljs": { "version": "0.8.3", @@ -8366,9 +8376,9 @@ } }, "sockjs-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", - "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { "debug": "^3.2.5", @@ -8428,9 +8438,9 @@ } }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -8631,6 +8641,26 @@ } } }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8705,6 +8735,12 @@ } } }, + "striptags": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.1.1.tgz", + "integrity": "sha1-yMPn/db7S7OjKjt1LltePjgJPr0=", + "dev": true + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -8829,6 +8865,16 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -9015,16 +9061,10 @@ } } }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, "truncate-html": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.2.tgz", - "integrity": "sha512-QtzllbVLKLvRyB7deBizCrZP6jdwWVU9Ix/Gag+WySQrySiu+1MUe3s0R/Z0IgfGHwQqkh0RVUgp9MRiP9YVJw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz", + "integrity": "sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ==", "dev": true, "requires": { "@types/cheerio": "^0.22.8", @@ -9078,18 +9118,6 @@ "through": "^2.3.8" } }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", - "dev": true - }, - "underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", - "dev": true - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -9201,9 +9229,9 @@ } }, "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, "uri-js": { @@ -9275,9 +9303,9 @@ "dev": true }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", "dev": true }, "validate-npm-package-license": { diff --git a/website/package.json b/website/package.json index c83e7fc6..09ef87f2 100644 --- a/website/package.json +++ b/website/package.json @@ -9,6 +9,6 @@ "rename-version": "docusaurus-rename-version" }, "devDependencies": { - "docusaurus": "^1.12.0" + "docusaurus": "^1.13.0" } } From 93e539355e10509a01303af2bb280737d77aca63 Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 12:01:40 -0500 Subject: [PATCH 5/8] Add v4 docs --- website/versioned_docs/version-4.0.0/api.md | 99 +++++++++ website/versioned_docs/version-4.0.0/cli.md | 87 ++++++++ website/versioned_docs/version-4.0.0/rules.md | 210 ++++++++++++++++++ .../prefer-no-devDependencies.md | 39 ++++ .../prefer-no-engineStrict.md | 39 ++++ .../rules/required-node/require-license.md | 40 ++++ .../versioned_docs/version-4.0.0/v3-to-v4.md | 15 ++ website/versions.json | 1 + 8 files changed, 530 insertions(+) create mode 100644 website/versioned_docs/version-4.0.0/api.md create mode 100644 website/versioned_docs/version-4.0.0/cli.md create mode 100644 website/versioned_docs/version-4.0.0/rules.md create mode 100644 website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md create mode 100644 website/versioned_docs/version-4.0.0/rules/required-node/require-license.md create mode 100644 website/versioned_docs/version-4.0.0/v3-to-v4.md diff --git a/website/versioned_docs/version-4.0.0/api.md b/website/versioned_docs/version-4.0.0/api.md new file mode 100644 index 00000000..b36d15be --- /dev/null +++ b/website/versioned_docs/version-4.0.0/api.md @@ -0,0 +1,99 @@ +--- +id: version-4.0.0-api +title: Node.js API +original_id: api +--- + +npm-package-json-lint exports one object, `NpmPackageJsonLint`. + +## NpmPackageJsonLint(options) + +Creates an instance of NpmPackageJsonLint + +`NpmPackageJsonLint` has one public method, `lint`. `lint` takes a `NpmPackageJsonLintOptions` object. + +#### options + +Type: `Object` + +A `NpmPackageJsonLint` options object. + +| Option | Type | Description | Default | +| --- | --- | --- | --- | +| `cwd` | {string} | The current working diretory for all file operations. | `process.cwd()` | +| `packageJsonObject` | {Object} | A package.json object. This must be provided or a `patterns` should be provided. | -- | +| `packageJsonFilePath` | {string} | If providing a package.json object, this option allows a file path to be assigned to it. | -- | +| `config` | {object} | Allows for a config object to be passed as an object via code instead of a file. | -- | +| `configFile` | {string} | Relative path to a configuration file. If provided, the config in the file will be used and npm-package-json-lint will not traverse the file system to find other config files. | -- | +| `patterns` | {string[]} | An array of glob patterns used to find package.json files. This must be provided or a `packageJsonObject` should be provided. | -- | +| `quiet` | {boolean} | A flag indicating whether to suppress warnings. | `false` | +| `ignorePath` | {string} | File path to an ignore file. | `` | + +#### Example + +The following example demostrates how to instantiate `NpmPackageJsonLint`. + +```js +const {NpmPackageJsonLint} = require('npm-package-json-lint'); + +const npmPackageJsonLint = new NpmPackageJsonLint({ + cwd, + packageJsonObject, + packageJsonFilePath, + config, + configFile, + configBaseDirectory, + patterns, + quiet, + ignorePath +}); +``` + +### .lint() + +Runs configured rules against the provided package.json object(s). + +#### Example + +The following example demostrates how to use `lint`. + +```js +const {NpmPackageJsonLint} = require('npm-package-json-lint'); + +const npmPackageJsonLint = new NpmPackageJsonLint({ + ... +}); +const results = npmPackageJsonLint.lint(); +``` + +#### Return + +Returns an object with an array of results. + +```js +{ + results: [ + { + filePath: './package.json', + issues: [ + { + lintId: 'require-name', + severity: 'error', + node: 'name', + lintMessage: 'name is required' + } + ], + errorCount: 1, + ignoreCount: 0, + warningCount: 0 + } + ], + errorCount: 1, + ignoreCount: 0, + warningCount: 0 +} +``` + +> **WARNING** + +Only the functions documented above are supported. All other functions that are exposed may change with any release. Please refrain from using them. diff --git a/website/versioned_docs/version-4.0.0/cli.md b/website/versioned_docs/version-4.0.0/cli.md new file mode 100644 index 00000000..bc5f29cf --- /dev/null +++ b/website/versioned_docs/version-4.0.0/cli.md @@ -0,0 +1,87 @@ +--- +id: version-4.0.0-cli +title: CLI +original_id: cli +--- + +Run npm-package-json-lint through the CLI with this script. + +```bash +npmPkgJsonLint [opts] [fileGlobPatterns ...] +``` + +npm-package-json-lint ignores files located in `node_modules` directory. + +### Examples + +```bash +$ npmPkgJsonLint . +``` + +> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +```bash +$ npmPkgJsonLint ./packages +``` + +> Looks for all `package.json` files in the `packages` directory. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +```bash +$ npmPkgJsonLint ./package1 ./package2 +``` + +> Looks for all `package.json` files in the `package1` and `package2` directories. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +## `--configFile ` (alias `-c`) + +File path to local config file or module name. Please see [configuration](configuration.md) for more details. + +### Examples + +```bash +$ npmPkgJsonLint -c ./config/.npmpackagejsonlintrc.json . +``` + +> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. The CLI also merges the config found in `./config/.npmpackagejsonlintrc.json` + +```bash +$ npmPkgJsonLint --configFile ./config/npmpackagejsonlint.config.json . +``` + +## `--quiet` (alias `-q`) + +Report errors only. + +### Examples + +```bash +$ npmPkgJsonLint -q . +``` + +> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. Removes any warnings from the output. + +```bash +$ npmPkgJsonLint --quiet ./packages +``` + +> Looks for all `package.json` files in the `packages` directory. The CLI engine automatically looks for relevant config files for each package.json file that is found. Removes any warnings from the output using the long form for quieting output. + +## `--noConfigFiles` (alias `-ncf`) + +Skips loading project config files (i.e. .npmpackagejsonlintrc.json and npmpackagejsonlint.config.js). + +## `--ignorePath` (alias `-i`) + +Path to a file containing patterns that describe files to ignore. By default, npm-package-json-lint looks for `./.npmpackagejsonlintignore`. + +### Examples + +```bash +$ npmPkgJsonLint . --ignorePath .gitignore +``` + +> Looks for all `package.json` files in the project and exclude ignored paths. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +## `--maxWarnings` (alias `-mw`) + +Max number of warnings that are allowed before an error is thrown. By default, npm-package-json-lint allows `10000000`. diff --git a/website/versioned_docs/version-4.0.0/rules.md b/website/versioned_docs/version-4.0.0/rules.md new file mode 100644 index 00000000..d1559b4b --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules.md @@ -0,0 +1,210 @@ +--- +id: version-4.0.0-rules +title: Rules +original_id: rules +--- + +Rules allow npm-package-json-lint to be fully customizable. npm-package-json-lint will only run the rules supplied. As of v2.7.0, there are multiple ways to supply [configuration](configuration.md). One of the easiest way is via a [.npmpackagejsonlintrc.json](rcfile-example.md) file. The default configuration supplied in v1 is no longer provided in v2. Please see the new default config module, [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) instead. + +> Migrating from v3.x.x to 4.x.x? + +Please see [migrating-from-v3-to-v4](v3-to-v4.md) + +> Migrating from v2.x.x to 3.x.x? + +Please see [migrating-from-v2-to-v3](v2-to-v3.md) + +> Migrating from v1.x.x to 2.x.x? + +Please see [migrating-from-v1-to-v2](v1-to-v2.md) + +> Migrating from v0.x.x to 1.x.x? + +Please see [migrating-from-v0-to-v1](v0-to-v1.md) + +### Configuring rules +npm-package-json-lint rules can either be run as an `error`, `warning`, or `off`. + +* "warning" - run the rule as a warning +* "error" - run the rule as an error +* "off" - disables the rule + +Ex: `"require-author": "error"` + +### .npmpackagejsonlintrc.json file + +Please see [.npmpackagejsonlintrc.json](rcfile-example.md) file. + +### Shareable config +v2 added support for shareable npm-package-json-lint config! If you would like to use your .npmpackagejsonlintrc.json file in multiple projects you can create a npm module that exports your config. + +#### How to create shared config +Create a new npm module that exports the desired npm-package-json-lint configuration. The module name must start with `npm-package-json-lint-config-`. Add the desired configuration to the index.js file. + +``` +const config = { + 'rules': { + 'require-name': 'error' + } +}; + +module.exports = config; +``` + +For a complete example, please see [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) + +#### How to publish a shared config module +Follow these instructions for [publishing to npm](https://docs.npmjs.com/getting-started/publishing-npm-packages). Please add the following keywords for discoverability, `npm-package-json-lint`, `npm-package-json-lintconfig`, and `npm-package-json-lint-config`. + +Please also add a dependency on npm-package-json-lint using [peerdependencies](https://docs.npmjs.com/files/package.json#peerdependencies). Example + +``` +peerDependencies: { + "npm-package-json-lint": ">= 2" +} +``` + +#### How to use a shared config module +Add the following to your `.npmpackagejsonlintrc.json` file. + +``` +{ + "extends": "npm-package-json-lint-config-default" +} +``` + +`npm-package-json-lint-config-default` can be replaced by the name of the shared module you are using. + +## Require node rules + +> Generates an error if node is missing from package.json file + +* [require-author](rules/required-node/require-author.md) +* [require-bin](rules/required-node/require-bin.md) +* [require-bugs](rules/required-node/require-bugs.md) +* [require-bundledDependencies](rules/required-node/require-bundledDependencies.md) +* [require-config](rules/required-node/require-config.md) +* [require-contributors](rules/required-node/require-contributors.md) +* [require-cpu](rules/required-node/require-cpu.md) +* [require-dependencies](rules/required-node/require-dependencies.md) +* [require-description](rules/required-node/require-description.md) +* [require-devDependencies](rules/required-node/require-devDependencies.md) +* [require-directories](rules/required-node/require-directories.md) +* [require-engines](rules/required-node/require-engines.md) +* [require-files](rules/required-node/require-files.md) +* [require-homepage](rules/required-node/require-homepage.md) +* [require-keywords](rules/required-node/require-keywords.md) +* [require-license](rules/required-node/require-license.md) +* [require-main](rules/required-node/require-main.md) +* [require-man](rules/required-node/require-man.md) +* [require-module](rules/required-node/require-module.md) +* [require-name](rules/required-node/require-name.md) +* [require-optionalDependencies](rules/required-node/require-optionalDependencies.md) +* [require-os](rules/required-node/require-os.md) +* [require-peerDependencies](rules/required-node/require-peerDependencies.md) +* [require-preferGlobal](rules/required-node/require-preferGlobal.md) +* [require-private](rules/required-node/require-private.md) +* [require-publishConfig](rules/required-node/require-publishConfig.md) +* [require-repository-directory](rules/required-node/require-repository-directory.md) +* [require-repository](rules/required-node/require-repository.md) +* [require-scripts](rules/required-node/require-scripts.md) +* [require-types](rules/required-node/require-types.md) +* [require-typings](rules/required-node/require-typings.md) +* [require-version](rules/required-node/require-version.md) + +## Type rules + +> Generates an error if node's value doesn't have the correct data type + +* [bin-type](rules/type/bin-type.md) +* [bundledDependencies-type](rules/type/bundledDependencies-type.md) +* [config-type](rules/type/config-type.md) +* [cpu-type](rules/type/cpu-type.md) +* [dependencies-type](rules/type/dependencies-type.md) +* [description-type](rules/type/description-type.md) +* [devDependencies-type](rules/type/devDependencies-type.md) +* [directories-type](rules/type/directories-type.md) +* [engines-type](rules/type/engines-type.md) +* [files-type](rules/type/files-type.md) +* [homepage-type](rules/type/homepage-type.md) +* [keywords-type](rules/type/keywords-type.md) +* [license-type](rules/type/license-type.md) +* [main-type](rules/type/main-type.md) +* [man-type](rules/type/man-type.md) +* [name-type](rules/type/name-type.md) +* [optionalDependencies-type](rules/type/optionalDependencies-type.md) +* [os-type](rules/type/os-type.md) +* [peerDependencies-type](rules/type/peerDependencies-type.md) +* [preferGlobal-type](rules/type/preferGlobal-type.md) +* [private-type](rules/type/private-type.md) +* [repository-type](rules/type/repository-type.md) +* [scripts-type](rules/type/scripts-type.md) +* [version-type](rules/type/version-type.md) + + +## Valid value rules + +> Generates an error if node's value doesn't match one of the values in the supplied array + +* [valid-values-author](rules/valid-values/valid-values-author.md) +* [valid-values-engines](rules/valid-values/valid-values-engines.md) +* [valid-values-license](rules/valid-values/valid-values-license.md) +* [valid-values-name-scope](rules/valid-values/valid-values-name-scope.md) +* [valid-values-private](rules/valid-values/valid-values-private.md) +* [valid-values-publishConfig](rules/valid-values/valid-values-publishConfig.md) + +## Dependency rules + +> Generates an error if dependencies fail to meet the rules requirements + +* dependencies + * [no-absolute-version-dependencies](rules/dependencies/no-absolute-version-dependencies.md) + * [no-caret-version-dependencies](rules/dependencies/no-caret-version-dependencies.md) + * [no-restricted-dependencies](rules/dependencies/no-restricted-dependencies.md) + * [no-restricted-pre-release-dependencies](rules/dependencies/no-restricted-pre-release-dependencies.md) + * [no-tilde-version-dependencies](rules/dependencies/no-tilde-version-dependencies.md) + * [prefer-absolute-version-dependencies](rules/dependencies/prefer-absolute-version-dependencies.md) + * [prefer-alphabetical-dependencies](rules/dependencies/prefer-alphabetical-dependencies.md) + * [prefer-caret-version-dependencies](rules/dependencies/prefer-caret-version-dependencies.md) + * [prefer-tilde-version-dependencies](rules/dependencies/prefer-tilde-version-dependencies.md) +* devDependencies + * [no-absolute-version-devDependencies](rules/dependencies/no-absolute-version-devDependencies.md) + * [no-caret-version-devDependencies](rules/dependencies/no-caret-version-devDependencies.md) + * [no-restricted-devDependencies](rules/dependencies/no-restricted-devDependencies.md) + * [no-restricted-pre-release-devDependencies](rules/dependencies/no-restricted-pre-release-devDependencies.md) + * [no-tilde-version-devDependencies](rules/dependencies/no-tilde-version-devDependencies.md) + * [prefer-no-version-zero-devDependencies](rules/dependencies/prefer-no-version-zero-devDependencies.md) + * [prefer-absolute-version-devDependencies](rules/dependencies/prefer-absolute-version-devDependencies.md) + * [prefer-alphabetical-devDependencies](rules/dependencies/prefer-alphabetical-devDependencies.md) + * [prefer-caret-version-devDependencies](rules/dependencies/prefer-caret-version-devDependencies.md) + * [prefer-no-version-zero-devDependencies](rules/dependencies/prefer-no-version-zero-devDependencies.md) + * [prefer-tilde-version-devDependencies](rules/dependencies/prefer-tilde-version-devDependencies.md) +* bundledDependencies + * [prefer-alphabetical-bundledDependencies](rules/dependencies/prefer-alphabetical-bundledDependencies.md) +* optionalDependencies + * [prefer-alphabetical-optionalDependencies](rules/dependencies/prefer-alphabetical-optionalDependencies.md) +* peerDependencies + * [prefer-alphabetical-peerDependencies](rules/dependencies/prefer-alphabetical-peerDependencies.md) + +## Format rules + +> Generates an error if node's value fails to meet the format requirements + +* [description-format](rules/format/description-format.md) +* [name-format](rules/format/name-format.md) +* [version-format](rules/format/version-format.md) + + +## Package.json property rules + +> Generates an error if the package.json properties fail to meet the desired requirements + +* [prefer-property-order](rules/package-json-properties/prefer-property-order.md) + + +## Disallowed node rules + +> Generates an error if the node is present + +* [prefer-no-engineStrict](rules/disallowed-nodes/prefer-no-engineStrict) +* [prefer-no-devDependencies](rules/disallowed-nodes/prefer-no-devDependencies) diff --git a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md new file mode 100644 index 00000000..003a271d --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md @@ -0,0 +1,39 @@ +--- +id: version-4.0.0-prefer-no-devDependencies +title: prefer-no-devDependencies +original_id: prefer-no-devDependencies +--- + +Enabling this rule will result in an error being generated if `devDependencies` is present. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-devDependencies": "error" + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": "dummy-value" +} +``` + +### *Correct* example(s) + +```json +{ + "prefer-no-devDependencies": "error" +} +``` + +## History + +* Introduced in version 4.0.0 diff --git a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md new file mode 100644 index 00000000..697cafd6 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md @@ -0,0 +1,39 @@ +--- +id: version-4.0.0-prefer-no-engineStrict +title: prefer-no-engineStrict +original_id: prefer-no-engineStrict +--- + +Enabling this rule will result in an error being generated if `engineStrict` is present. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-engineStrict": "error" + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "engineStrict": "dummy-value" +} +``` + +### *Correct* example(s) + +```json +{ + +} +``` + +## History + +* Introduced in version 1.3.0 diff --git a/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md b/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md new file mode 100644 index 00000000..7d167f95 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md @@ -0,0 +1,40 @@ +--- +id: version-4.0.0-require-license +title: require-license +original_id: require-license +--- + +Enabling this rule will result in an error being generated if `license` field is missing from the `package.json` file. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "require-license": "error" + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + +} +``` + +### *Correct* example(s) + +```json +{ + "license": "MIT" +} +``` + +## History + +* Renamed from license-required to require-license in version 1.0.0 +* Introduced in version 0.1.0 diff --git a/website/versioned_docs/version-4.0.0/v3-to-v4.md b/website/versioned_docs/version-4.0.0/v3-to-v4.md new file mode 100644 index 00000000..7d959b52 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/v3-to-v4.md @@ -0,0 +1,15 @@ +--- +id: version-4.0.0-v3-to-v4 +title: v3 to v4 Migration Guide +original_id: v3-to-v4 +--- + +v4.0.0 Migration Guide + +> FYI: v4 drops support for Node 6 and 7. If you need support for versions of Node that have reached EOL, please use v3. + +## Node.js API + +There is a new [Node.js API](api.md) available. Please see the docs. + +Please see the [release notes](https://github.com/tclindner/npm-package-json-lint/releases/tag/v4.0.0) for additional changes introduced in v4.0.0. diff --git a/website/versions.json b/website/versions.json index f4198b3e..32c01f9f 100644 --- a/website/versions.json +++ b/website/versions.json @@ -1,3 +1,4 @@ [ + "4.0.0", "3.7.0" ] From 2366398816cc77b6ac9d0d393ae898b3be9416de Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 12:38:07 -0500 Subject: [PATCH 6/8] Add exception docs --- CHANGELOG.md | 34 +-- .../no-absolute-version-dependencies.md | 12 + .../no-absolute-version-devDependencies.md | 12 + .../no-caret-version-dependencies.md | 12 + .../no-caret-version-devDependencies.md | 12 + .../no-tilde-version-dependencies.md | 12 + .../no-tilde-version-devDependencies.md | 12 + .../prefer-absolute-version-dependencies.md | 12 + ...prefer-absolute-version-devDependencies.md | 12 + .../prefer-caret-version-dependencies.md | 12 + .../prefer-caret-version-devDependencies.md | 12 + .../prefer-no-version-zero-dependencies.md | 54 +++++ .../prefer-no-version-zero-devDependencies.md | 12 + .../prefer-tilde-version-dependencies.md | 12 + .../prefer-tilde-version-devDependencies.md | 12 + .../prefer-no-devDependencies.md | 13 ++ docs/v3-to-v4.md | 2 + website/versioned_docs/version-4.0.0/api.md | 99 --------- website/versioned_docs/version-4.0.0/cli.md | 87 -------- website/versioned_docs/version-4.0.0/rules.md | 210 ------------------ .../prefer-no-devDependencies.md | 39 ---- .../prefer-no-engineStrict.md | 39 ---- .../rules/required-node/require-license.md | 40 ---- .../versioned_docs/version-4.0.0/v3-to-v4.md | 15 -- website/versions.json | 1 - 25 files changed, 243 insertions(+), 546 deletions(-) create mode 100644 docs/rules/dependencies/prefer-no-version-zero-dependencies.md delete mode 100644 website/versioned_docs/version-4.0.0/api.md delete mode 100644 website/versioned_docs/version-4.0.0/cli.md delete mode 100644 website/versioned_docs/version-4.0.0/rules.md delete mode 100644 website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md delete mode 100644 website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md delete mode 100644 website/versioned_docs/version-4.0.0/rules/required-node/require-license.md delete mode 100644 website/versioned_docs/version-4.0.0/v3-to-v4.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 661f8499..b3efd6e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,30 +3,32 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] + +## [4.0.0] - 2019-10-06 ### Added - Added exception support to the following rules: - - [`no-absolute-version-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/no-absolute-version-dependencies) - - [`no-absolute-version-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/no-absolute-version-devDependencies) - - [`no-caret-version-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/no-caret-version-dependencies) - - [`no-caret-version-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/no-caret-version-devDependencies) - - [`no-tilde-version-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/no-tilde-version-dependencies) - - [`no-tilde-version-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/no-tilde-version-devDependencies) - - [`prefer-absolute-version-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-absolute-version-dependencies) - - [`prefer-absolute-version-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-absolute-version-devDependencies) - - [`prefer-caret-version-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-caret-version-dependencies) - - [`prefer-caret-version-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-caret-version-devDependencies) - - [`prefer-no-version-zero-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-no-version-zero-dependencies) - - [`prefer-no-version-zero-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-no-version-zero-devDependencies) - - [`prefer-tilde-version-dependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-tilde-version-dependencies) - - [`prefer-tilde-version-devDependencies`](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-tilde-version-devDependencies) + - [`no-absolute-version-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/no-absolute-version-dependencies) + - [`no-absolute-version-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/no-absolute-version-devDependencies) + - [`no-caret-version-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/no-caret-version-dependencies) + - [`no-caret-version-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/no-caret-version-devDependencies) + - [`no-tilde-version-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/no-tilde-version-dependencies) + - [`no-tilde-version-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/no-tilde-version-devDependencies) + - [`prefer-absolute-version-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-absolute-version-dependencies) + - [`prefer-absolute-version-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-absolute-version-devDependencies) + - [`prefer-caret-version-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-caret-version-dependencies) + - [`prefer-caret-version-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-caret-version-devDependencies) + - [`prefer-no-version-zero-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-no-version-zero-dependencies) + - [`prefer-no-version-zero-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-no-version-zero-devDependencies) + - [`prefer-tilde-version-dependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-tilde-version-dependencies) + - [`prefer-tilde-version-devDependencies`](https://npmpackagejsonlint.org/docs/en/rules/dependencies/prefer-tilde-version-devDependencies) > Addresses [#93](https://github.com/tclindner/npm-package-json-lint/issues/93) -- New rule: [prefer-no-devDependencies](https://github.com/tclindner/npm-package-json-lint/wiki/prefer-no-devDependencies)] +- New rule: [prefer-no-devDependencies](https://npmpackagejsonlint.org/docs/en/rules/disallowed-nodes/prefer-no-devdependencies)]. Thank you, @simison ### Changed -- [`name-format`](https://github.com/tclindner/npm-package-json-lint/wiki/name-format) now checks the following things: +- [`name-format`](https://npmpackagejsonlint.org/docs/en/rules/format/name-format) now checks the following things: - Name is lowercase - Name is less than 214 characters. This includes scope. diff --git a/docs/rules/dependencies/no-absolute-version-dependencies.md b/docs/rules/dependencies/no-absolute-version-dependencies.md index 205d9d1c..71687458 100644 --- a/docs/rules/dependencies/no-absolute-version-dependencies.md +++ b/docs/rules/dependencies/no-absolute-version-dependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "no-absolute-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/no-absolute-version-devDependencies.md b/docs/rules/dependencies/no-absolute-version-devDependencies.md index c29811a6..7261cd99 100644 --- a/docs/rules/dependencies/no-absolute-version-devDependencies.md +++ b/docs/rules/dependencies/no-absolute-version-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "no-absolute-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/no-caret-version-dependencies.md b/docs/rules/dependencies/no-caret-version-dependencies.md index 40703e4e..ae717291 100644 --- a/docs/rules/dependencies/no-caret-version-dependencies.md +++ b/docs/rules/dependencies/no-caret-version-dependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "no-caret-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/no-caret-version-devDependencies.md b/docs/rules/dependencies/no-caret-version-devDependencies.md index 9afc77da..48b01e68 100644 --- a/docs/rules/dependencies/no-caret-version-devDependencies.md +++ b/docs/rules/dependencies/no-caret-version-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "no-caret-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/no-tilde-version-dependencies.md b/docs/rules/dependencies/no-tilde-version-dependencies.md index 3ab22d82..5ce9950f 100644 --- a/docs/rules/dependencies/no-tilde-version-dependencies.md +++ b/docs/rules/dependencies/no-tilde-version-dependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "no-tilde-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/no-tilde-version-devDependencies.md b/docs/rules/dependencies/no-tilde-version-devDependencies.md index 71e0ada2..77e8b795 100644 --- a/docs/rules/dependencies/no-tilde-version-devDependencies.md +++ b/docs/rules/dependencies/no-tilde-version-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "no-tilde-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-absolute-version-dependencies.md b/docs/rules/dependencies/prefer-absolute-version-dependencies.md index a4c2ca0f..b9cf9039 100644 --- a/docs/rules/dependencies/prefer-absolute-version-dependencies.md +++ b/docs/rules/dependencies/prefer-absolute-version-dependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-absolute-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-absolute-version-devDependencies.md b/docs/rules/dependencies/prefer-absolute-version-devDependencies.md index 2cf293a2..dfe2cb31 100644 --- a/docs/rules/dependencies/prefer-absolute-version-devDependencies.md +++ b/docs/rules/dependencies/prefer-absolute-version-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-absolute-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-caret-version-dependencies.md b/docs/rules/dependencies/prefer-caret-version-dependencies.md index 55afa952..01c6a079 100644 --- a/docs/rules/dependencies/prefer-caret-version-dependencies.md +++ b/docs/rules/dependencies/prefer-caret-version-dependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-caret-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-caret-version-devDependencies.md b/docs/rules/dependencies/prefer-caret-version-devDependencies.md index bb09df3c..26179acb 100644 --- a/docs/rules/dependencies/prefer-caret-version-devDependencies.md +++ b/docs/rules/dependencies/prefer-caret-version-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-caret-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-no-version-zero-dependencies.md b/docs/rules/dependencies/prefer-no-version-zero-dependencies.md new file mode 100644 index 00000000..2dceba26 --- /dev/null +++ b/docs/rules/dependencies/prefer-no-version-zero-dependencies.md @@ -0,0 +1,54 @@ +--- +id: prefer-no-version-zero-dependencies +title: prefer-no-version-zero-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` has a major version of 0. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-version-zero-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-no-version-zero-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^1.0.0" + } +} +``` + +## History + +* Introduced in version 0.4.0 diff --git a/docs/rules/dependencies/prefer-no-version-zero-devDependencies.md b/docs/rules/dependencies/prefer-no-version-zero-devDependencies.md index f877bef7..8bd21499 100644 --- a/docs/rules/dependencies/prefer-no-version-zero-devDependencies.md +++ b/docs/rules/dependencies/prefer-no-version-zero-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-no-version-zero-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-tilde-version-dependencies.md b/docs/rules/dependencies/prefer-tilde-version-dependencies.md index ec860724..39354085 100644 --- a/docs/rules/dependencies/prefer-tilde-version-dependencies.md +++ b/docs/rules/dependencies/prefer-tilde-version-dependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-tilde-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/dependencies/prefer-tilde-version-devDependencies.md b/docs/rules/dependencies/prefer-tilde-version-devDependencies.md index cc5901e4..305ba3e8 100644 --- a/docs/rules/dependencies/prefer-tilde-version-devDependencies.md +++ b/docs/rules/dependencies/prefer-tilde-version-devDependencies.md @@ -15,6 +15,18 @@ Enabling this rule will result in an error being generated if one of the depende } ``` +With exceptions + +```json +{ + "rules": { + "prefer-tilde-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/rules/disallowed-nodes/prefer-no-devDependencies.md b/docs/rules/disallowed-nodes/prefer-no-devDependencies.md index be31a46b..0533614d 100644 --- a/docs/rules/disallowed-nodes/prefer-no-devDependencies.md +++ b/docs/rules/disallowed-nodes/prefer-no-devDependencies.md @@ -15,6 +15,19 @@ Enabling this rule will result in an error being generated if `devDependencies` } ``` +With exceptions + +```json +{ + "rules": { + "prefer-no-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + + ## Rule Details ### *Incorrect* example(s) diff --git a/docs/v3-to-v4.md b/docs/v3-to-v4.md index 0f370ac6..13b59c5e 100644 --- a/docs/v3-to-v4.md +++ b/docs/v3-to-v4.md @@ -11,4 +11,6 @@ v4.0.0 Migration Guide There is a new [Node.js API](api.md) available. Please see the docs. +## Additional changes + Please see the [release notes](https://github.com/tclindner/npm-package-json-lint/releases/tag/v4.0.0) for additional changes introduced in v4.0.0. diff --git a/website/versioned_docs/version-4.0.0/api.md b/website/versioned_docs/version-4.0.0/api.md deleted file mode 100644 index b36d15be..00000000 --- a/website/versioned_docs/version-4.0.0/api.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -id: version-4.0.0-api -title: Node.js API -original_id: api ---- - -npm-package-json-lint exports one object, `NpmPackageJsonLint`. - -## NpmPackageJsonLint(options) - -Creates an instance of NpmPackageJsonLint - -`NpmPackageJsonLint` has one public method, `lint`. `lint` takes a `NpmPackageJsonLintOptions` object. - -#### options - -Type: `Object` - -A `NpmPackageJsonLint` options object. - -| Option | Type | Description | Default | -| --- | --- | --- | --- | -| `cwd` | {string} | The current working diretory for all file operations. | `process.cwd()` | -| `packageJsonObject` | {Object} | A package.json object. This must be provided or a `patterns` should be provided. | -- | -| `packageJsonFilePath` | {string} | If providing a package.json object, this option allows a file path to be assigned to it. | -- | -| `config` | {object} | Allows for a config object to be passed as an object via code instead of a file. | -- | -| `configFile` | {string} | Relative path to a configuration file. If provided, the config in the file will be used and npm-package-json-lint will not traverse the file system to find other config files. | -- | -| `patterns` | {string[]} | An array of glob patterns used to find package.json files. This must be provided or a `packageJsonObject` should be provided. | -- | -| `quiet` | {boolean} | A flag indicating whether to suppress warnings. | `false` | -| `ignorePath` | {string} | File path to an ignore file. | `` | - -#### Example - -The following example demostrates how to instantiate `NpmPackageJsonLint`. - -```js -const {NpmPackageJsonLint} = require('npm-package-json-lint'); - -const npmPackageJsonLint = new NpmPackageJsonLint({ - cwd, - packageJsonObject, - packageJsonFilePath, - config, - configFile, - configBaseDirectory, - patterns, - quiet, - ignorePath -}); -``` - -### .lint() - -Runs configured rules against the provided package.json object(s). - -#### Example - -The following example demostrates how to use `lint`. - -```js -const {NpmPackageJsonLint} = require('npm-package-json-lint'); - -const npmPackageJsonLint = new NpmPackageJsonLint({ - ... -}); -const results = npmPackageJsonLint.lint(); -``` - -#### Return - -Returns an object with an array of results. - -```js -{ - results: [ - { - filePath: './package.json', - issues: [ - { - lintId: 'require-name', - severity: 'error', - node: 'name', - lintMessage: 'name is required' - } - ], - errorCount: 1, - ignoreCount: 0, - warningCount: 0 - } - ], - errorCount: 1, - ignoreCount: 0, - warningCount: 0 -} -``` - -> **WARNING** - -Only the functions documented above are supported. All other functions that are exposed may change with any release. Please refrain from using them. diff --git a/website/versioned_docs/version-4.0.0/cli.md b/website/versioned_docs/version-4.0.0/cli.md deleted file mode 100644 index bc5f29cf..00000000 --- a/website/versioned_docs/version-4.0.0/cli.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: version-4.0.0-cli -title: CLI -original_id: cli ---- - -Run npm-package-json-lint through the CLI with this script. - -```bash -npmPkgJsonLint [opts] [fileGlobPatterns ...] -``` - -npm-package-json-lint ignores files located in `node_modules` directory. - -### Examples - -```bash -$ npmPkgJsonLint . -``` - -> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. - -```bash -$ npmPkgJsonLint ./packages -``` - -> Looks for all `package.json` files in the `packages` directory. The CLI engine automatically looks for relevant config files for each package.json file that is found. - -```bash -$ npmPkgJsonLint ./package1 ./package2 -``` - -> Looks for all `package.json` files in the `package1` and `package2` directories. The CLI engine automatically looks for relevant config files for each package.json file that is found. - -## `--configFile ` (alias `-c`) - -File path to local config file or module name. Please see [configuration](configuration.md) for more details. - -### Examples - -```bash -$ npmPkgJsonLint -c ./config/.npmpackagejsonlintrc.json . -``` - -> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. The CLI also merges the config found in `./config/.npmpackagejsonlintrc.json` - -```bash -$ npmPkgJsonLint --configFile ./config/npmpackagejsonlint.config.json . -``` - -## `--quiet` (alias `-q`) - -Report errors only. - -### Examples - -```bash -$ npmPkgJsonLint -q . -``` - -> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. Removes any warnings from the output. - -```bash -$ npmPkgJsonLint --quiet ./packages -``` - -> Looks for all `package.json` files in the `packages` directory. The CLI engine automatically looks for relevant config files for each package.json file that is found. Removes any warnings from the output using the long form for quieting output. - -## `--noConfigFiles` (alias `-ncf`) - -Skips loading project config files (i.e. .npmpackagejsonlintrc.json and npmpackagejsonlint.config.js). - -## `--ignorePath` (alias `-i`) - -Path to a file containing patterns that describe files to ignore. By default, npm-package-json-lint looks for `./.npmpackagejsonlintignore`. - -### Examples - -```bash -$ npmPkgJsonLint . --ignorePath .gitignore -``` - -> Looks for all `package.json` files in the project and exclude ignored paths. The CLI engine automatically looks for relevant config files for each package.json file that is found. - -## `--maxWarnings` (alias `-mw`) - -Max number of warnings that are allowed before an error is thrown. By default, npm-package-json-lint allows `10000000`. diff --git a/website/versioned_docs/version-4.0.0/rules.md b/website/versioned_docs/version-4.0.0/rules.md deleted file mode 100644 index d1559b4b..00000000 --- a/website/versioned_docs/version-4.0.0/rules.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -id: version-4.0.0-rules -title: Rules -original_id: rules ---- - -Rules allow npm-package-json-lint to be fully customizable. npm-package-json-lint will only run the rules supplied. As of v2.7.0, there are multiple ways to supply [configuration](configuration.md). One of the easiest way is via a [.npmpackagejsonlintrc.json](rcfile-example.md) file. The default configuration supplied in v1 is no longer provided in v2. Please see the new default config module, [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) instead. - -> Migrating from v3.x.x to 4.x.x? - -Please see [migrating-from-v3-to-v4](v3-to-v4.md) - -> Migrating from v2.x.x to 3.x.x? - -Please see [migrating-from-v2-to-v3](v2-to-v3.md) - -> Migrating from v1.x.x to 2.x.x? - -Please see [migrating-from-v1-to-v2](v1-to-v2.md) - -> Migrating from v0.x.x to 1.x.x? - -Please see [migrating-from-v0-to-v1](v0-to-v1.md) - -### Configuring rules -npm-package-json-lint rules can either be run as an `error`, `warning`, or `off`. - -* "warning" - run the rule as a warning -* "error" - run the rule as an error -* "off" - disables the rule - -Ex: `"require-author": "error"` - -### .npmpackagejsonlintrc.json file - -Please see [.npmpackagejsonlintrc.json](rcfile-example.md) file. - -### Shareable config -v2 added support for shareable npm-package-json-lint config! If you would like to use your .npmpackagejsonlintrc.json file in multiple projects you can create a npm module that exports your config. - -#### How to create shared config -Create a new npm module that exports the desired npm-package-json-lint configuration. The module name must start with `npm-package-json-lint-config-`. Add the desired configuration to the index.js file. - -``` -const config = { - 'rules': { - 'require-name': 'error' - } -}; - -module.exports = config; -``` - -For a complete example, please see [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) - -#### How to publish a shared config module -Follow these instructions for [publishing to npm](https://docs.npmjs.com/getting-started/publishing-npm-packages). Please add the following keywords for discoverability, `npm-package-json-lint`, `npm-package-json-lintconfig`, and `npm-package-json-lint-config`. - -Please also add a dependency on npm-package-json-lint using [peerdependencies](https://docs.npmjs.com/files/package.json#peerdependencies). Example - -``` -peerDependencies: { - "npm-package-json-lint": ">= 2" -} -``` - -#### How to use a shared config module -Add the following to your `.npmpackagejsonlintrc.json` file. - -``` -{ - "extends": "npm-package-json-lint-config-default" -} -``` - -`npm-package-json-lint-config-default` can be replaced by the name of the shared module you are using. - -## Require node rules - -> Generates an error if node is missing from package.json file - -* [require-author](rules/required-node/require-author.md) -* [require-bin](rules/required-node/require-bin.md) -* [require-bugs](rules/required-node/require-bugs.md) -* [require-bundledDependencies](rules/required-node/require-bundledDependencies.md) -* [require-config](rules/required-node/require-config.md) -* [require-contributors](rules/required-node/require-contributors.md) -* [require-cpu](rules/required-node/require-cpu.md) -* [require-dependencies](rules/required-node/require-dependencies.md) -* [require-description](rules/required-node/require-description.md) -* [require-devDependencies](rules/required-node/require-devDependencies.md) -* [require-directories](rules/required-node/require-directories.md) -* [require-engines](rules/required-node/require-engines.md) -* [require-files](rules/required-node/require-files.md) -* [require-homepage](rules/required-node/require-homepage.md) -* [require-keywords](rules/required-node/require-keywords.md) -* [require-license](rules/required-node/require-license.md) -* [require-main](rules/required-node/require-main.md) -* [require-man](rules/required-node/require-man.md) -* [require-module](rules/required-node/require-module.md) -* [require-name](rules/required-node/require-name.md) -* [require-optionalDependencies](rules/required-node/require-optionalDependencies.md) -* [require-os](rules/required-node/require-os.md) -* [require-peerDependencies](rules/required-node/require-peerDependencies.md) -* [require-preferGlobal](rules/required-node/require-preferGlobal.md) -* [require-private](rules/required-node/require-private.md) -* [require-publishConfig](rules/required-node/require-publishConfig.md) -* [require-repository-directory](rules/required-node/require-repository-directory.md) -* [require-repository](rules/required-node/require-repository.md) -* [require-scripts](rules/required-node/require-scripts.md) -* [require-types](rules/required-node/require-types.md) -* [require-typings](rules/required-node/require-typings.md) -* [require-version](rules/required-node/require-version.md) - -## Type rules - -> Generates an error if node's value doesn't have the correct data type - -* [bin-type](rules/type/bin-type.md) -* [bundledDependencies-type](rules/type/bundledDependencies-type.md) -* [config-type](rules/type/config-type.md) -* [cpu-type](rules/type/cpu-type.md) -* [dependencies-type](rules/type/dependencies-type.md) -* [description-type](rules/type/description-type.md) -* [devDependencies-type](rules/type/devDependencies-type.md) -* [directories-type](rules/type/directories-type.md) -* [engines-type](rules/type/engines-type.md) -* [files-type](rules/type/files-type.md) -* [homepage-type](rules/type/homepage-type.md) -* [keywords-type](rules/type/keywords-type.md) -* [license-type](rules/type/license-type.md) -* [main-type](rules/type/main-type.md) -* [man-type](rules/type/man-type.md) -* [name-type](rules/type/name-type.md) -* [optionalDependencies-type](rules/type/optionalDependencies-type.md) -* [os-type](rules/type/os-type.md) -* [peerDependencies-type](rules/type/peerDependencies-type.md) -* [preferGlobal-type](rules/type/preferGlobal-type.md) -* [private-type](rules/type/private-type.md) -* [repository-type](rules/type/repository-type.md) -* [scripts-type](rules/type/scripts-type.md) -* [version-type](rules/type/version-type.md) - - -## Valid value rules - -> Generates an error if node's value doesn't match one of the values in the supplied array - -* [valid-values-author](rules/valid-values/valid-values-author.md) -* [valid-values-engines](rules/valid-values/valid-values-engines.md) -* [valid-values-license](rules/valid-values/valid-values-license.md) -* [valid-values-name-scope](rules/valid-values/valid-values-name-scope.md) -* [valid-values-private](rules/valid-values/valid-values-private.md) -* [valid-values-publishConfig](rules/valid-values/valid-values-publishConfig.md) - -## Dependency rules - -> Generates an error if dependencies fail to meet the rules requirements - -* dependencies - * [no-absolute-version-dependencies](rules/dependencies/no-absolute-version-dependencies.md) - * [no-caret-version-dependencies](rules/dependencies/no-caret-version-dependencies.md) - * [no-restricted-dependencies](rules/dependencies/no-restricted-dependencies.md) - * [no-restricted-pre-release-dependencies](rules/dependencies/no-restricted-pre-release-dependencies.md) - * [no-tilde-version-dependencies](rules/dependencies/no-tilde-version-dependencies.md) - * [prefer-absolute-version-dependencies](rules/dependencies/prefer-absolute-version-dependencies.md) - * [prefer-alphabetical-dependencies](rules/dependencies/prefer-alphabetical-dependencies.md) - * [prefer-caret-version-dependencies](rules/dependencies/prefer-caret-version-dependencies.md) - * [prefer-tilde-version-dependencies](rules/dependencies/prefer-tilde-version-dependencies.md) -* devDependencies - * [no-absolute-version-devDependencies](rules/dependencies/no-absolute-version-devDependencies.md) - * [no-caret-version-devDependencies](rules/dependencies/no-caret-version-devDependencies.md) - * [no-restricted-devDependencies](rules/dependencies/no-restricted-devDependencies.md) - * [no-restricted-pre-release-devDependencies](rules/dependencies/no-restricted-pre-release-devDependencies.md) - * [no-tilde-version-devDependencies](rules/dependencies/no-tilde-version-devDependencies.md) - * [prefer-no-version-zero-devDependencies](rules/dependencies/prefer-no-version-zero-devDependencies.md) - * [prefer-absolute-version-devDependencies](rules/dependencies/prefer-absolute-version-devDependencies.md) - * [prefer-alphabetical-devDependencies](rules/dependencies/prefer-alphabetical-devDependencies.md) - * [prefer-caret-version-devDependencies](rules/dependencies/prefer-caret-version-devDependencies.md) - * [prefer-no-version-zero-devDependencies](rules/dependencies/prefer-no-version-zero-devDependencies.md) - * [prefer-tilde-version-devDependencies](rules/dependencies/prefer-tilde-version-devDependencies.md) -* bundledDependencies - * [prefer-alphabetical-bundledDependencies](rules/dependencies/prefer-alphabetical-bundledDependencies.md) -* optionalDependencies - * [prefer-alphabetical-optionalDependencies](rules/dependencies/prefer-alphabetical-optionalDependencies.md) -* peerDependencies - * [prefer-alphabetical-peerDependencies](rules/dependencies/prefer-alphabetical-peerDependencies.md) - -## Format rules - -> Generates an error if node's value fails to meet the format requirements - -* [description-format](rules/format/description-format.md) -* [name-format](rules/format/name-format.md) -* [version-format](rules/format/version-format.md) - - -## Package.json property rules - -> Generates an error if the package.json properties fail to meet the desired requirements - -* [prefer-property-order](rules/package-json-properties/prefer-property-order.md) - - -## Disallowed node rules - -> Generates an error if the node is present - -* [prefer-no-engineStrict](rules/disallowed-nodes/prefer-no-engineStrict) -* [prefer-no-devDependencies](rules/disallowed-nodes/prefer-no-devDependencies) diff --git a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md deleted file mode 100644 index 003a271d..00000000 --- a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: version-4.0.0-prefer-no-devDependencies -title: prefer-no-devDependencies -original_id: prefer-no-devDependencies ---- - -Enabling this rule will result in an error being generated if `devDependencies` is present. - -## Example .npmpackagejsonlintrc configuration - -```json -{ - "rules": { - "prefer-no-devDependencies": "error" - } -} -``` - -## Rule Details - -### *Incorrect* example(s) - -```json -{ - "devDependencies": "dummy-value" -} -``` - -### *Correct* example(s) - -```json -{ - "prefer-no-devDependencies": "error" -} -``` - -## History - -* Introduced in version 4.0.0 diff --git a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md deleted file mode 100644 index 697cafd6..00000000 --- a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: version-4.0.0-prefer-no-engineStrict -title: prefer-no-engineStrict -original_id: prefer-no-engineStrict ---- - -Enabling this rule will result in an error being generated if `engineStrict` is present. - -## Example .npmpackagejsonlintrc configuration - -```json -{ - "rules": { - "prefer-no-engineStrict": "error" - } -} -``` - -## Rule Details - -### *Incorrect* example(s) - -```json -{ - "engineStrict": "dummy-value" -} -``` - -### *Correct* example(s) - -```json -{ - -} -``` - -## History - -* Introduced in version 1.3.0 diff --git a/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md b/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md deleted file mode 100644 index 7d167f95..00000000 --- a/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: version-4.0.0-require-license -title: require-license -original_id: require-license ---- - -Enabling this rule will result in an error being generated if `license` field is missing from the `package.json` file. - -## Example .npmpackagejsonlintrc configuration - -```json -{ - "rules": { - "require-license": "error" - } -} -``` - -## Rule Details - -### *Incorrect* example(s) - -```json -{ - -} -``` - -### *Correct* example(s) - -```json -{ - "license": "MIT" -} -``` - -## History - -* Renamed from license-required to require-license in version 1.0.0 -* Introduced in version 0.1.0 diff --git a/website/versioned_docs/version-4.0.0/v3-to-v4.md b/website/versioned_docs/version-4.0.0/v3-to-v4.md deleted file mode 100644 index 7d959b52..00000000 --- a/website/versioned_docs/version-4.0.0/v3-to-v4.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: version-4.0.0-v3-to-v4 -title: v3 to v4 Migration Guide -original_id: v3-to-v4 ---- - -v4.0.0 Migration Guide - -> FYI: v4 drops support for Node 6 and 7. If you need support for versions of Node that have reached EOL, please use v3. - -## Node.js API - -There is a new [Node.js API](api.md) available. Please see the docs. - -Please see the [release notes](https://github.com/tclindner/npm-package-json-lint/releases/tag/v4.0.0) for additional changes introduced in v4.0.0. diff --git a/website/versions.json b/website/versions.json index 32c01f9f..f4198b3e 100644 --- a/website/versions.json +++ b/website/versions.json @@ -1,4 +1,3 @@ [ - "4.0.0", "3.7.0" ] From 969de5f231f21993c1a648c9e6b8017082475289 Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 12:38:53 -0500 Subject: [PATCH 7/8] Add v4 docs --- website/versioned_docs/version-4.0.0/api.md | 99 +++++++++ website/versioned_docs/version-4.0.0/cli.md | 87 ++++++++ website/versioned_docs/version-4.0.0/rules.md | 210 ++++++++++++++++++ .../no-absolute-version-dependencies.md | 105 +++++++++ .../no-absolute-version-devDependencies.md | 105 +++++++++ .../no-caret-version-dependencies.md | 105 +++++++++ .../no-caret-version-devDependencies.md | 105 +++++++++ .../no-tilde-version-dependencies.md | 105 +++++++++ .../no-tilde-version-devDependencies.md | 105 +++++++++ .../prefer-absolute-version-dependencies.md | 101 +++++++++ ...prefer-absolute-version-devDependencies.md | 101 +++++++++ .../prefer-caret-version-dependencies.md | 60 +++++ .../prefer-caret-version-devDependencies.md | 60 +++++ .../prefer-no-version-zero-dependencies.md | 55 +++++ .../prefer-no-version-zero-devDependencies.md | 55 +++++ .../prefer-tilde-version-dependencies.md | 60 +++++ .../prefer-tilde-version-devDependencies.md | 60 +++++ .../prefer-no-devDependencies.md | 52 +++++ .../prefer-no-engineStrict.md | 39 ++++ .../rules/required-node/require-license.md | 40 ++++ .../versioned_docs/version-4.0.0/v3-to-v4.md | 17 ++ website/versioned_docs/version-4.0.0/why.md | 62 ++++++ website/versions.json | 1 + 23 files changed, 1789 insertions(+) create mode 100644 website/versioned_docs/version-4.0.0/api.md create mode 100644 website/versioned_docs/version-4.0.0/cli.md create mode 100644 website/versioned_docs/version-4.0.0/rules.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-dependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md create mode 100644 website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md create mode 100644 website/versioned_docs/version-4.0.0/rules/required-node/require-license.md create mode 100644 website/versioned_docs/version-4.0.0/v3-to-v4.md create mode 100644 website/versioned_docs/version-4.0.0/why.md diff --git a/website/versioned_docs/version-4.0.0/api.md b/website/versioned_docs/version-4.0.0/api.md new file mode 100644 index 00000000..b36d15be --- /dev/null +++ b/website/versioned_docs/version-4.0.0/api.md @@ -0,0 +1,99 @@ +--- +id: version-4.0.0-api +title: Node.js API +original_id: api +--- + +npm-package-json-lint exports one object, `NpmPackageJsonLint`. + +## NpmPackageJsonLint(options) + +Creates an instance of NpmPackageJsonLint + +`NpmPackageJsonLint` has one public method, `lint`. `lint` takes a `NpmPackageJsonLintOptions` object. + +#### options + +Type: `Object` + +A `NpmPackageJsonLint` options object. + +| Option | Type | Description | Default | +| --- | --- | --- | --- | +| `cwd` | {string} | The current working diretory for all file operations. | `process.cwd()` | +| `packageJsonObject` | {Object} | A package.json object. This must be provided or a `patterns` should be provided. | -- | +| `packageJsonFilePath` | {string} | If providing a package.json object, this option allows a file path to be assigned to it. | -- | +| `config` | {object} | Allows for a config object to be passed as an object via code instead of a file. | -- | +| `configFile` | {string} | Relative path to a configuration file. If provided, the config in the file will be used and npm-package-json-lint will not traverse the file system to find other config files. | -- | +| `patterns` | {string[]} | An array of glob patterns used to find package.json files. This must be provided or a `packageJsonObject` should be provided. | -- | +| `quiet` | {boolean} | A flag indicating whether to suppress warnings. | `false` | +| `ignorePath` | {string} | File path to an ignore file. | `` | + +#### Example + +The following example demostrates how to instantiate `NpmPackageJsonLint`. + +```js +const {NpmPackageJsonLint} = require('npm-package-json-lint'); + +const npmPackageJsonLint = new NpmPackageJsonLint({ + cwd, + packageJsonObject, + packageJsonFilePath, + config, + configFile, + configBaseDirectory, + patterns, + quiet, + ignorePath +}); +``` + +### .lint() + +Runs configured rules against the provided package.json object(s). + +#### Example + +The following example demostrates how to use `lint`. + +```js +const {NpmPackageJsonLint} = require('npm-package-json-lint'); + +const npmPackageJsonLint = new NpmPackageJsonLint({ + ... +}); +const results = npmPackageJsonLint.lint(); +``` + +#### Return + +Returns an object with an array of results. + +```js +{ + results: [ + { + filePath: './package.json', + issues: [ + { + lintId: 'require-name', + severity: 'error', + node: 'name', + lintMessage: 'name is required' + } + ], + errorCount: 1, + ignoreCount: 0, + warningCount: 0 + } + ], + errorCount: 1, + ignoreCount: 0, + warningCount: 0 +} +``` + +> **WARNING** + +Only the functions documented above are supported. All other functions that are exposed may change with any release. Please refrain from using them. diff --git a/website/versioned_docs/version-4.0.0/cli.md b/website/versioned_docs/version-4.0.0/cli.md new file mode 100644 index 00000000..bc5f29cf --- /dev/null +++ b/website/versioned_docs/version-4.0.0/cli.md @@ -0,0 +1,87 @@ +--- +id: version-4.0.0-cli +title: CLI +original_id: cli +--- + +Run npm-package-json-lint through the CLI with this script. + +```bash +npmPkgJsonLint [opts] [fileGlobPatterns ...] +``` + +npm-package-json-lint ignores files located in `node_modules` directory. + +### Examples + +```bash +$ npmPkgJsonLint . +``` + +> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +```bash +$ npmPkgJsonLint ./packages +``` + +> Looks for all `package.json` files in the `packages` directory. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +```bash +$ npmPkgJsonLint ./package1 ./package2 +``` + +> Looks for all `package.json` files in the `package1` and `package2` directories. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +## `--configFile ` (alias `-c`) + +File path to local config file or module name. Please see [configuration](configuration.md) for more details. + +### Examples + +```bash +$ npmPkgJsonLint -c ./config/.npmpackagejsonlintrc.json . +``` + +> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. The CLI also merges the config found in `./config/.npmpackagejsonlintrc.json` + +```bash +$ npmPkgJsonLint --configFile ./config/npmpackagejsonlint.config.json . +``` + +## `--quiet` (alias `-q`) + +Report errors only. + +### Examples + +```bash +$ npmPkgJsonLint -q . +``` + +> Looks for all `package.json` files in the project. The CLI engine automatically looks for relevant config files for each package.json file that is found. Removes any warnings from the output. + +```bash +$ npmPkgJsonLint --quiet ./packages +``` + +> Looks for all `package.json` files in the `packages` directory. The CLI engine automatically looks for relevant config files for each package.json file that is found. Removes any warnings from the output using the long form for quieting output. + +## `--noConfigFiles` (alias `-ncf`) + +Skips loading project config files (i.e. .npmpackagejsonlintrc.json and npmpackagejsonlint.config.js). + +## `--ignorePath` (alias `-i`) + +Path to a file containing patterns that describe files to ignore. By default, npm-package-json-lint looks for `./.npmpackagejsonlintignore`. + +### Examples + +```bash +$ npmPkgJsonLint . --ignorePath .gitignore +``` + +> Looks for all `package.json` files in the project and exclude ignored paths. The CLI engine automatically looks for relevant config files for each package.json file that is found. + +## `--maxWarnings` (alias `-mw`) + +Max number of warnings that are allowed before an error is thrown. By default, npm-package-json-lint allows `10000000`. diff --git a/website/versioned_docs/version-4.0.0/rules.md b/website/versioned_docs/version-4.0.0/rules.md new file mode 100644 index 00000000..d1559b4b --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules.md @@ -0,0 +1,210 @@ +--- +id: version-4.0.0-rules +title: Rules +original_id: rules +--- + +Rules allow npm-package-json-lint to be fully customizable. npm-package-json-lint will only run the rules supplied. As of v2.7.0, there are multiple ways to supply [configuration](configuration.md). One of the easiest way is via a [.npmpackagejsonlintrc.json](rcfile-example.md) file. The default configuration supplied in v1 is no longer provided in v2. Please see the new default config module, [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) instead. + +> Migrating from v3.x.x to 4.x.x? + +Please see [migrating-from-v3-to-v4](v3-to-v4.md) + +> Migrating from v2.x.x to 3.x.x? + +Please see [migrating-from-v2-to-v3](v2-to-v3.md) + +> Migrating from v1.x.x to 2.x.x? + +Please see [migrating-from-v1-to-v2](v1-to-v2.md) + +> Migrating from v0.x.x to 1.x.x? + +Please see [migrating-from-v0-to-v1](v0-to-v1.md) + +### Configuring rules +npm-package-json-lint rules can either be run as an `error`, `warning`, or `off`. + +* "warning" - run the rule as a warning +* "error" - run the rule as an error +* "off" - disables the rule + +Ex: `"require-author": "error"` + +### .npmpackagejsonlintrc.json file + +Please see [.npmpackagejsonlintrc.json](rcfile-example.md) file. + +### Shareable config +v2 added support for shareable npm-package-json-lint config! If you would like to use your .npmpackagejsonlintrc.json file in multiple projects you can create a npm module that exports your config. + +#### How to create shared config +Create a new npm module that exports the desired npm-package-json-lint configuration. The module name must start with `npm-package-json-lint-config-`. Add the desired configuration to the index.js file. + +``` +const config = { + 'rules': { + 'require-name': 'error' + } +}; + +module.exports = config; +``` + +For a complete example, please see [npm-package-json-lint-config-default](https://github.com/tclindner/npm-package-json-lint-config-default) + +#### How to publish a shared config module +Follow these instructions for [publishing to npm](https://docs.npmjs.com/getting-started/publishing-npm-packages). Please add the following keywords for discoverability, `npm-package-json-lint`, `npm-package-json-lintconfig`, and `npm-package-json-lint-config`. + +Please also add a dependency on npm-package-json-lint using [peerdependencies](https://docs.npmjs.com/files/package.json#peerdependencies). Example + +``` +peerDependencies: { + "npm-package-json-lint": ">= 2" +} +``` + +#### How to use a shared config module +Add the following to your `.npmpackagejsonlintrc.json` file. + +``` +{ + "extends": "npm-package-json-lint-config-default" +} +``` + +`npm-package-json-lint-config-default` can be replaced by the name of the shared module you are using. + +## Require node rules + +> Generates an error if node is missing from package.json file + +* [require-author](rules/required-node/require-author.md) +* [require-bin](rules/required-node/require-bin.md) +* [require-bugs](rules/required-node/require-bugs.md) +* [require-bundledDependencies](rules/required-node/require-bundledDependencies.md) +* [require-config](rules/required-node/require-config.md) +* [require-contributors](rules/required-node/require-contributors.md) +* [require-cpu](rules/required-node/require-cpu.md) +* [require-dependencies](rules/required-node/require-dependencies.md) +* [require-description](rules/required-node/require-description.md) +* [require-devDependencies](rules/required-node/require-devDependencies.md) +* [require-directories](rules/required-node/require-directories.md) +* [require-engines](rules/required-node/require-engines.md) +* [require-files](rules/required-node/require-files.md) +* [require-homepage](rules/required-node/require-homepage.md) +* [require-keywords](rules/required-node/require-keywords.md) +* [require-license](rules/required-node/require-license.md) +* [require-main](rules/required-node/require-main.md) +* [require-man](rules/required-node/require-man.md) +* [require-module](rules/required-node/require-module.md) +* [require-name](rules/required-node/require-name.md) +* [require-optionalDependencies](rules/required-node/require-optionalDependencies.md) +* [require-os](rules/required-node/require-os.md) +* [require-peerDependencies](rules/required-node/require-peerDependencies.md) +* [require-preferGlobal](rules/required-node/require-preferGlobal.md) +* [require-private](rules/required-node/require-private.md) +* [require-publishConfig](rules/required-node/require-publishConfig.md) +* [require-repository-directory](rules/required-node/require-repository-directory.md) +* [require-repository](rules/required-node/require-repository.md) +* [require-scripts](rules/required-node/require-scripts.md) +* [require-types](rules/required-node/require-types.md) +* [require-typings](rules/required-node/require-typings.md) +* [require-version](rules/required-node/require-version.md) + +## Type rules + +> Generates an error if node's value doesn't have the correct data type + +* [bin-type](rules/type/bin-type.md) +* [bundledDependencies-type](rules/type/bundledDependencies-type.md) +* [config-type](rules/type/config-type.md) +* [cpu-type](rules/type/cpu-type.md) +* [dependencies-type](rules/type/dependencies-type.md) +* [description-type](rules/type/description-type.md) +* [devDependencies-type](rules/type/devDependencies-type.md) +* [directories-type](rules/type/directories-type.md) +* [engines-type](rules/type/engines-type.md) +* [files-type](rules/type/files-type.md) +* [homepage-type](rules/type/homepage-type.md) +* [keywords-type](rules/type/keywords-type.md) +* [license-type](rules/type/license-type.md) +* [main-type](rules/type/main-type.md) +* [man-type](rules/type/man-type.md) +* [name-type](rules/type/name-type.md) +* [optionalDependencies-type](rules/type/optionalDependencies-type.md) +* [os-type](rules/type/os-type.md) +* [peerDependencies-type](rules/type/peerDependencies-type.md) +* [preferGlobal-type](rules/type/preferGlobal-type.md) +* [private-type](rules/type/private-type.md) +* [repository-type](rules/type/repository-type.md) +* [scripts-type](rules/type/scripts-type.md) +* [version-type](rules/type/version-type.md) + + +## Valid value rules + +> Generates an error if node's value doesn't match one of the values in the supplied array + +* [valid-values-author](rules/valid-values/valid-values-author.md) +* [valid-values-engines](rules/valid-values/valid-values-engines.md) +* [valid-values-license](rules/valid-values/valid-values-license.md) +* [valid-values-name-scope](rules/valid-values/valid-values-name-scope.md) +* [valid-values-private](rules/valid-values/valid-values-private.md) +* [valid-values-publishConfig](rules/valid-values/valid-values-publishConfig.md) + +## Dependency rules + +> Generates an error if dependencies fail to meet the rules requirements + +* dependencies + * [no-absolute-version-dependencies](rules/dependencies/no-absolute-version-dependencies.md) + * [no-caret-version-dependencies](rules/dependencies/no-caret-version-dependencies.md) + * [no-restricted-dependencies](rules/dependencies/no-restricted-dependencies.md) + * [no-restricted-pre-release-dependencies](rules/dependencies/no-restricted-pre-release-dependencies.md) + * [no-tilde-version-dependencies](rules/dependencies/no-tilde-version-dependencies.md) + * [prefer-absolute-version-dependencies](rules/dependencies/prefer-absolute-version-dependencies.md) + * [prefer-alphabetical-dependencies](rules/dependencies/prefer-alphabetical-dependencies.md) + * [prefer-caret-version-dependencies](rules/dependencies/prefer-caret-version-dependencies.md) + * [prefer-tilde-version-dependencies](rules/dependencies/prefer-tilde-version-dependencies.md) +* devDependencies + * [no-absolute-version-devDependencies](rules/dependencies/no-absolute-version-devDependencies.md) + * [no-caret-version-devDependencies](rules/dependencies/no-caret-version-devDependencies.md) + * [no-restricted-devDependencies](rules/dependencies/no-restricted-devDependencies.md) + * [no-restricted-pre-release-devDependencies](rules/dependencies/no-restricted-pre-release-devDependencies.md) + * [no-tilde-version-devDependencies](rules/dependencies/no-tilde-version-devDependencies.md) + * [prefer-no-version-zero-devDependencies](rules/dependencies/prefer-no-version-zero-devDependencies.md) + * [prefer-absolute-version-devDependencies](rules/dependencies/prefer-absolute-version-devDependencies.md) + * [prefer-alphabetical-devDependencies](rules/dependencies/prefer-alphabetical-devDependencies.md) + * [prefer-caret-version-devDependencies](rules/dependencies/prefer-caret-version-devDependencies.md) + * [prefer-no-version-zero-devDependencies](rules/dependencies/prefer-no-version-zero-devDependencies.md) + * [prefer-tilde-version-devDependencies](rules/dependencies/prefer-tilde-version-devDependencies.md) +* bundledDependencies + * [prefer-alphabetical-bundledDependencies](rules/dependencies/prefer-alphabetical-bundledDependencies.md) +* optionalDependencies + * [prefer-alphabetical-optionalDependencies](rules/dependencies/prefer-alphabetical-optionalDependencies.md) +* peerDependencies + * [prefer-alphabetical-peerDependencies](rules/dependencies/prefer-alphabetical-peerDependencies.md) + +## Format rules + +> Generates an error if node's value fails to meet the format requirements + +* [description-format](rules/format/description-format.md) +* [name-format](rules/format/name-format.md) +* [version-format](rules/format/version-format.md) + + +## Package.json property rules + +> Generates an error if the package.json properties fail to meet the desired requirements + +* [prefer-property-order](rules/package-json-properties/prefer-property-order.md) + + +## Disallowed node rules + +> Generates an error if the node is present + +* [prefer-no-engineStrict](rules/disallowed-nodes/prefer-no-engineStrict) +* [prefer-no-devDependencies](rules/disallowed-nodes/prefer-no-devDependencies) diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-dependencies.md new file mode 100644 index 00000000..6bef8e75 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-dependencies.md @@ -0,0 +1,105 @@ +--- +id: version-4.0.0-no-absolute-version-dependencies +title: no-absolute-version-dependencies +original_id: no-absolute-version-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` uses absolute versions. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-absolute-version-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "no-absolute-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "=0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": ">=0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "<=0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "*" + } +} +``` + +## Shorthand for disabling the rule in .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-absolute-version-dependencies": "off" + } +} +``` + +## History + +* Introduced in version 3.2.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-devDependencies.md new file mode 100644 index 00000000..e0f12f3b --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/no-absolute-version-devDependencies.md @@ -0,0 +1,105 @@ +--- +id: version-4.0.0-no-absolute-version-devDependencies +title: no-absolute-version-devDependencies +original_id: no-absolute-version-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` uses absolute versions. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-absolute-version-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "no-absolute-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "=0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": ">=0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "<=0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "*" + } +} +``` + +## Shorthand for disabling the rule in .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-absolute-version-devDependencies": "off" + } +} +``` + +## History + +* Introduced in version 3.2.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-dependencies.md new file mode 100644 index 00000000..04cbaff3 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-dependencies.md @@ -0,0 +1,105 @@ +--- +id: version-4.0.0-no-caret-version-dependencies +title: no-caret-version-dependencies +original_id: no-caret-version-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` uses caret versions. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-caret-version-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "no-caret-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": ">=0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "<=0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "*" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "=0.3.0" + } +} +``` + +## Shorthand for disabling the rule in .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-caret-version-dependencies": "off" + } +} +``` + +## History + +* Introduced in version 3.2.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-devDependencies.md new file mode 100644 index 00000000..515cb4a7 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/no-caret-version-devDependencies.md @@ -0,0 +1,105 @@ +--- +id: version-4.0.0-no-caret-version-devDependencies +title: no-caret-version-devDependencies +original_id: no-caret-version-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` uses caret versions. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-caret-version-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "no-caret-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": ">=0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "<=0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "*" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "=0.3.0" + } +} +``` + +## Shorthand for disabling the rule in .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-caret-version-devDependencies": "off" + } +} +``` + +## History + +* Introduced in version 3.2.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-dependencies.md new file mode 100644 index 00000000..42d997bf --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-dependencies.md @@ -0,0 +1,105 @@ +--- +id: version-4.0.0-no-tilde-version-dependencies +title: no-tilde-version-dependencies +original_id: no-tilde-version-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` uses tilde versions. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-tilde-version-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "no-tilde-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": ">=0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "<=0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "*" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "=0.3.0" + } +} +``` + +## Shorthand for disabling the rule in .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-tilde-version-dependencies": "off" + } +} +``` + +## History + +* Introduced in version 3.2.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-devDependencies.md new file mode 100644 index 00000000..5b976a1a --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/no-tilde-version-devDependencies.md @@ -0,0 +1,105 @@ +--- +id: version-4.0.0-no-tilde-version-devDependencies +title: no-tilde-version-devDependencies +original_id: no-tilde-version-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` uses tilde versions. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-tilde-version-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "no-tilde-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": ">=0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "<=0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "*" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "=0.3.0" + } +} +``` + +## Shorthand for disabling the rule in .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "no-tilde-version-devDependencies": "off" + } +} +``` + +## History + +* Introduced in version 3.2.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-dependencies.md new file mode 100644 index 00000000..940bc749 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-dependencies.md @@ -0,0 +1,101 @@ +--- +id: version-4.0.0-prefer-absolute-version-dependencies +title: prefer-absolute-version-dependencies +original_id: prefer-absolute-version-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` is does not use an absolute version range. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-absolute-version-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-absolute-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "~0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "0.3.*" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": ">0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "<0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "=0.3.0" + } +} +``` + +## Related + +* [prefer-caret-version-dependencies](prefer-caret-version-dependencies.md) +* [prefer-tilde-version-dependencies](prefer-tilde-version-dependencies.md) + +## History + +* Enhanced in version 2.5.0. No longer requires the version to be prefixed with an equals sign, = +* Introduced in version 2.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-devDependencies.md new file mode 100644 index 00000000..88e90c64 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-absolute-version-devDependencies.md @@ -0,0 +1,101 @@ +--- +id: version-4.0.0-prefer-absolute-version-devDependencies +title: prefer-absolute-version-devDependencies +original_id: prefer-absolute-version-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` is does not use an absolute version range. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-absolute-version-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-absolute-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "~0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "0.3.*" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": ">0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "<0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "0.3.0" + } +} +``` + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "=0.3.0" + } +} +``` + +## Related + +* [prefer-caret-version-devDependencies](prefer-caret-version-devDependencies.md) +* [prefer-tilde-version-devDependencies](prefer-tilde-version-devDependencies.md) + +## History + +* Enhanced in version 2.5.0. No longer requires the version to be prefixed with an equals sign, = +* Introduced in version 2.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-dependencies.md new file mode 100644 index 00000000..c1fb6636 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-dependencies.md @@ -0,0 +1,60 @@ +--- +id: version-4.0.0-prefer-caret-version-dependencies +title: prefer-caret-version-dependencies +original_id: prefer-caret-version-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` is does not use a caret version range. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-caret-version-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-caret-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "~0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +## Related + +* [prefer-absolute-version-dependencies](prefer-absolute-version-dependencies.md) +* [prefer-tilde-version-dependencies](prefer-tilde-version-dependencies.md) + +## History + +* Introduced in version 0.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-devDependencies.md new file mode 100644 index 00000000..7c9b0d41 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-caret-version-devDependencies.md @@ -0,0 +1,60 @@ +--- +id: version-4.0.0-prefer-caret-version-devDependencies +title: prefer-caret-version-devDependencies +original_id: prefer-caret-version-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` is does not use a caret version range. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-caret-version-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-caret-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "~0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^0.3.0" + } +} +``` + +## Related + +* [prefer-absolute-version-devDependencies](prefer-absolute-version-devDependencies.md) +* [prefer-tilde-version-devDependencies](prefer-tilde-version-devDependencies.md) + +## History + +* Introduced in version 0.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-dependencies.md new file mode 100644 index 00000000..cabafa60 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-dependencies.md @@ -0,0 +1,55 @@ +--- +id: version-4.0.0-prefer-no-version-zero-dependencies +title: prefer-no-version-zero-dependencies +original_id: prefer-no-version-zero-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` has a major version of 0. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-version-zero-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-no-version-zero-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^1.0.0" + } +} +``` + +## History + +* Introduced in version 0.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-devDependencies.md new file mode 100644 index 00000000..6cf0777a --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-no-version-zero-devDependencies.md @@ -0,0 +1,55 @@ +--- +id: version-4.0.0-prefer-no-version-zero-devDependencies +title: prefer-no-version-zero-devDependencies +original_id: prefer-no-version-zero-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` has a major version of 0. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-version-zero-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-no-version-zero-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "^1.0.0" + } +} +``` + +## History + +* Introduced in version 0.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-dependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-dependencies.md new file mode 100644 index 00000000..8b4a007f --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-dependencies.md @@ -0,0 +1,60 @@ +--- +id: version-4.0.0-prefer-tilde-version-dependencies +title: prefer-tilde-version-dependencies +original_id: prefer-tilde-version-dependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `dependencies` is does not use a tilde version range. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-tilde-version-dependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-tilde-version-dependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "dependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "dependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +## Related + +* [prefer-absolute-version-dependencies](prefer-absolute-version-dependencies.md) +* [prefer-caret-version-dependencies](prefer-caret-version-dependencies.md) + +## History + +* Introduced in version 0.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-devDependencies.md new file mode 100644 index 00000000..ed72a771 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/dependencies/prefer-tilde-version-devDependencies.md @@ -0,0 +1,60 @@ +--- +id: version-4.0.0-prefer-tilde-version-devDependencies +title: prefer-tilde-version-devDependencies +original_id: prefer-tilde-version-devDependencies +--- + +Enabling this rule will result in an error being generated if one of the dependencies in `devDependencies` is does not use a tilde version range. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-tilde-version-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-tilde-version-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": { + "grunt-npm-package-json-lint": "^0.3.0" + } +} +``` + +### *Correct* example(s) + +```json +{ + "devDependencies": { + "gulp-npm-package-json-lint": "~0.3.0" + } +} +``` + +## Related + +* [prefer-absolute-version-devDependencies](prefer-absolute-version-devDependencies.md) +* [prefer-caret-version-devDependencies](prefer-caret-version-devDependencies.md) + +## History + +* Introduced in version 0.4.0 diff --git a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md new file mode 100644 index 00000000..4db24267 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-devDependencies.md @@ -0,0 +1,52 @@ +--- +id: version-4.0.0-prefer-no-devDependencies +title: prefer-no-devDependencies +original_id: prefer-no-devDependencies +--- + +Enabling this rule will result in an error being generated if `devDependencies` is present. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-devDependencies": "error" + } +} +``` + +With exceptions + +```json +{ + "rules": { + "prefer-no-devDependencies": ["error", { + "exceptions": ["myModule"] + }] + } +} +``` + + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "devDependencies": "dummy-value" +} +``` + +### *Correct* example(s) + +```json +{ + "prefer-no-devDependencies": "error" +} +``` + +## History + +* Introduced in version 4.0.0 diff --git a/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md new file mode 100644 index 00000000..697cafd6 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/disallowed-nodes/prefer-no-engineStrict.md @@ -0,0 +1,39 @@ +--- +id: version-4.0.0-prefer-no-engineStrict +title: prefer-no-engineStrict +original_id: prefer-no-engineStrict +--- + +Enabling this rule will result in an error being generated if `engineStrict` is present. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "prefer-no-engineStrict": "error" + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + "engineStrict": "dummy-value" +} +``` + +### *Correct* example(s) + +```json +{ + +} +``` + +## History + +* Introduced in version 1.3.0 diff --git a/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md b/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md new file mode 100644 index 00000000..7d167f95 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/rules/required-node/require-license.md @@ -0,0 +1,40 @@ +--- +id: version-4.0.0-require-license +title: require-license +original_id: require-license +--- + +Enabling this rule will result in an error being generated if `license` field is missing from the `package.json` file. + +## Example .npmpackagejsonlintrc configuration + +```json +{ + "rules": { + "require-license": "error" + } +} +``` + +## Rule Details + +### *Incorrect* example(s) + +```json +{ + +} +``` + +### *Correct* example(s) + +```json +{ + "license": "MIT" +} +``` + +## History + +* Renamed from license-required to require-license in version 1.0.0 +* Introduced in version 0.1.0 diff --git a/website/versioned_docs/version-4.0.0/v3-to-v4.md b/website/versioned_docs/version-4.0.0/v3-to-v4.md new file mode 100644 index 00000000..ce538216 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/v3-to-v4.md @@ -0,0 +1,17 @@ +--- +id: version-4.0.0-v3-to-v4 +title: v3 to v4 Migration Guide +original_id: v3-to-v4 +--- + +v4.0.0 Migration Guide + +> FYI: v4 drops support for Node 6 and 7. If you need support for versions of Node that have reached EOL, please use v3. + +## Node.js API + +There is a new [Node.js API](api.md) available. Please see the docs. + +## Additional changes + +Please see the [release notes](https://github.com/tclindner/npm-package-json-lint/releases/tag/v4.0.0) for additional changes introduced in v4.0.0. diff --git a/website/versioned_docs/version-4.0.0/why.md b/website/versioned_docs/version-4.0.0/why.md new file mode 100644 index 00000000..3128cb44 --- /dev/null +++ b/website/versioned_docs/version-4.0.0/why.md @@ -0,0 +1,62 @@ +--- +id: version-4.0.0-why +title: Why npm-package-json-lint? +original_id: why +--- + +## Building and enforcing a style guide + +By far the biggest reason for adopting Prettier is to stop all the on-going debates over styles. [It is generally accepted that having a common style guide is valuable for a project and team](https://www.smashingmagazine.com/2012/10/why-coding-style-matters/) but getting there is a very painful and unrewarding process. People get very emotional around particular ways of writing code and nobody likes spending time writing and receiving nits. + +So why choose the "Prettier style guide" over any other random style guide? Because Prettier is the only "style guide" that is fully automatic. Even if Prettier does not format all code 100% the way you'd like, it's worth the "sacrifice" given the unique benefits of Prettier, don't you think? + +- “We want to free mental threads and end discussions around style. While sometimes fruitful, these discussions are for the most part wasteful.” +- “Literally had an engineer go through a huge effort of cleaning up all of our code because we were debating ternary style for the longest time and were inconsistent about it. It was dumb, but it was a weird on-going "great debate" that wasted lots of little back and forth bits. It's far easier for us all to agree now: just run Prettier, and go with that style.” +- “Getting tired telling people how to style their product code.” +- “Our top reason was to stop wasting our time debating style nits.” +- “Having a githook set up has reduced the amount of style issues in PRs that result in broken builds due to ESLint rules or things I have to nit-pick or clean up later.” +- “I don't want anybody to nitpick any other person ever again.” +- “It reminds me of how Steve Jobs used to wear the same clothes every day because he has a million decisions to make and he didn't want to be bothered to make trivial ones like picking out clothes. I think Prettier is like that.” + +## Helping Newcomers + +Prettier is usually introduced by people with experience in the current codebase and JavaScript but the people that disproportionally benefit from it are newcomers to the codebase. One may think that it's only useful for people with very limited programming experience, but we've seen it quicken the ramp up time from experienced engineers joining the company, as they likely used a different coding style before, and developers coming from a different programming language. + +- “My motivations for using Prettier are: appearing that I know how to write JavaScript well.” +- “I always put spaces in the wrong place, now I don't have to worry about it anymore.” +- “When you're a beginner you're making a lot of mistakes caused by the syntax. Thanks to Prettier, you can reduce these mistakes and save a lot of time to focus on what really matters.” +- “As a teacher, I will also tell to my students to install Prettier to help them to learn the JS syntax and have readable files.” + +## Writing code + +What usually happens once people are using Prettier is that they realize that they actually spend a lot of time and mental energy formatting their code. With Prettier editor integration, you can just press that magic key binding and poof, the code is formatted. This is an eye opening experience if anything else. + +- “I want to write code. Not spend cycles on formatting.” +- “It removed 5% that sucks in our daily life - aka formatting” +- “We're in 2017 and it's still painful to break a call into multiple lines when you happen to add an argument that makes it go over the 80 columns limit :(“ + +## Easy to adopt + +We've worked very hard to use the least controversial coding styles, went through many rounds of fixing all the edge cases and polished the getting started experience. When you're ready to push Prettier into your codebase, not only should it be painless for you to do it technically but the newly formatted codebase should not generate major controversy and be accepted painlessly by your co-workers. + +- “It's low overhead. We were able to throw Prettier at very different kinds of repos without much work.” +- “It's been mostly bug free. Had there been major styling issues during the course of implementation we would have been wary about throwing this at our JS codebase. I'm happy to say that's not the case.” +- “Everyone runs it as part of their pre commit scripts, a couple of us use the editor on save extensions as well.” +- “It's fast, against one of our larger JS codebases we were able to run Prettier in under 13 seconds.” +- “The biggest benefit for Prettier for us was being able to format the entire code base at once.” + +## Clean up an existing codebase + +Since coming up with a coding style and enforcing it is a big undertaking, it often slips through the cracks and you are left working on inconsistent codebases. Running Prettier in this case is a quick win, the codebase is now uniform and easier to read without spending hardly any time. + +- “Take a look at the code :) I just need to restore sanity.” +- “We inherited a ~2000 module ES6 code base, developed by 20 different developers over 18 months, in a global team. Felt like such a win without much research.” + +## Ride the hype train + +Purely technical aspects of the projects aren't the only thing people look into when choosing to adopt Prettier. Who built and uses it and how quickly it spreads through the community has a non-trivial impact. + +- “The amazing thing, for me, is: 1) Announced 2 months ago. 2) Already adopted by, it seems, every major JS project. 3) 7000 stars, 100,000 npm downloads/mo” +- “Was built by the same people as React & React Native.” +- “I like to be part of the hot new things.” +- “Because soon enough people are gonna ask for it.” diff --git a/website/versions.json b/website/versions.json index f4198b3e..32c01f9f 100644 --- a/website/versions.json +++ b/website/versions.json @@ -1,3 +1,4 @@ [ + "4.0.0", "3.7.0" ] From 52780a28d3b8d4a176b9fe694af5fafbefdeecbf Mon Sep 17 00:00:00 2001 From: tclindner Date: Sun, 6 Oct 2019 12:40:45 -0500 Subject: [PATCH 8/8] Delete why.md --- website/versioned_docs/version-4.0.0/why.md | 62 --------------------- 1 file changed, 62 deletions(-) delete mode 100644 website/versioned_docs/version-4.0.0/why.md diff --git a/website/versioned_docs/version-4.0.0/why.md b/website/versioned_docs/version-4.0.0/why.md deleted file mode 100644 index 3128cb44..00000000 --- a/website/versioned_docs/version-4.0.0/why.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: version-4.0.0-why -title: Why npm-package-json-lint? -original_id: why ---- - -## Building and enforcing a style guide - -By far the biggest reason for adopting Prettier is to stop all the on-going debates over styles. [It is generally accepted that having a common style guide is valuable for a project and team](https://www.smashingmagazine.com/2012/10/why-coding-style-matters/) but getting there is a very painful and unrewarding process. People get very emotional around particular ways of writing code and nobody likes spending time writing and receiving nits. - -So why choose the "Prettier style guide" over any other random style guide? Because Prettier is the only "style guide" that is fully automatic. Even if Prettier does not format all code 100% the way you'd like, it's worth the "sacrifice" given the unique benefits of Prettier, don't you think? - -- “We want to free mental threads and end discussions around style. While sometimes fruitful, these discussions are for the most part wasteful.” -- “Literally had an engineer go through a huge effort of cleaning up all of our code because we were debating ternary style for the longest time and were inconsistent about it. It was dumb, but it was a weird on-going "great debate" that wasted lots of little back and forth bits. It's far easier for us all to agree now: just run Prettier, and go with that style.” -- “Getting tired telling people how to style their product code.” -- “Our top reason was to stop wasting our time debating style nits.” -- “Having a githook set up has reduced the amount of style issues in PRs that result in broken builds due to ESLint rules or things I have to nit-pick or clean up later.” -- “I don't want anybody to nitpick any other person ever again.” -- “It reminds me of how Steve Jobs used to wear the same clothes every day because he has a million decisions to make and he didn't want to be bothered to make trivial ones like picking out clothes. I think Prettier is like that.” - -## Helping Newcomers - -Prettier is usually introduced by people with experience in the current codebase and JavaScript but the people that disproportionally benefit from it are newcomers to the codebase. One may think that it's only useful for people with very limited programming experience, but we've seen it quicken the ramp up time from experienced engineers joining the company, as they likely used a different coding style before, and developers coming from a different programming language. - -- “My motivations for using Prettier are: appearing that I know how to write JavaScript well.” -- “I always put spaces in the wrong place, now I don't have to worry about it anymore.” -- “When you're a beginner you're making a lot of mistakes caused by the syntax. Thanks to Prettier, you can reduce these mistakes and save a lot of time to focus on what really matters.” -- “As a teacher, I will also tell to my students to install Prettier to help them to learn the JS syntax and have readable files.” - -## Writing code - -What usually happens once people are using Prettier is that they realize that they actually spend a lot of time and mental energy formatting their code. With Prettier editor integration, you can just press that magic key binding and poof, the code is formatted. This is an eye opening experience if anything else. - -- “I want to write code. Not spend cycles on formatting.” -- “It removed 5% that sucks in our daily life - aka formatting” -- “We're in 2017 and it's still painful to break a call into multiple lines when you happen to add an argument that makes it go over the 80 columns limit :(“ - -## Easy to adopt - -We've worked very hard to use the least controversial coding styles, went through many rounds of fixing all the edge cases and polished the getting started experience. When you're ready to push Prettier into your codebase, not only should it be painless for you to do it technically but the newly formatted codebase should not generate major controversy and be accepted painlessly by your co-workers. - -- “It's low overhead. We were able to throw Prettier at very different kinds of repos without much work.” -- “It's been mostly bug free. Had there been major styling issues during the course of implementation we would have been wary about throwing this at our JS codebase. I'm happy to say that's not the case.” -- “Everyone runs it as part of their pre commit scripts, a couple of us use the editor on save extensions as well.” -- “It's fast, against one of our larger JS codebases we were able to run Prettier in under 13 seconds.” -- “The biggest benefit for Prettier for us was being able to format the entire code base at once.” - -## Clean up an existing codebase - -Since coming up with a coding style and enforcing it is a big undertaking, it often slips through the cracks and you are left working on inconsistent codebases. Running Prettier in this case is a quick win, the codebase is now uniform and easier to read without spending hardly any time. - -- “Take a look at the code :) I just need to restore sanity.” -- “We inherited a ~2000 module ES6 code base, developed by 20 different developers over 18 months, in a global team. Felt like such a win without much research.” - -## Ride the hype train - -Purely technical aspects of the projects aren't the only thing people look into when choosing to adopt Prettier. Who built and uses it and how quickly it spreads through the community has a non-trivial impact. - -- “The amazing thing, for me, is: 1) Announced 2 months ago. 2) Already adopted by, it seems, every major JS project. 3) 7000 stars, 100,000 npm downloads/mo” -- “Was built by the same people as React & React Native.” -- “I like to be part of the hot new things.” -- “Because soon enough people are gonna ask for it.”