diff --git a/.eslintignore b/.eslintignore
index 2e8da9b..128891f 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,4 +1,3 @@
tmp
node_modules
-tests
**/*.js
diff --git a/.eslintrc b/.eslintrc
index b802044..81eb5c0 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,259 +1,259 @@
{
- "env": {
- "es6": true,
- "node": true
- },
- "extends": [
- "plugin:@typescript-eslint/eslint-recommended",
- "plugin:@typescript-eslint/recommended",
- "prettier",
- "prettier/@typescript-eslint"
+ "env": {
+ "es6": true,
+ "node": true
+ },
+ "extends": [
+ "plugin:@typescript-eslint/eslint-recommended",
+ "plugin:@typescript-eslint/recommended",
+ "prettier",
+ "prettier/@typescript-eslint"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "ecmaVersion": 2018,
+ "project": "tsconfig.json",
+ "sourceType": "module"
+ },
+ "plugins": ["@typescript-eslint", "import"],
+ "rules": {
+ "no-unused-vars": "off",
+ "no-dupe-class-members": "off",
+ "@typescript-eslint/await-thenable": "error",
+ "@typescript-eslint/no-for-in-array": "error",
+ "@typescript-eslint/no-misused-promises": "error",
+ "@typescript-eslint/prefer-includes": "error",
+ "@typescript-eslint/prefer-regexp-exec": "error",
+ "@typescript-eslint/prefer-string-starts-ends-with": "error",
+ "@typescript-eslint/unbound-method": "error",
+ "prefer-rest-params": "error",
+ "prefer-spread": "error",
+ "@typescript-eslint/adjacent-overload-signatures": "error",
+ "@typescript-eslint/array-type": "off",
+ "@typescript-eslint/ban-types": "off",
+ "@typescript-eslint/naming-convention": [
+ "error",
+ {
+ "selector": "default",
+ "format": ["camelCase"],
+ "leadingUnderscore": "forbid",
+ "trailingUnderscore": "forbid"
+ },
+ {
+ "selector": "variableLike",
+ "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"]
+ },
+ {
+ "selector": "memberLike",
+ "format": ["UPPER_CASE", "camelCase"],
+ "leadingUnderscore": "forbid"
+ },
+ {
+ "selector": "memberLike",
+ "modifiers": ["static"],
+ "format": ["UPPER_CASE", "camelCase", "PascalCase"],
+ "leadingUnderscore": "forbid"
+ },
+ {
+ "selector": "memberLike",
+ "modifiers": ["private"],
+ "format": ["camelCase", "UPPER_CASE"],
+ "leadingUnderscore": "allow"
+ },
+ {
+ "selector": "typeLike",
+ "format": ["PascalCase"]
+ },
+ {
+ "selector": "enumMember",
+ "format": ["UPPER_CASE"]
+ },
+ {
+ "selector": "function",
+ "format": ["camelCase", "PascalCase"]
+ },
+ {
+ "selector": "property",
+ "modifiers": ["public"],
+ "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"],
+ "leadingUnderscore": "allow"
+ },
+ {
+ "selector": "parameter",
+ "format": ["camelCase"],
+ "leadingUnderscore": "allow"
+ }
],
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaVersion": 2018,
- "project": "tsconfig.json",
- "sourceType": "module"
- },
- "plugins": ["@typescript-eslint", "import"],
- "rules": {
- "no-unused-vars": "off",
- "no-dupe-class-members": "off",
- "@typescript-eslint/await-thenable": "error",
- "@typescript-eslint/no-for-in-array": "error",
- "@typescript-eslint/no-misused-promises": "error",
- "@typescript-eslint/prefer-includes": "error",
- "@typescript-eslint/prefer-regexp-exec": "error",
- "@typescript-eslint/prefer-string-starts-ends-with": "error",
- "@typescript-eslint/unbound-method": "error",
- "prefer-rest-params": "error",
- "prefer-spread": "error",
- "@typescript-eslint/adjacent-overload-signatures": "error",
- "@typescript-eslint/array-type": "off",
- "@typescript-eslint/ban-types": "off",
- "@typescript-eslint/naming-convention": [
- "error",
- {
- "selector": "default",
- "format": ["camelCase"],
- "leadingUnderscore": "forbid",
- "trailingUnderscore": "forbid"
- },
- {
- "selector": "variableLike",
- "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"]
- },
- {
- "selector": "memberLike",
- "format": ["UPPER_CASE", "camelCase"],
- "leadingUnderscore": "forbid"
- },
- {
- "selector": "memberLike",
- "modifiers": ["static"],
- "format": ["UPPER_CASE", "camelCase", "PascalCase"],
- "leadingUnderscore": "forbid"
- },
- {
- "selector": "memberLike",
- "modifiers": ["private"],
- "format": ["camelCase", "UPPER_CASE"],
- "leadingUnderscore": "allow"
- },
- {
- "selector": "typeLike",
- "format": ["PascalCase"]
- },
- {
- "selector": "enumMember",
- "format": ["UPPER_CASE"]
- },
- {
- "selector": "function",
- "format": ["camelCase", "PascalCase"]
- },
- {
- "selector": "property",
- "modifiers": ["public"],
- "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"],
- "leadingUnderscore": "allow"
- },
- {
- "selector": "parameter",
- "format": ["camelCase"],
- "leadingUnderscore": "allow"
- }
- ],
- "@typescript-eslint/explicit-member-accessibility": [
- "off",
- {
- "overrides": {
- "constructors": "no-public",
- "accessors": "no-public"
- }
- }
- ],
- "@typescript-eslint/indent": "off",
- "@typescript-eslint/member-delimiter-style": [
- "error",
- {
- "multiline": {
- "delimiter": "semi",
- "requireLast": true
- },
- "singleline": {
- "delimiter": "semi",
- "requireLast": false
- }
- }
- ],
- "@typescript-eslint/member-ordering": [
- "error",
- {
- "default": [
- "public-static-field",
- "protected-static-field",
- "private-static-field",
- "public-instance-field",
- "protected-instance-field",
- "private-instance-field",
- "constructor",
- "public-static-method",
- "protected-static-method",
- "private-static-method",
- "public-abstract-method",
- "protected-abstract-method",
- "private-abstract-method",
- "public-instance-method",
- "protected-instance-method",
- "private-instance-method"
- ]
- }
- ],
- "@typescript-eslint/consistent-type-assertions": "error",
- "@typescript-eslint/no-empty-function": "off",
- "@typescript-eslint/no-empty-interface": "off",
- "@typescript-eslint/no-explicit-any": "off",
- "@typescript-eslint/no-floating-promises": "error",
- "@typescript-eslint/no-inferrable-types": [
- "error",
- {
- "ignoreParameters": true,
- "ignoreProperties": true
- }
- ],
- "@typescript-eslint/no-misused-new": "error",
- "@typescript-eslint/typedef": "off",
- "@typescript-eslint/no-namespace": "error",
- "@typescript-eslint/no-non-null-assertion": "off",
- "@typescript-eslint/no-parameter-properties": "off",
- "no-use-before-define": "error",
- "@typescript-eslint/no-var-requires": "error",
- "@typescript-eslint/prefer-for-of": "error",
- "@typescript-eslint/triple-slash-reference": "error",
- "@typescript-eslint/prefer-function-type": "error",
- "@typescript-eslint/prefer-namespace-keyword": "error",
- "no-useless-escape": "error",
- "quotes": "off",
- "@typescript-eslint/quotes": [
- "error",
- "single",
- {
- "avoidEscape": true,
- "allowTemplateLiterals": true
- }
- ],
- "@typescript-eslint/restrict-plus-operands": "error",
- "@typescript-eslint/semi": ["error", "always"],
- "@typescript-eslint/type-annotation-spacing": "error",
- "@typescript-eslint/unified-signatures": "error",
- "arrow-body-style": "error",
- "arrow-parens": ["error", "always"],
- "camelcase": "off",
- "max-depth": [
- "error",
- {
- "max": 2
- }
- ],
- "complexity": [
- "error",
- {
- "max": 10
- }
- ],
- "constructor-super": "error",
- "curly": "error",
- "dot-notation": "off",
- "eqeqeq": ["error", "smart"],
- "guard-for-in": "error",
- "id-blacklist": "off",
- "id-match": "off",
- "import/order": [
- "error",
- {
- "groups": [
- "index",
- ["sibling", "parent"],
- "internal",
- "external",
- "builtin"
- ]
- }
- ],
- "max-classes-per-file": ["error", 1],
- "new-parens": "error",
- "no-bitwise": "error",
- "no-caller": "error",
- "no-cond-assign": "error",
- "no-console": "error",
- "no-debugger": "error",
- "no-empty": "error",
- "no-eval": "error",
- "no-fallthrough": "error",
- "no-invalid-this": "error",
- "no-multiple-empty-lines": "error",
- "no-new-wrappers": "error",
- "no-restricted-syntax": ["error", "ForInStatement"],
- "no-shadow": [
- "error",
- {
- "hoist": "all"
- }
- ],
- "no-throw-literal": "error",
- "no-trailing-spaces": "error",
- "no-undef-init": "error",
- "no-underscore-dangle": "off",
- "no-unsafe-finally": "error",
- "no-unused-expressions": "error",
- "no-unused-labels": "error",
- "no-var": "error",
- "object-shorthand": "error",
- "one-var": ["error", "never"],
- "padding-line-between-statements": [
- "error",
- {
- "blankLine": "always",
- "prev": "*",
- "next": "return"
- }
- ],
- "prefer-arrow-callback": "error",
- "prefer-const": "error",
- "brace-style": "error",
- "quote-props": ["error", "consistent-as-needed"],
- "radix": "error",
- "space-before-function-paren": [
- "error",
- {
- "anonymous": "never",
- "asyncArrow": "always",
- "named": "never"
- }
- ],
- "eol-last": ["error", "always"],
- "use-isnan": "error",
- "valid-typeof": "error"
- }
+ "@typescript-eslint/explicit-member-accessibility": [
+ "off",
+ {
+ "overrides": {
+ "constructors": "no-public",
+ "accessors": "no-public"
+ }
+ }
+ ],
+ "@typescript-eslint/indent": "off",
+ "@typescript-eslint/member-delimiter-style": [
+ "error",
+ {
+ "multiline": {
+ "delimiter": "semi",
+ "requireLast": true
+ },
+ "singleline": {
+ "delimiter": "semi",
+ "requireLast": false
+ }
+ }
+ ],
+ "@typescript-eslint/member-ordering": [
+ "error",
+ {
+ "default": [
+ "public-static-field",
+ "protected-static-field",
+ "private-static-field",
+ "public-instance-field",
+ "protected-instance-field",
+ "private-instance-field",
+ "constructor",
+ "public-static-method",
+ "protected-static-method",
+ "private-static-method",
+ "public-abstract-method",
+ "protected-abstract-method",
+ "private-abstract-method",
+ "public-instance-method",
+ "protected-instance-method",
+ "private-instance-method"
+ ]
+ }
+ ],
+ "@typescript-eslint/consistent-type-assertions": "error",
+ "@typescript-eslint/no-empty-function": "off",
+ "@typescript-eslint/no-empty-interface": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-floating-promises": "error",
+ "@typescript-eslint/no-inferrable-types": [
+ "error",
+ {
+ "ignoreParameters": true,
+ "ignoreProperties": true
+ }
+ ],
+ "@typescript-eslint/no-misused-new": "error",
+ "@typescript-eslint/typedef": "off",
+ "@typescript-eslint/no-namespace": "error",
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/no-parameter-properties": "off",
+ "no-use-before-define": "error",
+ "@typescript-eslint/no-var-requires": "error",
+ "@typescript-eslint/prefer-for-of": "error",
+ "@typescript-eslint/triple-slash-reference": "error",
+ "@typescript-eslint/prefer-function-type": "error",
+ "@typescript-eslint/prefer-namespace-keyword": "error",
+ "no-useless-escape": "error",
+ "quotes": "off",
+ "@typescript-eslint/quotes": [
+ "error",
+ "single",
+ {
+ "avoidEscape": true,
+ "allowTemplateLiterals": true
+ }
+ ],
+ "@typescript-eslint/restrict-plus-operands": "error",
+ "@typescript-eslint/semi": ["error", "always"],
+ "@typescript-eslint/type-annotation-spacing": "error",
+ "@typescript-eslint/unified-signatures": "error",
+ "arrow-body-style": "error",
+ "arrow-parens": ["error", "always"],
+ "camelcase": "off",
+ "max-depth": [
+ "error",
+ {
+ "max": 2
+ }
+ ],
+ "complexity": [
+ "error",
+ {
+ "max": 10
+ }
+ ],
+ "constructor-super": "error",
+ "curly": "error",
+ "dot-notation": "off",
+ "eqeqeq": ["error", "smart"],
+ "guard-for-in": "error",
+ "id-blacklist": "off",
+ "id-match": "off",
+ "import/order": [
+ "error",
+ {
+ "groups": [
+ "index",
+ ["sibling", "parent"],
+ "internal",
+ "external",
+ "builtin"
+ ]
+ }
+ ],
+ "max-classes-per-file": ["error", 1],
+ "new-parens": "error",
+ "no-bitwise": "error",
+ "no-caller": "error",
+ "no-cond-assign": "error",
+ "no-console": "error",
+ "no-debugger": "error",
+ "no-empty": "error",
+ "no-eval": "error",
+ "no-fallthrough": "error",
+ "no-invalid-this": "error",
+ "no-multiple-empty-lines": "error",
+ "no-new-wrappers": "error",
+ "no-restricted-syntax": ["error", "ForInStatement"],
+ "no-shadow": [
+ "error",
+ {
+ "hoist": "all"
+ }
+ ],
+ "no-throw-literal": "error",
+ "no-trailing-spaces": "error",
+ "no-undef-init": "error",
+ "no-underscore-dangle": "off",
+ "no-unsafe-finally": "error",
+ "no-unused-expressions": "error",
+ "no-unused-labels": "error",
+ "no-var": "error",
+ "object-shorthand": "error",
+ "one-var": ["error", "never"],
+ "padding-line-between-statements": [
+ "error",
+ {
+ "blankLine": "always",
+ "prev": "*",
+ "next": "return"
+ }
+ ],
+ "prefer-arrow-callback": "error",
+ "prefer-const": "error",
+ "brace-style": "error",
+ "quote-props": ["error", "consistent-as-needed"],
+ "radix": "error",
+ "space-before-function-paren": [
+ "error",
+ {
+ "anonymous": "never",
+ "asyncArrow": "always",
+ "named": "never"
+ }
+ ],
+ "eol-last": ["error", "always"],
+ "use-isnan": "error",
+ "valid-typeof": "error"
+ }
}
diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml
index 68ca3a9..ad47a94 100644
--- a/.github/workflows/auto-build.yml
+++ b/.github/workflows/auto-build.yml
@@ -13,8 +13,6 @@ jobs:
node-version: [11.x, 12.x, 13.x]
steps:
- uses: actions/checkout@v2
- with:
- token: ${{ secrets.GPR_TOKEN }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
@@ -22,3 +20,4 @@ jobs:
- run: npm ci
- run: npm run format
- run: npm run lint
+ - run: npm run test
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 033cb51..4f7f626 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -17,6 +17,6 @@ jobs:
node-version: 12
- name: Semantic release
- run: npm run semantic-release
+ run: npx semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GPR_TOKEN }}
diff --git a/.prettierignore b/.prettierignore
index 3c3629e..f06235c 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1 +1,2 @@
node_modules
+dist
diff --git a/.prettierrc b/.prettierrc
index c6c0c91..ea8d513 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -5,5 +5,6 @@
"printWidth": 80,
"trailingComma": "none",
"arrowParens": "always",
- "quoteProps": "consistent"
+ "quoteProps": "consistent",
+ "endOfLine": "auto"
}
diff --git a/README.md b/README.md
index 2839738..5bbab36 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,154 @@
-# @neuralegion/service-lib-template
+# cvss
-Service lib description
+The Common Vulnerability Scoring System ([CVSS](https://www.first.org/cvss/)) [base](https://www.first.org/cvss/specification-document#Base-Metrics) [score](https://www.first.org/cvss/specification-document#1-2-Scoring) calculator and validator library written in [TypeScript](https://www.typescriptlang.org/).
+
+## Basics ๐งพ
+
+CVSS outputs numerical scores, indicating severity of vulnerability, based on some principal technical vulnerability characteristics.
+Its outputs include numerical scores indicating the severity of a vulnerability relative to other vulnerabilities. [Link](https://www.first.org/cvss/v3.1/specification-document#Introduction)
+
+The CVSS v3 vector string begins with the label `CVSS:` and numeric representation of the version.
+After version string, it contains a set of `/`-separated CVSS metrics.
+Each metric consists of name and value (both abbreviated) separated with ':'.
+
+### Sample
+
+Sample CVSS v3.1 vector string: `CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N`
+
+Score is: [3.8](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N), severity: [Low](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N)
+
+### Current library limitations ๐ง
+
+CVSS specification defines three metric groups: `Base`, `Temporal`, and `Environmental`, but only `Base` metrics are supported by given library for now.
+
+Supported CVSS versions: [3.0](https://www.first.org/cvss/v3-0/) and [3.1](https://www.first.org/cvss/v3-1/)
+
+## Install ๐
+
+`npm i --save @neuralegion/cvss`
+
+## API
+
+
+Score Calculator
+
+`calculateBaseScore(cvssString): number`
+
+Calculates [Base Score](https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations),
+which depends on sub-formulas for Impact Sub-Score (ISS), Impact, and Exploitability,
+
+`calculateIss(metricsMap): number`
+
+Calculates [Impact Sub-Score (ISS)](https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations)
+
+`calculateImpact(metricsMap, iss): number`
+
+Calculates [Impact](https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations)
+
+`calculateExploitability(metricsMap): number`
+
+Calculates [Exploitability](https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations)
+
+
+
+
+Validator
+
+`validate(cvssString): void`
+
+Throws an Error if given CVSS string is either invalid or unsupported.
+
+Error contains verbose message with error details. Sample error messages:
+- CVSS vector must start with "CVSS:"
+- Invalid CVSS string. Example: CVSS:3.0/AV:A/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
+- Unsupported CVSS version: 2.0. Only 3.0 and 3.1 are supported
+- Duplicated metric: "AC:L"
+- Missing mandatory CVSS base metric C (Confidentiality)
+- Unknown CVSS metric "X". Allowed metrics: AV, AC, PR, UI, S, C, I, A
+- Invalid value for CVSS metric PR (Privileges Required): Y. Allowed values: N (None), L (Low), H (High)
+
+
+
+Humanizer
+
+`humanizeBaseMetric(metric)`
+
+Return un-abbreviated metric name: e.g. 'Confidentiality' for input 'C'
+
+`humanizeBaseMetricValue(value, metric)`
+
+Return un-abbreviated metric value: e.g. 'Network' for input ('AV', 'N')
+
+
+## Usage
+
+
+ECMAScript 2015, Typescript modules
+
+```
+import { calculateBaseScore } from 'cvss';
+
+console.log('score: ', calculateBaseScore('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N'));
+```
+
+
+
+NodeJS (CommonJS module)
+
+```
+const cvss = require('cvss');
+
+console.log(cvss.calculateBaseScore('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N'));
+```
+
+
+
+
+NodeJS (experimental ESM support)
+
+`usage.mjs` file:
+
+```
+import cvss from 'cvss';
+
+console.log(cvss.calculateBaseScore('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N'));
+```
+
+Running: `node --experimental-modules ./usage.mjs`
+
+
+
+
+Browser (globals from umd bundle)
+
+```
+
+
+```
+
+
+
+Browser (ES modules)
+
+```
+
+```
+
+
+
+## Development ๐
+
+Issues and pull requests are highly welcome. ๐
+
+Please, don't forget to lint (`npm run lint`) and test (`npm t`) the code.
+
+## License
+
+Copyright ยฉ 2020 [NeuraLegion](https://github.com/NeuraLegion).
+
+This project is licensed under the MIT License - see the [LICENSE file](LICENSE) for details.
diff --git a/package-lock.json b/package-lock.json
index 61411b5..08966ee 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,32 +1,32 @@
{
- "name": "@neuralegion/service-lib-template",
+ "name": "cvss",
"version": "0.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@babel/code-frame": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz",
- "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.10.3"
+ "@babel/highlight": "^7.10.4"
}
},
"@babel/core": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz",
- "integrity": "sha512-5YqWxYE3pyhIi84L84YcwjeEgS+fa7ZjK6IBVGTjDVfm64njkR2lfDhVR5OudLk8x2GK59YoSyVv+L/03k1q9w==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.3",
- "@babel/generator": "^7.10.3",
- "@babel/helper-module-transforms": "^7.10.1",
- "@babel/helpers": "^7.10.1",
- "@babel/parser": "^7.10.3",
- "@babel/template": "^7.10.3",
- "@babel/traverse": "^7.10.3",
- "@babel/types": "^7.10.3",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz",
+ "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.10.4",
+ "@babel/helper-module-transforms": "^7.10.4",
+ "@babel/helpers": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
@@ -55,167 +55,254 @@
}
},
"@babel/generator": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz",
- "integrity": "sha512-drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz",
+ "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==",
"dev": true,
"requires": {
- "@babel/types": "^7.10.3",
+ "@babel/types": "^7.10.4",
"jsesc": "^2.5.1",
"lodash": "^4.17.13",
"source-map": "^0.5.0"
}
},
"@babel/helper-function-name": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz",
- "integrity": "sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.10.3",
- "@babel/template": "^7.10.3",
- "@babel/types": "^7.10.3"
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz",
- "integrity": "sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
"dev": true,
"requires": {
- "@babel/types": "^7.10.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz",
- "integrity": "sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz",
+ "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==",
"dev": true,
"requires": {
- "@babel/types": "^7.10.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-module-imports": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz",
- "integrity": "sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+ "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
"dev": true,
"requires": {
- "@babel/types": "^7.10.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-module-transforms": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz",
- "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz",
+ "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.10.1",
- "@babel/helper-replace-supers": "^7.10.1",
- "@babel/helper-simple-access": "^7.10.1",
- "@babel/helper-split-export-declaration": "^7.10.1",
- "@babel/template": "^7.10.1",
- "@babel/types": "^7.10.1",
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-simple-access": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4",
"lodash": "^4.17.13"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz",
- "integrity": "sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+ "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
"dev": true,
"requires": {
- "@babel/types": "^7.10.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-replace-supers": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz",
- "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+ "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
"dev": true,
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.10.1",
- "@babel/helper-optimise-call-expression": "^7.10.1",
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-member-expression-to-functions": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-simple-access": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz",
- "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+ "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
"dev": true,
"requires": {
- "@babel/template": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz",
- "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+ "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
"dev": true,
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz",
- "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
"@babel/helpers": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz",
- "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+ "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
"dev": true,
"requires": {
- "@babel/template": "^7.10.1",
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/highlight": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz",
- "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.10.3",
+ "@babel/helper-validator-identifier": "^7.10.4",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@babel/parser": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz",
- "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz",
+ "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==",
"dev": true
},
+ "@babel/runtime": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz",
+ "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.4.tgz",
+ "integrity": "sha512-BFlgP2SoLO9HJX9WBwN67gHWMBhDX/eDz64Jajd6mR/UAUzqrNMm99d4qHnVaKscAElZoFiPv+JpR/Siud5lXw==",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.0.0",
+ "regenerator-runtime": "^0.13.4"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
+ "dev": true
+ }
+ }
+ },
"@babel/template": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz",
- "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.10.3",
- "@babel/parser": "^7.10.3",
- "@babel/types": "^7.10.3"
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/traverse": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz",
- "integrity": "sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz",
+ "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.10.3",
- "@babel/generator": "^7.10.3",
- "@babel/helper-function-name": "^7.10.3",
- "@babel/helper-split-export-declaration": "^7.10.1",
- "@babel/parser": "^7.10.3",
- "@babel/types": "^7.10.3",
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.10.4",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.13"
@@ -230,173 +317,180 @@
}
},
"@babel/types": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz",
- "integrity": "sha512-nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz",
+ "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.10.3",
+ "@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
},
"@commitlint/cli": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.5.tgz",
- "integrity": "sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-9.0.1.tgz",
+ "integrity": "sha512-BVOc/BY0FMmKTTH5oUVE0ukhPWDFf364FiYKk3GlXLOGTZPTXQ/9ncB2eMOaCF0PdcEVY4VoMjyoRSgcVapCMg==",
"dev": true,
"requires": {
- "@commitlint/format": "^8.3.4",
- "@commitlint/lint": "^8.3.5",
- "@commitlint/load": "^8.3.5",
- "@commitlint/read": "^8.3.4",
- "babel-polyfill": "6.26.0",
- "chalk": "2.4.2",
+ "@babel/runtime": "^7.9.6",
+ "@commitlint/format": "^9.0.1",
+ "@commitlint/lint": "^9.0.1",
+ "@commitlint/load": "^9.0.1",
+ "@commitlint/read": "^9.0.1",
+ "chalk": "3.0.0",
+ "core-js": "^3.6.1",
"get-stdin": "7.0.0",
- "lodash": "4.17.15",
+ "lodash": "^4.17.15",
"meow": "5.0.0",
+ "regenerator-runtime": "0.13.3",
"resolve-from": "5.0.0",
"resolve-global": "1.0.0"
}
},
"@commitlint/config-conventional": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz",
- "integrity": "sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-9.0.1.tgz",
+ "integrity": "sha512-5rGu8aT4nRhWKrd5SpXqKJKLM07wXi4X5KVD9EEAuucAh2iZgfJJK9HKZNKGEKLKBQSWlnXE6UvkeEjJgi6TPQ==",
"dev": true,
"requires": {
- "conventional-changelog-conventionalcommits": "4.2.1"
+ "conventional-changelog-conventionalcommits": "4.2.3"
}
},
"@commitlint/ensure": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz",
- "integrity": "sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-9.0.1.tgz",
+ "integrity": "sha512-z8SEkfbn0lMnAtt7Hp3A8hE3CRCDsg+Eu3Xj1UJakOyCPJgHE1/vEyM2DO2dxTXVKuttiHeLDnUSHCxklm78Ng==",
"dev": true,
"requires": {
- "lodash": "4.17.15"
+ "@commitlint/types": "^9.0.1",
+ "lodash": "^4.17.15"
}
},
"@commitlint/execute-rule": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz",
- "integrity": "sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-9.0.1.tgz",
+ "integrity": "sha512-fxnLadXs59qOBE9dInfQjQ4DmbGToQ0NjfqqmN6N8qS+KsCecO6N0mMUrC95et9xTeimFRr+0l9UMfmRVHNS/w==",
"dev": true
},
"@commitlint/format": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz",
- "integrity": "sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-9.0.1.tgz",
+ "integrity": "sha512-5oY7Jyve7Bfnx0CdbxFcpRKq92vUANFq3MVbz/ZTgvuYgUeMuYsSEwW6MJtOgOhHBQ2vZP/uPdxwmU+6pWZHcg==",
"dev": true,
"requires": {
- "chalk": "^2.0.1"
+ "chalk": "^3.0.0"
}
},
"@commitlint/is-ignored": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz",
- "integrity": "sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-9.0.1.tgz",
+ "integrity": "sha512-doGBfQgbsi48Hc48runGdN0TQFvf5XZizck8cylQdGG/3w+YwX9WkplEor7cvz8pmmuD6PpfpdukHSKlR8KmHQ==",
"dev": true,
"requires": {
- "semver": "6.3.0"
+ "@commitlint/types": "^9.0.1",
+ "semver": "7.1.3"
}
},
"@commitlint/lint": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.5.tgz",
- "integrity": "sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-9.0.1.tgz",
+ "integrity": "sha512-EAn4E6aGWZ96Dg9LN28kdELqkyFOAUGlXWmanMdWxGFGdOf24ZHzlVsbr/Yb1oSBUE2KVvAF5W2Mzn2+Ge5rOg==",
"dev": true,
"requires": {
- "@commitlint/is-ignored": "^8.3.5",
- "@commitlint/parse": "^8.3.4",
- "@commitlint/rules": "^8.3.4",
- "babel-runtime": "^6.23.0",
- "lodash": "4.17.15"
+ "@commitlint/is-ignored": "^9.0.1",
+ "@commitlint/parse": "^9.0.1",
+ "@commitlint/rules": "^9.0.1",
+ "@commitlint/types": "^9.0.1"
}
},
"@commitlint/load": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz",
- "integrity": "sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-9.0.1.tgz",
+ "integrity": "sha512-6ix/pUjVAggmDLTcnpyk0bgY3H9UBBTsEeFvTkHV+WQ6LNIxsQk8SwEOEZzWHUqt0pxqMQeiUgYeSZsSw2+uiw==",
"dev": true,
"requires": {
- "@commitlint/execute-rule": "^8.3.4",
- "@commitlint/resolve-extends": "^8.3.5",
- "babel-runtime": "^6.23.0",
- "chalk": "2.4.2",
- "cosmiconfig": "^5.2.0",
- "lodash": "4.17.15",
+ "@commitlint/execute-rule": "^9.0.1",
+ "@commitlint/resolve-extends": "^9.0.1",
+ "@commitlint/types": "^9.0.1",
+ "chalk": "3.0.0",
+ "cosmiconfig": "^6.0.0",
+ "lodash": "^4.17.15",
"resolve-from": "^5.0.0"
}
},
"@commitlint/message": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz",
- "integrity": "sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-9.0.1.tgz",
+ "integrity": "sha512-9rKnOeBV5s5hnV895aE3aMgciC27kAjkV9BYVQOWRjZdXHFZxa+OZ94mkMp+Hcr61W++fox1JJpPiTuCTDX3TQ==",
"dev": true
},
"@commitlint/parse": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz",
- "integrity": "sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-9.0.1.tgz",
+ "integrity": "sha512-O39yMSMFdBtqwyM5Ld7RT6OGeI7jiXB9UUb09liIXIkltaZZo6CeoBD9hyfRWpaw81SiGL4OwHzp92mYVHLmow==",
"dev": true,
"requires": {
- "conventional-changelog-angular": "^1.3.3",
- "conventional-commits-parser": "^3.0.0",
- "lodash": "^4.17.11"
+ "conventional-changelog-angular": "^5.0.0",
+ "conventional-commits-parser": "^3.0.0"
}
},
"@commitlint/read": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz",
- "integrity": "sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-9.0.1.tgz",
+ "integrity": "sha512-EYbel85mAiHb56bS5jBJ71lEaGjTnkSJLxTV1u6dpxdSBkRdmAn2DSPd6KQSbwYGUlPCR+pAZeZItT1y0Xk3hg==",
"dev": true,
"requires": {
- "@commitlint/top-level": "^8.3.4",
- "@marionebl/sander": "^0.6.0",
- "babel-runtime": "^6.23.0",
+ "@commitlint/top-level": "^9.0.1",
+ "fs-extra": "^8.1.0",
"git-raw-commits": "^2.0.0"
}
},
"@commitlint/resolve-extends": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz",
- "integrity": "sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-9.0.1.tgz",
+ "integrity": "sha512-o6Lya2ILg1tEfWatS5x8w4ImvDzwb1whxsr2c/cxVCFqLF4hxHHHniZ0NJ+HFhYa1kBsYeKlD1qn9fHX5Y1+PQ==",
"dev": true,
"requires": {
"import-fresh": "^3.0.0",
- "lodash": "4.17.15",
+ "lodash": "^4.17.15",
"resolve-from": "^5.0.0",
"resolve-global": "^1.0.0"
}
},
"@commitlint/rules": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz",
- "integrity": "sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-9.0.1.tgz",
+ "integrity": "sha512-K9IiQzF/C2tP/0mQUPSkOtmAEUleRQhZK1NFLVbsd6r4uobaczjPSYvEH+cuSHlD9b3Ori7PRiTgVBAZTH5ORQ==",
"dev": true,
"requires": {
- "@commitlint/ensure": "^8.3.4",
- "@commitlint/message": "^8.3.4",
- "@commitlint/to-lines": "^8.3.4",
- "babel-runtime": "^6.23.0"
+ "@commitlint/ensure": "^9.0.1",
+ "@commitlint/message": "^9.0.1",
+ "@commitlint/to-lines": "^9.0.1",
+ "@commitlint/types": "^9.0.1"
}
},
"@commitlint/to-lines": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz",
- "integrity": "sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-9.0.1.tgz",
+ "integrity": "sha512-FHiXPhFgGnvekF4rhyl1daHimEHkr81pxbHAmWG/0SOCehFr5THsWGoUYNNBMF7rdwUuVq4tXJpEOFiWBGKigg==",
"dev": true
},
"@commitlint/top-level": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz",
- "integrity": "sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-9.0.1.tgz",
+ "integrity": "sha512-AjCah5y7wu9F/hOwMnqsujPRWlKerX79ZGf+UfBpOdAh+USdV7a/UfQaqjgCzkxy5GcNO9ER5A+2mWrUHxJ0hQ==",
"dev": true,
"requires": {
"find-up": "^4.0.0"
}
},
+ "@commitlint/types": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-9.0.1.tgz",
+ "integrity": "sha512-wo2rHprtDzTHf4tiSxavktJ52ntiwmg7eHNGFLH38G1of8OfGVwOc1sVbpM4jN/HK/rCMhYOi6xzoPqsv0537A==",
+ "dev": true
+ },
"@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -424,17 +518,6 @@
"integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
"dev": true
},
- "@marionebl/sander": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz",
- "integrity": "sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.3",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.2"
- }
- },
"@nodelib/fs.scandir": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
@@ -590,6 +673,17 @@
"@types/node": ">= 8"
}
},
+ "@rollup/pluginutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "0.0.39",
+ "estree-walker": "^1.0.1",
+ "picomatch": "^2.2.2"
+ }
+ },
"@semantic-release/commit-analyzer": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz",
@@ -603,18 +697,6 @@
"import-from": "^3.0.0",
"lodash": "^4.17.4",
"micromatch": "^4.0.2"
- },
- "dependencies": {
- "conventional-changelog-angular": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz",
- "integrity": "sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA==",
- "dev": true,
- "requires": {
- "compare-func": "^1.3.1",
- "q": "^1.5.1"
- }
- }
}
},
"@semantic-release/error": {
@@ -645,6 +727,36 @@
"p-filter": "^2.0.0",
"p-retry": "^4.0.0",
"url-join": "^4.0.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+ "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+ "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^1.0.0"
+ }
+ },
+ "universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "dev": true
+ }
}
},
"@semantic-release/npm": {
@@ -668,10 +780,32 @@
"tempy": "^0.5.0"
},
"dependencies": {
- "semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "fs-extra": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+ "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+ "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^1.0.0"
+ }
+ },
+ "universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
"dev": true
}
}
@@ -692,18 +826,6 @@
"into-stream": "^5.0.0",
"lodash": "^4.17.4",
"read-pkg-up": "^7.0.0"
- },
- "dependencies": {
- "conventional-changelog-angular": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz",
- "integrity": "sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA==",
- "dev": true,
- "requires": {
- "compare-func": "^1.3.1",
- "q": "^1.5.1"
- }
- }
}
},
"@tootallnate/once": {
@@ -719,9 +841,9 @@
"dev": true
},
"@types/chai-as-promised": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz",
- "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.3.tgz",
+ "integrity": "sha512-FQnh1ohPXJELpKhzjuDkPLR2BZCAqed+a6xV4MI/T3XzHfd2FlarfUGUdZYgqYe8oxkYn0fchHEeHfHqdZ96sg==",
"dev": true,
"requires": {
"@types/chai": "*"
@@ -745,6 +867,12 @@
"integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==",
"dev": true
},
+ "@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "dev": true
+ },
"@types/json-schema": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
@@ -770,9 +898,9 @@
"dev": true
},
"@types/node": {
- "version": "14.0.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz",
- "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==",
+ "version": "14.0.20",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.20.tgz",
+ "integrity": "sha512-MRn/NP3dee8yL5QhbSA6riuwkS+UOcsPUMOIOG3KMUQpuor/2TopdRBu8QaaB4fGU+gz/bzyDWt0FtUbeJ8H1A==",
"dev": true
},
"@types/normalize-package-data": {
@@ -794,12 +922,12 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.4.0.tgz",
- "integrity": "sha512-wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.0.tgz",
+ "integrity": "sha512-ubHlHVt1lsPQB/CZdEov9XuOFhNG9YRC//kuiS1cMQI6Bs1SsqKrEmZnpgRwthGR09/kEDtr9MywlqXyyYd8GA==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "3.4.0",
+ "@typescript-eslint/experimental-utils": "3.6.0",
"debug": "^4.1.1",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
@@ -812,50 +940,50 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
"integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true
- },
- "tsutils": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
- "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
- "dev": true,
- "requires": {
- "tslib": "^1.8.1"
- }
}
}
},
"@typescript-eslint/experimental-utils": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.4.0.tgz",
- "integrity": "sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.0.tgz",
+ "integrity": "sha512-4Vdf2hvYMUnTdkCNZu+yYlFtL2v+N2R7JOynIOkFbPjf9o9wQvRwRkzUdWlFd2YiiUwJLbuuLnl5civNg5ykOQ==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/typescript-estree": "3.4.0",
+ "@typescript-eslint/types": "3.6.0",
+ "@typescript-eslint/typescript-estree": "3.6.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.4.0.tgz",
- "integrity": "sha512-ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.0.tgz",
+ "integrity": "sha512-taghDxuLhbDAD1U5Fk8vF+MnR0yiFE9Z3v2/bYScFb0N1I9SK8eKHkdJl1DAD48OGFDMFTeOTX0z7g0W6SYUXw==",
"dev": true,
"requires": {
"@types/eslint-visitor-keys": "^1.0.0",
- "@typescript-eslint/experimental-utils": "3.4.0",
- "@typescript-eslint/typescript-estree": "3.4.0",
+ "@typescript-eslint/experimental-utils": "3.6.0",
+ "@typescript-eslint/types": "3.6.0",
+ "@typescript-eslint/typescript-estree": "3.6.0",
"eslint-visitor-keys": "^1.1.0"
}
},
+ "@typescript-eslint/types": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.0.tgz",
+ "integrity": "sha512-JwVj74ohUSt0ZPG+LZ7hb95fW8DFOqBuR6gE7qzq55KDI3BepqsCtHfBIoa0+Xi1AI7fq5nCu2VQL8z4eYftqg==",
+ "dev": true
+ },
"@typescript-eslint/typescript-estree": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.4.0.tgz",
- "integrity": "sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.0.tgz",
+ "integrity": "sha512-G57NDSABHjvob7zVV09ehWyD1K6/YUKjz5+AufObFyjNO4DVmKejj47MHjVHHlZZKgmpJD2yyH9lfCXHrPITFg==",
"dev": true,
"requires": {
+ "@typescript-eslint/types": "3.6.0",
+ "@typescript-eslint/visitor-keys": "3.6.0",
"debug": "^4.1.1",
- "eslint-visitor-keys": "^1.1.0",
"glob": "^7.1.6",
"is-glob": "^4.0.1",
"lodash": "^4.17.15",
@@ -868,18 +996,18 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
"integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true
- },
- "tsutils": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
- "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
- "dev": true,
- "requires": {
- "tslib": "^1.8.1"
- }
}
}
},
+ "@typescript-eslint/visitor-keys": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.0.tgz",
+ "integrity": "sha512-p1izllL2Ubwunite0ITjubuMQRBGgjdVYwyG7lXPX8GbrA6qF0uwSRz9MnXZaHMxID4948gX0Ez8v9tUDi/KfQ==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
"JSONStream": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
@@ -903,9 +1031,9 @@
"dev": true
},
"agent-base": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz",
- "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz",
+ "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==",
"dev": true,
"requires": {
"debug": "4"
@@ -922,9 +1050,9 @@
}
},
"ajv": {
- "version": "6.12.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
- "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+ "version": "6.12.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+ "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -934,9 +1062,9 @@
}
},
"ansi-colors": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
- "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
"dev": true
},
"ansi-escapes": {
@@ -963,12 +1091,13 @@
"dev": true
},
"ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "color-convert": "^1.9.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
"ansicolors": {
@@ -1098,35 +1227,6 @@
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
"dev": true
},
- "babel-polyfill": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
- "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "regenerator-runtime": "^0.10.5"
- },
- "dependencies": {
- "regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
- "dev": true
- }
- }
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- }
- },
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -1194,32 +1294,6 @@
"write-file-atomic": "^3.0.0"
}
},
- "caller-callsite": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
- "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
- "dev": true,
- "requires": {
- "callsites": "^2.0.0"
- },
- "dependencies": {
- "callsites": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
- "dev": true
- }
- }
- },
- "caller-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
- "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
- "dev": true,
- "requires": {
- "caller-callsite": "^2.0.0"
- }
- },
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -1285,14 +1359,13 @@
}
},
"chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
"check-error": {
@@ -1357,37 +1430,12 @@
"string-width": "^4.2.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -1441,6 +1489,30 @@
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -1464,18 +1536,18 @@
}
},
"color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "color-name": "1.1.3"
+ "color-name": "~1.1.4"
}
},
"color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"colors": {
@@ -1525,9 +1597,9 @@
"dev": true
},
"conventional-changelog-angular": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz",
- "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==",
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz",
+ "integrity": "sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA==",
"dev": true,
"requires": {
"compare-func": "^1.3.1",
@@ -1535,13 +1607,13 @@
}
},
"conventional-changelog-conventionalcommits": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz",
- "integrity": "sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.3.tgz",
+ "integrity": "sha512-atGa+R4vvEhb8N/8v3IoW59gCBJeeFiX6uIbPu876ENAmkMwsenyn0R21kdDHJFLQdy6zW4J6b4xN8KI3b9oww==",
"dev": true,
"requires": {
"compare-func": "^1.3.1",
- "lodash": "^4.2.1",
+ "lodash": "^4.17.15",
"q": "^1.5.1"
}
},
@@ -1583,6 +1655,12 @@
"type-fest": "^0.13.1",
"yargs-parser": "^18.1.3"
}
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
}
}
},
@@ -1644,9 +1722,15 @@
}
},
"core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
- "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+ "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==",
+ "dev": true
+ },
+ "core-js-pure": {
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz",
+ "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==",
"dev": true
},
"core-util-is": {
@@ -1656,43 +1740,25 @@
"dev": true
},
"cosmiconfig": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
"dev": true,
"requires": {
- "import-fresh": "^2.0.0",
- "is-directory": "^0.3.1",
- "js-yaml": "^3.13.1",
- "parse-json": "^4.0.0"
- },
- "dependencies": {
- "import-fresh": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
- "dev": true,
- "requires": {
- "caller-path": "^2.0.0",
- "resolve-from": "^3.0.0"
- }
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "resolve-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
- "dev": true
- }
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "cross-env": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
+ "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.1"
}
},
"cross-spawn": {
@@ -1838,14 +1904,6 @@
"dev": true,
"requires": {
"path-type": "^4.0.0"
- },
- "dependencies": {
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- }
}
},
"doctrine": {
@@ -1891,12 +1949,12 @@
}
},
"enquirer": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz",
- "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
"dev": true,
"requires": {
- "ansi-colors": "^3.2.1"
+ "ansi-colors": "^4.1.1"
}
},
"env-ci": {
@@ -1990,9 +2048,9 @@
"dev": true
},
"eslint": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.3.1.tgz",
- "integrity": "sha512-cQC/xj9bhWUcyi/RuMbRtC3I0eW8MH0jhRELSvpKYkWep3C6YZ2OkvcvJVUeO6gcunABmzptbXBuDoXsjHmfTA==",
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz",
+ "integrity": "sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -2033,16 +2091,6 @@
"v8-compile-cache": "^2.0.3"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -2053,41 +2101,11 @@
"supports-color": "^7.1.0"
}
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
"integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -2396,6 +2414,12 @@
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true
},
+ "estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
+ },
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -2403,9 +2427,9 @@
"dev": true
},
"execa": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz",
- "integrity": "sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
+ "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
@@ -2546,17 +2570,6 @@
"flatted": "^2.0.0",
"rimraf": "2.6.3",
"write": "1.0.3"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
}
},
"flatted": {
@@ -2592,15 +2605,14 @@
"dev": true
},
"fs-extra": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
- "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
"requires": {
- "at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^1.0.0"
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
}
},
"fs.realpath": {
@@ -2864,9 +2876,9 @@
}
},
"has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"has-symbols": {
@@ -2962,16 +2974,6 @@
"which-pm-runs": "^1.0.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -2982,46 +2984,6 @@
"supports-color": "^7.1.0"
}
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
- "dev": true,
- "requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.7.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -3030,15 +2992,6 @@
"requires": {
"find-up": "^4.0.0"
}
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -3158,12 +3111,6 @@
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
"dev": true
},
- "is-directory": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
- "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
- "dev": true
- },
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -3328,6 +3275,14 @@
"@istanbuljs/schema": "^0.1.2",
"istanbul-lib-coverage": "^3.0.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
+ }
}
},
"istanbul-lib-processinfo": {
@@ -3374,23 +3329,6 @@
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^3.0.0",
"supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"istanbul-lib-source-maps": {
@@ -3500,13 +3438,12 @@
}
},
"jsonfile": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
- "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^1.0.0"
+ "graceful-fs": "^4.1.6"
}
},
"jsonparse": {
@@ -3560,16 +3497,6 @@
"stringify-object": "^3.3.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -3579,62 +3506,13 @@
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
- "dev": true,
- "requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.7.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
"listr2": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.1.8.tgz",
- "integrity": "sha512-Op+hheiChfAphkJ5qUxZtHgyjlX9iNnAeFS/S134xw7mVSg0YVrQo1IY4/K+ElY6XgOPg2Ij4z07urUXR+YEew==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.2.0.tgz",
+ "integrity": "sha512-Q8qbd7rgmEwDo1nSyHaWQeztfGsdL6rb4uh7BA+Q80AZiDET5rVntiU1+13mu2ZTDVaBVbvAD1Db11rnu3l9sg==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
@@ -3647,16 +3525,6 @@
"through": "^2.3.8"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -3666,36 +3534,6 @@
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -3733,9 +3571,9 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
},
"lodash._reinterpolate": {
@@ -3816,20 +3654,10 @@
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
"integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
"dev": true,
- "requires": {
- "chalk": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
+ "requires": {
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -3839,36 +3667,6 @@
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -3884,37 +3682,12 @@
"wrap-ansi": "^6.2.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -3954,9 +3727,9 @@
}
},
"macos-release": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz",
- "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.0.tgz",
+ "integrity": "sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA==",
"dev": true
},
"make-dir": {
@@ -3966,6 +3739,14 @@
"dev": true,
"requires": {
"semver": "^6.0.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
+ }
}
},
"make-error": {
@@ -4000,16 +3781,6 @@
"supports-hyperlinks": "^2.1.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -4019,36 +3790,6 @@
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -4163,6 +3904,15 @@
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
},
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
"quick-lru": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
@@ -4339,11 +4089,14 @@
"yargs-unparser": "1.6.0"
},
"dependencies": {
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
},
"camelcase": {
"version": "5.3.1",
@@ -4351,6 +4104,43 @@
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
@@ -4361,9 +4151,9 @@
}
},
"has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"js-yaml": {
@@ -4391,15 +4181,6 @@
"integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
"dev": true
},
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
"yargs-parser": {
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
@@ -4505,9 +4286,9 @@
"dev": true
},
"npm": {
- "version": "6.14.5",
- "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.5.tgz",
- "integrity": "sha512-CDwa3FJd0XJpKDbWCST484H+mCNjF26dPrU+xnREW+upR0UODjMEfXPl3bxWuAwZIX6c2ASg1plLO7jP8ehWeA==",
+ "version": "6.14.6",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.6.tgz",
+ "integrity": "sha512-axnz6iHFK6WPE0js/+mRp+4IOwpHn5tJEw5KB6FiCU764zmffrhsYHbSHi2kKqNkRBt53XasXjngZfBD3FQzrQ==",
"dev": true,
"requires": {
"JSONStream": "^1.3.5",
@@ -4589,7 +4370,7 @@
"npm-packlist": "^1.4.8",
"npm-pick-manifest": "^3.0.2",
"npm-profile": "^4.0.4",
- "npm-registry-fetch": "^4.0.4",
+ "npm-registry-fetch": "^4.0.5",
"npm-user-validate": "~1.0.0",
"npmlog": "~4.1.2",
"once": "~1.4.0",
@@ -6729,7 +6510,7 @@
}
},
"npm-registry-fetch": {
- "version": "4.0.4",
+ "version": "4.0.5",
"bundled": true,
"dev": true,
"requires": {
@@ -6743,7 +6524,7 @@
},
"dependencies": {
"safe-buffer": {
- "version": "5.2.0",
+ "version": "5.2.1",
"bundled": true,
"dev": true
}
@@ -7503,7 +7284,7 @@
}
},
"spdx-license-ids": {
- "version": "3.0.3",
+ "version": "3.0.5",
"bundled": true,
"dev": true
},
@@ -8142,13 +7923,13 @@
}
},
"yargs": {
- "version": "15.3.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
- "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+ "version": "15.4.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.0.tgz",
+ "integrity": "sha512-D3fRFnZwLWp8jVAAhPZBsmeIHY8tTsb8ItV9KaAaopmC6wde2u6Yw29JBIZHXw14kgkRnYmDgmQU4FVMDlIsWw==",
"dev": true,
"requires": {
"cliui": "^6.0.0",
- "decamelize": "^1.2.0",
+ "decamelize": "^3.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
@@ -8157,7 +7938,18 @@
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
- "yargs-parser": "^18.1.1"
+ "yargs-parser": "^18.1.2"
+ },
+ "dependencies": {
+ "decamelize": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz",
+ "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==",
+ "dev": true,
+ "requires": {
+ "xregexp": "^4.2.4"
+ }
+ }
}
}
}
@@ -8388,13 +8180,10 @@
"dev": true
},
"path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- }
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
},
"pathval": {
"version": "1.1.0",
@@ -8721,9 +8510,9 @@
}
},
"regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
"dev": true
},
"regexpp": {
@@ -8809,14 +8598,53 @@
"dev": true
},
"rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"requires": {
"glob": "^7.1.3"
}
},
+ "rollup": {
+ "version": "2.21.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.21.0.tgz",
+ "integrity": "sha512-BEGgy+wSzux7Ycq58pRiWEOBZaXRXTuvzl1gsm7gqmsAHxkWf9nyA5V2LN9fGSHhhDQd0/C13iRzSh4bbIpWZQ==",
+ "dev": true,
+ "requires": {
+ "fsevents": "~2.1.2"
+ }
+ },
+ "rollup-plugin-typescript2": {
+ "version": "0.27.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.1.tgz",
+ "integrity": "sha512-RJl77Bbj1EunAQDC3dK/O2HWuSUX3oJbRGzyLoS5o9W4Hs1Nix3Gavqj1Lzs5Y6Ff4H2xXfmZ1WWUQCYocSbzQ==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^3.0.8",
+ "find-cache-dir": "^3.3.1",
+ "fs-extra": "8.1.0",
+ "resolve": "1.15.1",
+ "tslib": "1.11.2"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "tslib": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz",
+ "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==",
+ "dev": true
+ }
+ }
+ },
"run-parallel": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
@@ -8824,12 +8652,20 @@
"dev": true
},
"rxjs": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
- "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz",
+ "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+ "dev": true
+ }
}
},
"safe-buffer": {
@@ -8885,17 +8721,13 @@
"wrap-ansi": "^6.2.0"
}
},
- "cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "decamelize": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz",
+ "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==",
"dev": true,
"requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.7.2"
+ "xregexp": "^4.2.4"
}
},
"emoji-regex": {
@@ -8919,12 +8751,6 @@
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
@@ -8943,13 +8769,13 @@
}
},
"yargs": {
- "version": "15.3.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
- "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+ "version": "15.4.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.0.tgz",
+ "integrity": "sha512-D3fRFnZwLWp8jVAAhPZBsmeIHY8tTsb8ItV9KaAaopmC6wde2u6Yw29JBIZHXw14kgkRnYmDgmQU4FVMDlIsWw==",
"dev": true,
"requires": {
"cliui": "^6.0.0",
- "decamelize": "^1.2.0",
+ "decamelize": "^3.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
@@ -8958,15 +8784,15 @@
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
- "yargs-parser": "^18.1.1"
+ "yargs-parser": "^18.1.2"
}
}
}
},
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+ "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
"dev": true
},
"semver-compare": {
@@ -8982,6 +8808,14 @@
"dev": true,
"requires": {
"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
+ }
}
},
"semver-regex": {
@@ -9034,6 +8868,41 @@
"pkg-conf": "^2.1.0"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
"figures": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
@@ -9042,6 +8911,21 @@
"requires": {
"escape-string-regexp": "^1.0.5"
}
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -9060,6 +8944,32 @@
"ansi-styles": "^3.2.0",
"astral-regex": "^1.0.0",
"is-fullwidth-code-point": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ }
}
},
"source-map": {
@@ -9312,12 +9222,12 @@
"dev": true
},
"supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
}
},
"supports-hyperlinks": {
@@ -9328,23 +9238,6 @@
"requires": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"table": {
@@ -9483,9 +9376,26 @@
}
},
"tslib": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz",
- "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz",
+ "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g=="
+ },
+ "tsutils": {
+ "version": "3.17.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
+ "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+ "dev": true
+ }
+ }
},
"type-check": {
"version": "0.4.0",
@@ -9518,9 +9428,9 @@
}
},
"typescript": {
- "version": "3.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz",
- "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==",
+ "version": "3.9.6",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz",
+ "integrity": "sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==",
"dev": true
},
"uglify-js": {
@@ -9549,9 +9459,9 @@
}
},
"universalify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
- "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
},
"uri-js": {
@@ -9782,31 +9692,6 @@
"strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -9859,6 +9744,15 @@
"typedarray-to-buffer": "^3.1.5"
}
},
+ "xregexp": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz",
+ "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime-corejs3": "^7.8.3"
+ }
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
diff --git a/package.json b/package.json
index 9e3fe56..e3f894c 100644
--- a/package.json
+++ b/package.json
@@ -1,18 +1,18 @@
{
- "name": "@neuralegion/service-lib-template",
+ "name": "@neuralegion/cvss",
"version": "0.0.0",
"private": false,
"repository": {
"type": "git",
- "url": "git+https://github.com/NeuraLegion/service-lib-template.git"
+ "url": "git+https://github.com/NeuraLegion/cvss.git"
},
"author": {
- "name": "Artem Derevnjuk",
- "email": "artem.derevnjuk@neuralegion.com"
+ "name": "Viachaslau Tyshkavets",
+ "email": "viachaslau.tyshkavets@neuralegion.com"
},
"license": "MIT",
"bugs": {
- "url": "https://github.com/NeuraLegion/service-lib-template/issues"
+ "url": "https://github.com/NeuraLegion/cvss/issues"
},
"husky": {
"hooks": {
@@ -27,8 +27,7 @@
]
},
"publishConfig": {
- "registry": "https://npm.pkg.github.com/neuralegion",
- "access": "restricted"
+ "access": "public"
},
"lint-staged": {
"*.ts": [
@@ -37,44 +36,53 @@
"git add"
]
},
- "main": "dist/index.js",
- "typings": "dist/index.d.ts",
+ "files": [
+ "dist/**"
+ ],
+ "main": "./dist/bundle.umd.js",
+ "module": "./dist/index.js",
+ "typings": "./dist/index.d.ts",
"scripts": {
+ "clean": "rm -rf ./dist",
"semantic-release": "semantic-release",
- "lint": "eslint -c .eslintrc 'src/**/*.ts'",
- "format": "prettier --check 'src/**/*.ts'",
- "test": "mocha -r ts-node/register -r tsconfig-paths/register tests/**/*.spec.ts",
- "build": "tsc -p tsconfig.json",
+ "lint": "eslint -c .eslintrc --ext .ts src && eslint -c ./tests/.eslintrc --ext .ts tests",
+ "format": "prettier --check src tests",
+ "format:write": "prettier --write .",
+ "test": "cross-env TS_NODE_PROJECT=./tsconfig.spec.json mocha -r ts-node/register -r tsconfig-paths/register tests/**/*.spec.ts",
+ "build": "tsc && rollup -c rollup.config.js",
"prepublishOnly": "npm run build"
},
- "homepage": "https://github.com/NeuraLegion/service-lib-template#readme",
+ "homepage": "https://github.com/NeuraLegion/cvss#readme",
"dependencies": {
- "tslib": "~1.11.1"
+ "tslib": "~2.0.0"
},
"devDependencies": {
- "@commitlint/cli": "^8.3.5",
- "@commitlint/config-conventional": "^8.3.4",
+ "@commitlint/cli": "^9.0.1",
+ "@commitlint/config-conventional": "^9.0.1",
"@types/chai": "^4.2.11",
- "@types/chai-as-promised": "^7.1.2",
+ "@types/chai-as-promised": "^7.1.3",
"@types/debug": "^4.1.5",
"@types/mocha": "~7.0.2",
- "@types/node": "~14.0.13",
- "@typescript-eslint/eslint-plugin": "^3.3.0",
- "@typescript-eslint/parser": "^3.3.0",
+ "@types/node": "~14.0.20",
+ "@typescript-eslint/eslint-plugin": "^3.6.0",
+ "@typescript-eslint/parser": "^3.6.0",
"chai": "~4.2.0",
"chai-as-promised": "^7.1.1",
+ "cross-env": "^7.0.2",
"debug": "^4.1.1",
- "eslint": "^7.2.0",
+ "eslint": "^7.4.0",
"eslint-config-prettier": "^6.11.0",
- "eslint-plugin-import": "^2.21.2",
+ "eslint-plugin-import": "^2.22.0",
"eslint-plugin-prefer-arrow": "^1.2.1",
"husky": "^4.2.5",
"lint-staged": "^10.2.11",
"mocha": "~8.0.1",
"nyc": "~15.1.0",
"prettier": "~2.0.5",
- "semantic-release": "^17.0.8",
+ "rollup": "^2.21.0",
+ "rollup-plugin-typescript2": "^0.27.1",
+ "semantic-release": "^17.1.1",
"ts-node": "~8.10.2",
- "typescript": "^3.9.5"
+ "typescript": "^3.9.6"
}
}
diff --git a/rollup.config.js b/rollup.config.js
new file mode 100644
index 0000000..fc92070
--- /dev/null
+++ b/rollup.config.js
@@ -0,0 +1,20 @@
+import typescript from 'rollup-plugin-typescript2';
+
+const pkg = require('./package.json');
+
+export default {
+ input: `src/index.ts`,
+ output: [
+ { file: pkg.main, name: 'cvss', format: 'umd', sourcemap: false },
+ { file: './dist/bundle.es.js', format: 'es', sourcemap: false }
+ ],
+ // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash')
+ external: [],
+ watch: {
+ include: 'src/**'
+ },
+ plugins: [
+ // Compile TypeScript files
+ typescript({ useTsconfigDeclarationDir: true })
+ ]
+};
diff --git a/src/.gitkeep b/src/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/src/humanizer.ts b/src/humanizer.ts
new file mode 100644
index 0000000..b36510c
--- /dev/null
+++ b/src/humanizer.ts
@@ -0,0 +1,51 @@
+import { BaseMetric, BaseMetricValue } from './models';
+
+export const humanizeBaseMetric = (baseMetric: BaseMetric): string => {
+ switch (baseMetric) {
+ case BaseMetric.ATTACK_VECTOR:
+ return 'Attack Vector';
+ case BaseMetric.ATTACK_COMPLEXITY:
+ return 'Attack Complexity';
+ case BaseMetric.PRIVILEGES_REQUIRED:
+ return 'Privileges Required';
+ case BaseMetric.USER_INTERACTION:
+ return 'User Interaction';
+ case BaseMetric.SCOPE:
+ return 'Scope';
+ case BaseMetric.CONFIDENTIALITY:
+ return 'Confidentiality';
+ case BaseMetric.INTEGRITY:
+ return 'Integrity';
+ case BaseMetric.AVAILABILITY:
+ return 'Availability';
+ default:
+ return 'Unknown';
+ }
+};
+
+// eslint-disable-next-line complexity
+export const humanizeBaseMetricValue = (
+ value: BaseMetricValue,
+ metric: BaseMetric
+): string => {
+ switch (value) {
+ case 'A':
+ return 'Adjacent';
+ case 'C':
+ return 'Changed';
+ case 'H':
+ return 'High';
+ case 'L':
+ return metric === BaseMetric.ATTACK_VECTOR ? 'Local' : 'Low';
+ case 'N':
+ return metric === BaseMetric.ATTACK_VECTOR ? 'Network' : 'None';
+ case 'P':
+ return 'Physical';
+ case 'R':
+ return 'Required';
+ case 'U':
+ return 'Unchanged';
+ default:
+ return 'Unknown';
+ }
+};
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 0000000..e246b55
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,5 @@
+export * from './humanizer';
+export * from './models';
+export * from './parser';
+export * from './score-calculator';
+export * from './validator';
diff --git a/src/models.ts b/src/models.ts
new file mode 100644
index 0000000..47880b0
--- /dev/null
+++ b/src/models.ts
@@ -0,0 +1,34 @@
+export enum BaseMetric {
+ ATTACK_VECTOR = 'AV',
+ ATTACK_COMPLEXITY = 'AC',
+ PRIVILEGES_REQUIRED = 'PR',
+ USER_INTERACTION = 'UI',
+ SCOPE = 'S',
+ CONFIDENTIALITY = 'C',
+ INTEGRITY = 'I',
+ AVAILABILITY = 'A'
+}
+
+export const baseMetrics: ReadonlyArray = [
+ BaseMetric.ATTACK_VECTOR,
+ BaseMetric.ATTACK_COMPLEXITY,
+ BaseMetric.PRIVILEGES_REQUIRED,
+ BaseMetric.USER_INTERACTION,
+ BaseMetric.SCOPE,
+ BaseMetric.CONFIDENTIALITY,
+ BaseMetric.INTEGRITY,
+ BaseMetric.AVAILABILITY
+];
+
+export type BaseMetricValue = 'A' | 'C' | 'H' | 'L' | 'N' | 'P' | 'R' | 'U';
+
+export const baseMetricValues: Record = {
+ [BaseMetric.ATTACK_VECTOR]: ['N', 'A', 'L', 'P'],
+ [BaseMetric.ATTACK_COMPLEXITY]: ['L', 'H'],
+ [BaseMetric.PRIVILEGES_REQUIRED]: ['N', 'L', 'H'],
+ [BaseMetric.USER_INTERACTION]: ['N', 'R'],
+ [BaseMetric.SCOPE]: ['U', 'C'],
+ [BaseMetric.CONFIDENTIALITY]: ['N', 'L', 'H'],
+ [BaseMetric.INTEGRITY]: ['N', 'L', 'H'],
+ [BaseMetric.AVAILABILITY]: ['N', 'L', 'H']
+};
diff --git a/src/parser.ts b/src/parser.ts
new file mode 100644
index 0000000..4b558c9
--- /dev/null
+++ b/src/parser.ts
@@ -0,0 +1,50 @@
+import { BaseMetric, BaseMetricValue } from './models';
+
+export interface KeyValue {
+ key: K;
+ value: V;
+}
+
+const VERSION_REGEX = /^CVSS:(\d(?:\.\d)?)(.*)?$/;
+
+export const parseVersion = (cvssStr: string): string | null => {
+ const versionRegexRes = VERSION_REGEX.exec(cvssStr);
+
+ return versionRegexRes && versionRegexRes[1];
+};
+
+export const parseVector = (cvssStr: string): string | null => {
+ const versionRegexRes = VERSION_REGEX.exec(cvssStr);
+
+ return versionRegexRes && versionRegexRes[2] && versionRegexRes[2].substr(1);
+};
+
+export const parseMetrics = (vectorStr: string): KeyValue[] =>
+ (vectorStr ? vectorStr.split('/') : []).map((metric: string) => {
+ if (!metric) {
+ return { key: '', value: '' };
+ }
+
+ const parts = metric.split(':');
+
+ return { key: parts[0], value: parts[1] };
+ });
+
+export const parseMetricsAsMap = (
+ cvssStr: string
+): Map =>
+ parseMetrics(parseVector(cvssStr) || '').reduce(
+ (
+ res: Map,
+ metric: KeyValue
+ ): Map => {
+ if (res.has(metric.key as BaseMetric)) {
+ throw new Error(
+ `Duplicated metric: "${metric.key}:${metric.value || ''}"`
+ );
+ }
+
+ return res.set(metric.key as BaseMetric, metric.value as BaseMetricValue);
+ },
+ new Map()
+ );
diff --git a/src/score-calculator.ts b/src/score-calculator.ts
new file mode 100644
index 0000000..a3dafb4
--- /dev/null
+++ b/src/score-calculator.ts
@@ -0,0 +1,142 @@
+import { BaseMetric, BaseMetricValue } from './models';
+import { parseMetricsAsMap } from './parser';
+import { validate } from './validator';
+
+// https://www.first.org/cvss/v3.1/specification-document#7-4-Metric-Values
+const baseMetricValueScores: Record<
+ BaseMetric,
+ Partial> | null
+> = {
+ [BaseMetric.ATTACK_VECTOR]: { N: 0.85, A: 0.62, L: 0.55, P: 0.2 },
+ [BaseMetric.ATTACK_COMPLEXITY]: { L: 0.77, H: 0.44 },
+ [BaseMetric.PRIVILEGES_REQUIRED]: null, // scope-dependent: see getPrivilegesRequiredNumericValue()
+ [BaseMetric.USER_INTERACTION]: { N: 0.85, R: 0.62 },
+ [BaseMetric.SCOPE]: { U: 0, C: 0 },
+ [BaseMetric.CONFIDENTIALITY]: { N: 0, L: 0.22, H: 0.56 },
+ [BaseMetric.INTEGRITY]: { N: 0, L: 0.22, H: 0.56 },
+ [BaseMetric.AVAILABILITY]: { N: 0, L: 0.22, H: 0.56 }
+};
+
+const getPrivilegesRequiredNumericValue = (
+ value: BaseMetricValue,
+ scopeValue: BaseMetricValue
+): number => {
+ if (scopeValue !== 'U' && scopeValue !== 'C') {
+ throw new Error(`Unknown Scope value: ${scopeValue}`);
+ }
+
+ switch (value) {
+ case 'N':
+ return 0.85;
+ case 'L':
+ return scopeValue === 'U' ? 0.62 : 0.68;
+ case 'H':
+ return scopeValue === 'U' ? 0.27 : 0.5;
+ default:
+ throw new Error(`Unknown PrivilegesRequired value: ${value}`);
+ }
+};
+
+const getMetricValue = (
+ metric: BaseMetric,
+ metricsMap: Map
+): BaseMetricValue => {
+ if (!metricsMap.has(metric)) {
+ throw new Error(`Missing metric: ${metric}`);
+ }
+
+ return metricsMap.get(metric) as BaseMetricValue;
+};
+
+const getMetricNumericValue = (
+ metric: BaseMetric,
+ metricsMap: Map
+): number => {
+ const value = getMetricValue(metric, metricsMap);
+
+ if (metric === BaseMetric.PRIVILEGES_REQUIRED) {
+ return getPrivilegesRequiredNumericValue(
+ value,
+ getMetricValue(BaseMetric.SCOPE, metricsMap)
+ );
+ }
+
+ const score: Partial> | null =
+ baseMetricValueScores[metric];
+ if (!score) {
+ throw new Error(`Internal error. Missing metric score: ${metric}`);
+ }
+
+ return score[value]!;
+};
+
+// ISS = 1 - [ (1 - Confidentiality) ร (1 - Integrity) ร (1 - Availability) ]
+export const calculateIss = (
+ metricsMap: Map
+): number => {
+ const confidentiality = getMetricNumericValue(
+ BaseMetric.CONFIDENTIALITY,
+ metricsMap
+ );
+ const integrity = getMetricNumericValue(BaseMetric.INTEGRITY, metricsMap);
+ const availability = getMetricNumericValue(
+ BaseMetric.AVAILABILITY,
+ metricsMap
+ );
+
+ return 1 - (1 - confidentiality) * (1 - integrity) * (1 - availability);
+};
+
+// https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations
+// Impact =
+// If Scope is Unchanged 6.42 ร ISS
+// If Scope is Changed 7.52 ร (ISS - 0.029) - 3.25 ร (ISS - 0.02)
+export const calculateImpact = (
+ metricsMap: Map,
+ iss: number
+): number =>
+ metricsMap.get(BaseMetric.SCOPE) === 'U'
+ ? 6.42 * iss
+ : 7.52 * (iss - 0.029) - 3.25 * Math.pow(iss - 0.02, 15);
+
+// https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations
+// Exploitability = 8.22 ร AttackVector ร AttackComplexity ร PrivilegesRequired ร UserInteraction
+export const calculateExploitability = (
+ metricsMap: Map
+): number =>
+ 8.22 *
+ getMetricNumericValue(BaseMetric.ATTACK_VECTOR, metricsMap) *
+ getMetricNumericValue(BaseMetric.ATTACK_COMPLEXITY, metricsMap) *
+ getMetricNumericValue(BaseMetric.PRIVILEGES_REQUIRED, metricsMap) *
+ getMetricNumericValue(BaseMetric.USER_INTERACTION, metricsMap);
+
+// https://www.first.org/cvss/v3.1/specification-document#Appendix-A---Floating-Point-Rounding
+const roundUp = (input: number): number => {
+ const intInput = Math.round(input * 100000);
+
+ return intInput % 10000 === 0
+ ? intInput / 100000
+ : (Math.floor(intInput / 10000) + 1) / 10;
+};
+
+// https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations
+// If Impact <= 0 => 0; else
+// If Scope is Unchanged => Roundup (Minimum [(Impact + Exploitability), 10])
+// If Scope is Changed => Roundup (Minimum [1.08 ร (Impact + Exploitability), 10])
+export const calculateBaseScore = (cvssString: string): number => {
+ validate(cvssString);
+
+ const metricsMap: Map = parseMetricsAsMap(
+ cvssString
+ );
+ const iss = calculateIss(metricsMap);
+ const impact = calculateImpact(metricsMap, iss);
+ const exploitability = calculateExploitability(metricsMap);
+ const scopeUnchanged = metricsMap.get(BaseMetric.SCOPE) === 'U';
+
+ return impact <= 0
+ ? 0
+ : scopeUnchanged
+ ? roundUp(Math.min(impact + exploitability, 10))
+ : roundUp(Math.min(1.08 * (impact + exploitability), 10));
+};
diff --git a/src/validator.ts b/src/validator.ts
new file mode 100644
index 0000000..e6d5d72
--- /dev/null
+++ b/src/validator.ts
@@ -0,0 +1,94 @@
+import {
+ BaseMetric,
+ baseMetrics,
+ BaseMetricValue,
+ baseMetricValues
+} from './models';
+import { humanizeBaseMetric, humanizeBaseMetricValue } from './humanizer';
+import { parseMetricsAsMap, parseVector, parseVersion } from './parser';
+
+export const validateVersion = (versionStr: string | null): void => {
+ if (!versionStr) {
+ throw new Error(
+ 'Invalid CVSS string. Example: CVSS:3.0/AV:A/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L'
+ );
+ }
+
+ if (versionStr !== '3.0' && versionStr !== '3.1') {
+ throw new Error(
+ `Unsupported CVSS version: ${versionStr}. Only 3.0 and 3.1 are supported`
+ );
+ }
+};
+
+const validateVector = (vectorStr: string | null): void => {
+ if (!vectorStr || vectorStr.includes('//')) {
+ throw new Error(
+ 'Invalid CVSS string. Example: CVSS:3.0/AV:A/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L'
+ );
+ }
+};
+
+const checkUnknownBaseMetrics = (metricsMap: Map): void => {
+ [...metricsMap.keys()].forEach((userMetric: string) => {
+ if (!baseMetrics.includes(userMetric as BaseMetric)) {
+ throw new Error(
+ `Unknown CVSS metric "${userMetric}". Allowed metrics: ${baseMetrics.join(
+ ', '
+ )}`
+ );
+ }
+ });
+};
+
+const checkMandatoryBaseMetrics = (metricsMap: Map): void => {
+ baseMetrics.forEach((baseMetric: BaseMetric) => {
+ if (!metricsMap.has(baseMetric)) {
+ // eslint-disable-next-line max-len
+ throw new Error(
+ `Missing mandatory CVSS base metric ${baseMetric} (${humanizeBaseMetric(
+ baseMetric
+ )})`
+ );
+ }
+ });
+};
+
+const checkBaseMetricsValues = (metricsMap: Map): void => {
+ baseMetrics.forEach((baseMetric: BaseMetric) => {
+ const userValue = metricsMap.get(baseMetric);
+ if (!baseMetricValues[baseMetric].includes(userValue as BaseMetricValue)) {
+ const allowedValuesHumanized = baseMetricValues[baseMetric]
+ .map(
+ (value: BaseMetricValue) =>
+ `${value} (${humanizeBaseMetricValue(value, baseMetric)})`
+ )
+ .join(', ');
+ // eslint-disable-next-line max-len
+ throw new Error(
+ `Invalid value for CVSS metric ${baseMetric} (${humanizeBaseMetric(
+ baseMetric
+ )})${
+ userValue ? `: ${userValue}` : ''
+ }. Allowed values: ${allowedValuesHumanized}`
+ );
+ }
+ });
+};
+
+export const validate = (cvssStr: string): void => {
+ if (!cvssStr || !cvssStr.startsWith('CVSS:')) {
+ throw new Error('CVSS vector must start with "CVSS:"');
+ }
+
+ const versionStr = parseVersion(cvssStr);
+ validateVersion(versionStr);
+
+ const vectorStr = parseVector(cvssStr);
+ validateVector(vectorStr);
+
+ const metricsMap: Map = parseMetricsAsMap(cvssStr);
+ checkUnknownBaseMetrics(metricsMap);
+ checkMandatoryBaseMetrics(metricsMap);
+ checkBaseMetricsValues(metricsMap);
+};
diff --git a/tests/.eslintrc b/tests/.eslintrc
new file mode 100644
index 0000000..9a842e0
--- /dev/null
+++ b/tests/.eslintrc
@@ -0,0 +1,8 @@
+{
+ "extends": ["../.eslintrc"],
+ "parserOptions": {
+ "ecmaVersion": 2018,
+ "project": "./tsconfig.spec.json",
+ "sourceType": "module"
+ }
+}
diff --git a/tests/humanizer.spec.ts b/tests/humanizer.spec.ts
new file mode 100644
index 0000000..907a977
--- /dev/null
+++ b/tests/humanizer.spec.ts
@@ -0,0 +1,55 @@
+import {
+ BaseMetric,
+ BaseMetricValue,
+ humanizeBaseMetric,
+ humanizeBaseMetricValue
+} from '../src';
+import { expect } from 'chai';
+
+describe('humanizer', () => {
+ it('should humanize base metric AV', () => {
+ const result = humanizeBaseMetric(BaseMetric.ATTACK_VECTOR);
+ expect(result).to.equal('Attack Vector');
+ });
+
+ it('should produce "Unknown" for unknown metric', () => {
+ const result = humanizeBaseMetric(('X' as unknown) as BaseMetric);
+ expect(result).to.equal('Unknown');
+ });
+
+ it('should humanize base metric AV value L', () => {
+ const result = humanizeBaseMetricValue('L', BaseMetric.ATTACK_VECTOR);
+ expect(result).to.equal('Local');
+ });
+
+ it('should humanize base metric A value L', () => {
+ const result = humanizeBaseMetricValue('L', BaseMetric.AVAILABILITY);
+ expect(result).to.equal('Low');
+ });
+
+ it('should humanize base metric AV value N', () => {
+ const result = humanizeBaseMetricValue('N', BaseMetric.ATTACK_VECTOR);
+ expect(result).to.equal('Network');
+ });
+
+ it('should humanize base metric C value N', () => {
+ const result = humanizeBaseMetricValue('N', BaseMetric.CONFIDENTIALITY);
+ expect(result).to.equal('None');
+ });
+
+ it('should produce "Unknown" for unknown value of existing metric', () => {
+ const result = humanizeBaseMetricValue(
+ ('X' as unknown) as BaseMetricValue,
+ BaseMetric.SCOPE
+ );
+ expect(result).to.equal('Unknown');
+ });
+
+ it('should produce "Unknown" for unknown value of unknown metric', () => {
+ const result = humanizeBaseMetricValue(
+ ('X' as unknown) as BaseMetricValue,
+ ('X' as unknown) as BaseMetric
+ );
+ expect(result).to.equal('Unknown');
+ });
+});
diff --git a/tests/parser.spec.ts b/tests/parser.spec.ts
new file mode 100644
index 0000000..580b63a
--- /dev/null
+++ b/tests/parser.spec.ts
@@ -0,0 +1,37 @@
+import { parseVersion, parseMetricsAsMap, parseVector } from '../src';
+import { expect } from 'chai';
+
+describe('parser', () => {
+ it('should parse version (3.0)', () => {
+ expect(
+ parseVersion('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.equal('3.0');
+ });
+
+ it('should parse version (3.1)', () => {
+ expect(
+ parseVersion('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.equal('3.1');
+ });
+
+ it('should parse vector', () => {
+ expect(
+ parseVector('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.equal('AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H');
+ });
+
+ it('should parse metrics as map', () => {
+ expect(parseMetricsAsMap('CVSS:3.1/AV:N/AC:L')).to.deep.equal(
+ new Map([
+ ['AV', 'N'],
+ ['AC', 'L']
+ ])
+ );
+ });
+
+ it('should throw an exception on duplicated metric', () => {
+ expect(() =>
+ parseMetricsAsMap('CVSS:3.1/AV:N/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N')
+ ).to.throw();
+ });
+});
diff --git a/tests/score-calculator.spec.ts b/tests/score-calculator.spec.ts
new file mode 100644
index 0000000..874821d
--- /dev/null
+++ b/tests/score-calculator.spec.ts
@@ -0,0 +1,73 @@
+import { calculateBaseScore } from '../src';
+import { expect } from 'chai';
+
+describe('calculator', () => {
+ it('should calculate "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N" score as 8.6', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N'
+ );
+ expect(result).to.equal(8.6);
+ });
+
+ it('should calculate "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" score as 10.0', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H'
+ );
+ expect(result).to.equal(10);
+ });
+
+ it('should calculate "CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:N" score as 0.0', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:N'
+ );
+ expect(result).to.equal(0);
+ });
+
+ // https://www.first.org/cvss/user-guide#3-1-CVSS-Scoring-in-the-Exploit-Life-Cycle
+ it('should calculate "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" score as 7.5', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
+ );
+ expect(result).to.equal(7.5);
+ });
+
+ // https://www.first.org/cvss/user-guide#3-1-CVSS-Scoring-in-the-Exploit-Life-Cycle
+ it('should calculate "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H" score as 7.8', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
+ );
+ expect(result).to.equal(7.8);
+ });
+
+ // https://www.first.org/cvss/user-guide#3-6-Vulnerable-Components-Protected-by-a-Firewall
+ it('should calculate "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N" score as 6.4', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'
+ );
+ expect(result).to.equal(6.4);
+ });
+
+ it('should calculate "CVSS:3.1/S:C/C:L/I:L/A:N/AV:N/AC:L/PR:L/UI:N" (non-normalized order) score as 6.4', () => {
+ const result = calculateBaseScore(
+ 'CVSS:3.1/S:C/C:L/I:L/A:N/AV:N/AC:L/PR:L/UI:N'
+ );
+ expect(result).to.equal(6.4);
+ });
+
+ // https://www.first.org/cvss/user-guide#3-1-CVSS-Scoring-in-the-Exploit-Life-Cycle
+ it('should throw an exception on empty value', () => {
+ expect(() => calculateBaseScore('')).to.throw();
+ });
+
+ // https://www.first.org/cvss/user-guide#3-1-CVSS-Scoring-in-the-Exploit-Life-Cycle
+ it('should throw an exception on missing metric', () => {
+ expect(() => calculateBaseScore('CVSS:3.0/A:H')).to.throw();
+ });
+
+ // https://www.first.org/cvss/user-guide#3-1-CVSS-Scoring-in-the-Exploit-Life-Cycle
+ it('should throw an exception on unsupported version', () => {
+ expect(() =>
+ calculateBaseScore('CVSS:2.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N')
+ ).to.throw();
+ });
+});
diff --git a/tests/validator.spec.ts b/tests/validator.spec.ts
new file mode 100644
index 0000000..c80fad9
--- /dev/null
+++ b/tests/validator.spec.ts
@@ -0,0 +1,64 @@
+import { validate } from '../src';
+import { expect } from 'chai';
+
+describe('parser', () => {
+ it('should produce exception on string without version', () => {
+ expect(() => validate('/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')).to.throw(
+ 'must start with'
+ );
+ });
+
+ it('should not produce exception on valid 3.0 string', () => {
+ expect(() =>
+ validate('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).not.to.throw();
+ });
+
+ it('should not produce exception on valid 3.1 string', () => {
+ expect(() =>
+ validate('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.not.throw();
+ });
+
+ it('should produce exception on unsupported 2.0 string', () => {
+ expect(() =>
+ validate('CVSS:2.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.throw(/Unsupported.*2\.0/);
+ });
+
+ it('should produce exception on unsupported 1.0 string', () => {
+ expect(() =>
+ validate('CVSS:1.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.throw(/Unsupported.*1\.0/);
+ });
+
+ it('should produce exception on duplicated metric', () => {
+ expect(() =>
+ validate('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H/AC:L')
+ ).to.throw(/Duplicated.*AC:L/);
+ });
+
+ it('should produce exception on unknown metric', () => {
+ expect(() =>
+ validate('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/X:H/A:H')
+ ).to.throw(/Unknown.*"X"/);
+ });
+
+ it('should produce exception on invalid metric value', () => {
+ expect(() =>
+ validate('CVSS:3.1/AV:N/AC:L/PR:X/UI:N/S:C/C:H/I:H/A:H')
+ ).to.throw(/Invalid.*PR.*X.*Allowed/);
+ });
+
+ it('should produce exception on missing mandatory metric', () => {
+ expect(() => validate('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/I:H/A:H')).to.throw(
+ /Missing mandatory.*Confidentiality/
+ );
+ });
+
+ it('should produce exception on double separator', () => {
+ expect(() =>
+ validate('CVSS:3.1/AV:N/AC:L//PR:N/UI:N/S:C/C:H/I:H/A:H')
+ ).to.throw('Invalid');
+ });
+});
diff --git a/tsconfig.json b/tsconfig.json
index 6743fcb..16a455a 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,13 +2,12 @@
"compilerOptions": {
"baseUrl": ".",
"outDir": "dist",
+ "declarationDir": "dist",
"target": "es2018",
- "lib": [
- "es2018"
- ],
- "module": "commonjs",
+ "lib": ["es2018"],
+ "module": "ES2015",
"esModuleInterop": true,
- "resolveJsonModule": true,
+ "resolveJsonModule": false,
"noImplicitThis": true,
"alwaysStrict": true,
"noFallthroughCasesInSwitch": true,
@@ -24,22 +23,13 @@
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
- "typeRoots": [
- "node_modules/@types",
- "@types"
- ],
+ "typeRoots": ["node_modules/@types", "@types"],
"skipLibCheck": true,
"newLine": "LF",
"declaration": true,
- "inlineSources": true,
- "inlineSourceMap": true
+ "inlineSources": false,
+ "inlineSourceMap": false
},
- "include": [
- "src"
- ],
- "exclude": [
- "node_modules",
- "dist",
- "tests"
- ]
+ "include": ["src"],
+ "exclude": ["node_modules", "dist", "tests"]
}
diff --git a/tsconfig.spec.json b/tsconfig.spec.json
new file mode 100644
index 0000000..c632268
--- /dev/null
+++ b/tsconfig.spec.json
@@ -0,0 +1,11 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc/libs/auth-providers",
+ "module": "CommonJS",
+ "types": ["mocha", "node"],
+ "target": "ES5"
+ },
+ "include": ["tests/**/*.spec.ts"],
+ "exclude": ["node_modules", "dist"]
+}