VYPR
Critical severityOSV Advisory· Published Jul 25, 2022· Updated Sep 17, 2024

Insecure Randomness

CVE-2021-23451

Description

The package otp-generator before 3.0.0 are vulnerable to Insecure Randomness due to insecure generation of random one-time passwords, which may allow a brute-force attack.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
otp-generatornpm
< 3.0.03.0.0

Affected products

1

Patches

1
b27de1ce439a

Changed Math.Random with crypto.randomInt

https://github.com/Maheshkumar-Kakade/otp-generatorMaheshkumar KakadeOct 17, 2021via ghsa
4 files changed · +564 503
  • index.js+3 6 modified
    @@ -1,16 +1,13 @@
     /**
      * Generate password from allowed word
      */
    +const crypto = require('crypto')
    +
     const digits = '0123456789'
     const alphabets = 'abcdefghijklmnopqrstuvwxyz'
     const upperCase = alphabets.toUpperCase()
     const specialChars = '#!&@'
     
    -function rand (min, max) {
    -  const random = Math.random()
    -  return Math.floor(random * (max - min) + min)
    -}
    -
     module.exports = {
       /**
        * Generate OTP of the length
    @@ -36,7 +33,7 @@ module.exports = {
           ((generateOptions.specialChars || '') && specialChars)
         let password = ''
         while (password.length < length) {
    -      const charIndex = rand(0, allowsChars.length - 1)
    +      const charIndex = crypto.randomInt(0, allowsChars.length)
           password += allowsChars[charIndex]
         }
         return password
    
  • package.json+4 1 modified
    @@ -1,8 +1,11 @@
     {
       "name": "otp-generator",
    -  "version": "2.0.1",
    +  "version": "3.0.0",
       "description": "One time password generator",
       "main": "index.js",
    +  "engines": {
    +    "node": ">=14.10.0"
    +  },
       "scripts": {
         "test": "standard && istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/",
         "cov": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
    
  • package-lock.json+556 495 modified
    @@ -1,31 +1,31 @@
     {
       "name": "otp-generator",
    -  "version": "2.0.0",
    +  "version": "3.0.0",
       "lockfileVersion": 1,
       "requires": true,
       "dependencies": {
         "@babel/code-frame": {
    -      "version": "7.12.13",
    -      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
    -      "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
    +      "version": "7.15.8",
    +      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
    +      "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
           "dev": true,
           "requires": {
    -        "@babel/highlight": "^7.12.13"
    +        "@babel/highlight": "^7.14.5"
           }
         },
         "@babel/helper-validator-identifier": {
    -      "version": "7.14.0",
    -      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
    -      "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
    +      "version": "7.15.7",
    +      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
    +      "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
           "dev": true
         },
         "@babel/highlight": {
    -      "version": "7.14.0",
    -      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
    -      "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
    +      "version": "7.14.5",
    +      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
    +      "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
           "dev": true,
           "requires": {
    -        "@babel/helper-validator-identifier": "^7.14.0",
    +        "@babel/helper-validator-identifier": "^7.14.5",
             "chalk": "^2.0.0",
             "js-tokens": "^4.0.0"
           },
    @@ -89,9 +89,9 @@
           }
         },
         "@eslint/eslintrc": {
    -      "version": "0.2.2",
    -      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz",
    -      "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==",
    +      "version": "0.3.0",
    +      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
    +      "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.4",
    @@ -101,7 +101,7 @@
             "ignore": "^4.0.6",
             "import-fresh": "^3.2.1",
             "js-yaml": "^3.13.1",
    -        "lodash": "^4.17.19",
    +        "lodash": "^4.17.20",
             "minimatch": "^3.0.4",
             "strip-json-comments": "^3.1.1"
           }
    @@ -131,9 +131,9 @@
           "dev": true
         },
         "acorn-jsx": {
    -      "version": "5.3.1",
    -      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
    -      "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
    +      "version": "5.3.2",
    +      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
    +      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
           "dev": true
         },
         "ajv": {
    @@ -162,9 +162,9 @@
           "dev": true
         },
         "ansi-regex": {
    -      "version": "3.0.0",
    -      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
    -      "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
    +      "version": "5.0.1",
    +      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
    +      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
           "dev": true
         },
         "ansi-styles": {
    @@ -196,39 +196,38 @@
           }
         },
         "array-includes": {
    -      "version": "3.1.3",
    -      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
    -      "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
    +      "version": "3.1.4",
    +      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
    +      "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.0-next.2",
    +        "es-abstract": "^1.19.1",
             "get-intrinsic": "^1.1.1",
    -        "is-string": "^1.0.5"
    +        "is-string": "^1.0.7"
           }
         },
         "array.prototype.flat": {
    -      "version": "1.2.4",
    -      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
    -      "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
    +      "version": "1.2.5",
    +      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
    +      "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
           "dev": true,
           "requires": {
    -        "call-bind": "^1.0.0",
    +        "call-bind": "^1.0.2",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.0-next.1"
    +        "es-abstract": "^1.19.0"
           }
         },
         "array.prototype.flatmap": {
    -      "version": "1.2.4",
    -      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz",
    -      "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==",
    +      "version": "1.2.5",
    +      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
    +      "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.0",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.0-next.1",
    -        "function-bind": "^1.1.1"
    +        "es-abstract": "^1.19.0"
           }
         },
         "asn1": {
    @@ -247,9 +246,9 @@
           "dev": true
         },
         "astral-regex": {
    -      "version": "1.0.0",
    -      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
    -      "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
    +      "version": "2.0.0",
    +      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
    +      "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
           "dev": true
         },
         "async": {
    @@ -351,9 +350,9 @@
           "dev": true
         },
         "chalk": {
    -      "version": "4.1.1",
    -      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
    -      "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
    +      "version": "4.1.2",
    +      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
    +      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
           "dev": true,
           "requires": {
             "ansi-styles": "^4.1.0",
    @@ -402,40 +401,6 @@
             "string-width": "^4.2.0",
             "strip-ansi": "^6.0.0",
             "wrap-ansi": "^7.0.0"
    -      },
    -      "dependencies": {
    -        "ansi-regex": {
    -          "version": "5.0.0",
    -          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
    -          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
    -          "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",
    -          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
    -          "dev": true
    -        },
    -        "string-width": {
    -          "version": "4.2.2",
    -          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
    -          "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
    -          "dev": true,
    -          "requires": {
    -            "emoji-regex": "^8.0.0",
    -            "is-fullwidth-code-point": "^3.0.0",
    -            "strip-ansi": "^6.0.0"
    -          }
    -        },
    -        "strip-ansi": {
    -          "version": "6.0.0",
    -          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
    -          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
    -          "dev": true,
    -          "requires": {
    -            "ansi-regex": "^5.0.0"
    -          }
    -        }
           }
         },
         "color-convert": {
    @@ -468,22 +433,16 @@
           "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
           "dev": true
         },
    -    "contains-path": {
    -      "version": "0.1.0",
    -      "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
    -      "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
    -      "dev": true
    -    },
         "core-util-is": {
           "version": "1.0.2",
           "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
           "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
           "dev": true
         },
         "coveralls": {
    -      "version": "3.1.0",
    -      "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz",
    -      "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==",
    +      "version": "3.1.1",
    +      "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz",
    +      "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==",
           "dev": true,
           "requires": {
             "js-yaml": "^3.13.1",
    @@ -548,9 +507,9 @@
           "dev": true
         },
         "deep-is": {
    -      "version": "0.1.3",
    -      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
    -      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
    +      "version": "0.1.4",
    +      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
    +      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
           "dev": true
         },
         "define-properties": {
    @@ -618,22 +577,26 @@
           }
         },
         "es-abstract": {
    -      "version": "1.18.3",
    -      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
    -      "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
    +      "version": "1.19.1",
    +      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
    +      "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
             "es-to-primitive": "^1.2.1",
             "function-bind": "^1.1.1",
             "get-intrinsic": "^1.1.1",
    +        "get-symbol-description": "^1.0.0",
             "has": "^1.0.3",
             "has-symbols": "^1.0.2",
    -        "is-callable": "^1.2.3",
    +        "internal-slot": "^1.0.3",
    +        "is-callable": "^1.2.4",
             "is-negative-zero": "^2.0.1",
    -        "is-regex": "^1.1.3",
    -        "is-string": "^1.0.6",
    -        "object-inspect": "^1.10.3",
    +        "is-regex": "^1.1.4",
    +        "is-shared-array-buffer": "^1.0.1",
    +        "is-string": "^1.0.7",
    +        "is-weakref": "^1.0.1",
    +        "object-inspect": "^1.11.0",
             "object-keys": "^1.1.1",
             "object.assign": "^4.1.2",
             "string.prototype.trimend": "^1.0.4",
    @@ -675,24 +638,16 @@
             "esutils": "^2.0.2",
             "optionator": "^0.8.1",
             "source-map": "~0.2.0"
    -      },
    -      "dependencies": {
    -        "esprima": {
    -          "version": "2.7.3",
    -          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
    -          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
    -          "dev": true
    -        }
           }
         },
         "eslint": {
    -      "version": "7.13.0",
    -      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz",
    -      "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==",
    +      "version": "7.18.0",
    +      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz",
    +      "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.0.0",
    -        "@eslint/eslintrc": "^0.2.1",
    +        "@eslint/eslintrc": "^0.3.0",
             "ajv": "^6.10.0",
             "chalk": "^4.0.0",
             "cross-spawn": "^7.0.2",
    @@ -702,10 +657,10 @@
             "eslint-scope": "^5.1.1",
             "eslint-utils": "^2.1.0",
             "eslint-visitor-keys": "^2.0.0",
    -        "espree": "^7.3.0",
    +        "espree": "^7.3.1",
             "esquery": "^1.2.0",
             "esutils": "^2.0.2",
    -        "file-entry-cache": "^5.0.1",
    +        "file-entry-cache": "^6.0.0",
             "functional-red-black-tree": "^1.0.1",
             "glob-parent": "^5.0.0",
             "globals": "^12.1.0",
    @@ -716,7 +671,7 @@
             "js-yaml": "^3.13.1",
             "json-stable-stringify-without-jsonify": "^1.0.1",
             "levn": "^0.4.1",
    -        "lodash": "^4.17.19",
    +        "lodash": "^4.17.20",
             "minimatch": "^3.0.4",
             "natural-compare": "^1.4.0",
             "optionator": "^0.9.1",
    @@ -725,17 +680,11 @@
             "semver": "^7.2.1",
             "strip-ansi": "^6.0.0",
             "strip-json-comments": "^3.1.0",
    -        "table": "^5.2.3",
    +        "table": "^6.0.4",
             "text-table": "^0.2.0",
             "v8-compile-cache": "^2.0.3"
           },
           "dependencies": {
    -        "ansi-regex": {
    -          "version": "5.0.0",
    -          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
    -          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
    -          "dev": true
    -        },
             "levn": {
               "version": "0.4.1",
               "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
    @@ -766,15 +715,6 @@
               "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
               "dev": true
             },
    -        "strip-ansi": {
    -          "version": "6.0.0",
    -          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
    -          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
    -          "dev": true,
    -          "requires": {
    -            "ansi-regex": "^5.0.0"
    -          }
    -        },
             "type-check": {
               "version": "0.4.0",
               "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
    @@ -787,9 +727,9 @@
           }
         },
         "eslint-config-standard": {
    -      "version": "16.0.2",
    -      "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz",
    -      "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==",
    +      "version": "16.0.3",
    +      "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz",
    +      "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==",
           "dev": true
         },
         "eslint-config-standard-jsx": {
    @@ -799,30 +739,24 @@
           "dev": true
         },
         "eslint-import-resolver-node": {
    -      "version": "0.3.4",
    -      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
    -      "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
    +      "version": "0.3.6",
    +      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
    +      "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
           "dev": true,
           "requires": {
    -        "debug": "^2.6.9",
    -        "resolve": "^1.13.1"
    +        "debug": "^3.2.7",
    +        "resolve": "^1.20.0"
           },
           "dependencies": {
             "debug": {
    -          "version": "2.6.9",
    -          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
    -          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
    +          "version": "3.2.7",
    +          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
    +          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
               "dev": true,
               "requires": {
    -            "ms": "2.0.0"
    +            "ms": "^2.1.1"
               }
             },
    -        "ms": {
    -          "version": "2.0.0",
    -          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
    -          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
    -          "dev": true
    -        },
             "resolve": {
               "version": "1.20.0",
               "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
    @@ -836,12 +770,13 @@
           }
         },
         "eslint-module-utils": {
    -      "version": "2.6.1",
    -      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz",
    -      "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==",
    +      "version": "2.7.1",
    +      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz",
    +      "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==",
           "dev": true,
           "requires": {
             "debug": "^3.2.7",
    +        "find-up": "^2.1.0",
             "pkg-dir": "^2.0.0"
           },
           "dependencies": {
    @@ -853,6 +788,49 @@
               "requires": {
                 "ms": "^2.1.1"
               }
    +        },
    +        "find-up": {
    +          "version": "2.1.0",
    +          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
    +          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
    +          "dev": true,
    +          "requires": {
    +            "locate-path": "^2.0.0"
    +          }
    +        },
    +        "locate-path": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
    +          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
    +          "dev": true,
    +          "requires": {
    +            "p-locate": "^2.0.0",
    +            "path-exists": "^3.0.0"
    +          }
    +        },
    +        "p-limit": {
    +          "version": "1.3.0",
    +          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
    +          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
    +          "dev": true,
    +          "requires": {
    +            "p-try": "^1.0.0"
    +          }
    +        },
    +        "p-locate": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
    +          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
    +          "dev": true,
    +          "requires": {
    +            "p-limit": "^1.1.0"
    +          }
    +        },
    +        "path-exists": {
    +          "version": "3.0.0",
    +          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
    +          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
    +          "dev": true
             }
           }
         },
    @@ -867,24 +845,26 @@
           }
         },
         "eslint-plugin-import": {
    -      "version": "2.22.1",
    -      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz",
    -      "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==",
    +      "version": "2.24.2",
    +      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz",
    +      "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==",
           "dev": true,
           "requires": {
    -        "array-includes": "^3.1.1",
    -        "array.prototype.flat": "^1.2.3",
    -        "contains-path": "^0.1.0",
    +        "array-includes": "^3.1.3",
    +        "array.prototype.flat": "^1.2.4",
             "debug": "^2.6.9",
    -        "doctrine": "1.5.0",
    -        "eslint-import-resolver-node": "^0.3.4",
    -        "eslint-module-utils": "^2.6.0",
    +        "doctrine": "^2.1.0",
    +        "eslint-import-resolver-node": "^0.3.6",
    +        "eslint-module-utils": "^2.6.2",
    +        "find-up": "^2.0.0",
             "has": "^1.0.3",
    +        "is-core-module": "^2.6.0",
             "minimatch": "^3.0.4",
    -        "object.values": "^1.1.1",
    -        "read-pkg-up": "^2.0.0",
    -        "resolve": "^1.17.0",
    -        "tsconfig-paths": "^3.9.0"
    +        "object.values": "^1.1.4",
    +        "pkg-up": "^2.0.0",
    +        "read-pkg-up": "^3.0.0",
    +        "resolve": "^1.20.0",
    +        "tsconfig-paths": "^3.11.0"
           },
           "dependencies": {
             "debug": {
    @@ -897,13 +877,31 @@
               }
             },
             "doctrine": {
    -          "version": "1.5.0",
    -          "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
    -          "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
    +          "version": "2.1.0",
    +          "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
    +          "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
    +          "dev": true,
    +          "requires": {
    +            "esutils": "^2.0.2"
    +          }
    +        },
    +        "find-up": {
    +          "version": "2.1.0",
    +          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
    +          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
    +          "dev": true,
    +          "requires": {
    +            "locate-path": "^2.0.0"
    +          }
    +        },
    +        "locate-path": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
    +          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
               "dev": true,
               "requires": {
    -            "esutils": "^2.0.2",
    -            "isarray": "^1.0.0"
    +            "p-locate": "^2.0.0",
    +            "path-exists": "^3.0.0"
               }
             },
             "ms": {
    @@ -912,6 +910,30 @@
               "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
               "dev": true
             },
    +        "p-limit": {
    +          "version": "1.3.0",
    +          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
    +          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
    +          "dev": true,
    +          "requires": {
    +            "p-try": "^1.0.0"
    +          }
    +        },
    +        "p-locate": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
    +          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
    +          "dev": true,
    +          "requires": {
    +            "p-limit": "^1.1.0"
    +          }
    +        },
    +        "path-exists": {
    +          "version": "3.0.0",
    +          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
    +          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
    +          "dev": true
    +        },
             "resolve": {
               "version": "1.20.0",
               "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
    @@ -963,28 +985,30 @@
           }
         },
         "eslint-plugin-promise": {
    -      "version": "4.2.1",
    -      "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz",
    -      "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==",
    +      "version": "5.1.0",
    +      "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz",
    +      "integrity": "sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==",
           "dev": true
         },
         "eslint-plugin-react": {
    -      "version": "7.21.5",
    -      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz",
    -      "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==",
    +      "version": "7.25.3",
    +      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.3.tgz",
    +      "integrity": "sha512-ZMbFvZ1WAYSZKY662MBVEWR45VaBT6KSJCiupjrNlcdakB90juaZeDCbJq19e73JZQubqFtgETohwgAt8u5P6w==",
           "dev": true,
           "requires": {
    -        "array-includes": "^3.1.1",
    -        "array.prototype.flatmap": "^1.2.3",
    +        "array-includes": "^3.1.3",
    +        "array.prototype.flatmap": "^1.2.4",
             "doctrine": "^2.1.0",
    -        "has": "^1.0.3",
    +        "estraverse": "^5.2.0",
             "jsx-ast-utils": "^2.4.1 || ^3.0.0",
    -        "object.entries": "^1.1.2",
    -        "object.fromentries": "^2.0.2",
    -        "object.values": "^1.1.1",
    +        "minimatch": "^3.0.4",
    +        "object.entries": "^1.1.4",
    +        "object.fromentries": "^2.0.4",
    +        "object.hasown": "^1.0.0",
    +        "object.values": "^1.1.4",
             "prop-types": "^15.7.2",
    -        "resolve": "^1.18.1",
    -        "string.prototype.matchall": "^4.0.2"
    +        "resolve": "^2.0.0-next.3",
    +        "string.prototype.matchall": "^4.0.5"
           },
           "dependencies": {
             "doctrine": {
    @@ -996,10 +1020,16 @@
                 "esutils": "^2.0.2"
               }
             },
    +        "estraverse": {
    +          "version": "5.2.0",
    +          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
    +          "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
    +          "dev": true
    +        },
             "resolve": {
    -          "version": "1.20.0",
    -          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
    -          "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
    +          "version": "2.0.0-next.3",
    +          "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
    +          "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
               "dev": true,
               "requires": {
                 "is-core-module": "^2.2.0",
    @@ -1069,9 +1099,9 @@
           }
         },
         "esprima": {
    -      "version": "4.0.1",
    -      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
    -      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
    +      "version": "2.7.3",
    +      "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
    +      "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
           "dev": true
         },
         "esquery": {
    @@ -1151,12 +1181,12 @@
           "dev": true
         },
         "file-entry-cache": {
    -      "version": "5.0.1",
    -      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
    -      "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
    +      "version": "6.0.1",
    +      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
    +      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
           "dev": true,
           "requires": {
    -        "flat-cache": "^2.0.1"
    +        "flat-cache": "^3.0.4"
           }
         },
         "fill-range": {
    @@ -1185,20 +1215,19 @@
           "dev": true
         },
         "flat-cache": {
    -      "version": "2.0.1",
    -      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
    -      "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
    +      "version": "3.0.4",
    +      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
    +      "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
           "dev": true,
           "requires": {
    -        "flatted": "^2.0.0",
    -        "rimraf": "2.6.3",
    -        "write": "1.0.3"
    +        "flatted": "^3.1.0",
    +        "rimraf": "^3.0.2"
           }
         },
         "flatted": {
    -      "version": "2.0.2",
    -      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
    -      "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
    +      "version": "3.2.2",
    +      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
    +      "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==",
           "dev": true
         },
         "forever-agent": {
    @@ -1266,6 +1295,16 @@
           "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
           "dev": true
         },
    +    "get-symbol-description": {
    +      "version": "1.0.0",
    +      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
    +      "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
    +      "dev": true,
    +      "requires": {
    +        "call-bind": "^1.0.2",
    +        "get-intrinsic": "^1.1.1"
    +      }
    +    },
         "getpass": {
           "version": "0.1.7",
           "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
    @@ -1307,9 +1346,9 @@
           }
         },
         "graceful-fs": {
    -      "version": "4.2.6",
    -      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
    -      "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
    +      "version": "4.2.8",
    +      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
    +      "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
           "dev": true
         },
         "growl": {
    @@ -1382,6 +1421,15 @@
           "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
           "dev": true
         },
    +    "has-tostringtag": {
    +      "version": "1.0.0",
    +      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
    +      "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
    +      "dev": true,
    +      "requires": {
    +        "has-symbols": "^1.0.2"
    +      }
    +    },
         "he": {
           "version": "1.2.0",
           "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
    @@ -1461,10 +1509,13 @@
           "dev": true
         },
         "is-bigint": {
    -      "version": "1.0.2",
    -      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
    -      "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==",
    -      "dev": true
    +      "version": "1.0.4",
    +      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
    +      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
    +      "dev": true,
    +      "requires": {
    +        "has-bigints": "^1.0.1"
    +      }
         },
         "is-binary-path": {
           "version": "2.1.0",
    @@ -1476,34 +1527,38 @@
           }
         },
         "is-boolean-object": {
    -      "version": "1.1.1",
    -      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
    -      "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
    +      "version": "1.1.2",
    +      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
    +      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
           "dev": true,
           "requires": {
    -        "call-bind": "^1.0.2"
    +        "call-bind": "^1.0.2",
    +        "has-tostringtag": "^1.0.0"
           }
         },
         "is-callable": {
    -      "version": "1.2.3",
    -      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
    -      "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
    +      "version": "1.2.4",
    +      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
    +      "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
           "dev": true
         },
         "is-core-module": {
    -      "version": "2.4.0",
    -      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
    -      "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
    +      "version": "2.8.0",
    +      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
    +      "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
           "dev": true,
           "requires": {
             "has": "^1.0.3"
           }
         },
         "is-date-object": {
    -      "version": "1.0.4",
    -      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
    -      "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==",
    -      "dev": true
    +      "version": "1.0.5",
    +      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
    +      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
    +      "dev": true,
    +      "requires": {
    +        "has-tostringtag": "^1.0.0"
    +      }
         },
         "is-extglob": {
           "version": "2.1.1",
    @@ -1512,15 +1567,15 @@
           "dev": true
         },
         "is-fullwidth-code-point": {
    -      "version": "2.0.0",
    -      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
    -      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
    +      "version": "3.0.0",
    +      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
    +      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
           "dev": true
         },
         "is-glob": {
    -      "version": "4.0.1",
    -      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
    -      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
    +      "version": "4.0.3",
    +      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
    +      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
           "dev": true,
           "requires": {
             "is-extglob": "^2.1.1"
    @@ -1539,10 +1594,13 @@
           "dev": true
         },
         "is-number-object": {
    -      "version": "1.0.5",
    -      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
    -      "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==",
    -      "dev": true
    +      "version": "1.0.6",
    +      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
    +      "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
    +      "dev": true,
    +      "requires": {
    +        "has-tostringtag": "^1.0.0"
    +      }
         },
         "is-plain-obj": {
           "version": "2.1.0",
    @@ -1551,21 +1609,30 @@
           "dev": true
         },
         "is-regex": {
    -      "version": "1.1.3",
    -      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
    -      "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
    +      "version": "1.1.4",
    +      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
    +      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
    -        "has-symbols": "^1.0.2"
    +        "has-tostringtag": "^1.0.0"
           }
         },
    -    "is-string": {
    -      "version": "1.0.6",
    -      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
    -      "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==",
    +    "is-shared-array-buffer": {
    +      "version": "1.0.1",
    +      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
    +      "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
           "dev": true
         },
    +    "is-string": {
    +      "version": "1.0.7",
    +      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
    +      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
    +      "dev": true,
    +      "requires": {
    +        "has-tostringtag": "^1.0.0"
    +      }
    +    },
         "is-symbol": {
           "version": "1.0.4",
           "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
    @@ -1581,11 +1648,14 @@
           "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
           "dev": true
         },
    -    "isarray": {
    -      "version": "1.0.0",
    -      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
    -      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
    -      "dev": true
    +    "is-weakref": {
    +      "version": "1.0.1",
    +      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz",
    +      "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==",
    +      "dev": true,
    +      "requires": {
    +        "call-bind": "^1.0.0"
    +      }
         },
         "isexe": {
           "version": "2.0.0",
    @@ -1619,14 +1689,6 @@
             "supports-color": "^3.1.0",
             "which": "^1.1.1",
             "wordwrap": "^1.0.0"
    -      },
    -      "dependencies": {
    -        "esprima": {
    -          "version": "2.7.3",
    -          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
    -          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
    -          "dev": true
    -        }
           }
         },
         "js-tokens": {
    @@ -1643,6 +1705,14 @@
           "requires": {
             "argparse": "^1.0.7",
             "esprima": "^4.0.0"
    +      },
    +      "dependencies": {
    +        "esprima": {
    +          "version": "4.0.1",
    +          "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
    +          "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
    +          "dev": true
    +        }
           }
         },
         "jsbn": {
    @@ -1703,12 +1773,12 @@
           }
         },
         "jsx-ast-utils": {
    -      "version": "3.2.0",
    -      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz",
    -      "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==",
    +      "version": "3.2.1",
    +      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
    +      "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
           "dev": true,
           "requires": {
    -        "array-includes": "^3.1.2",
    +        "array-includes": "^3.1.3",
             "object.assign": "^4.1.2"
           }
         },
    @@ -1729,14 +1799,14 @@
           }
         },
         "load-json-file": {
    -      "version": "2.0.0",
    -      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
    -      "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
    +      "version": "4.0.0",
    +      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
    +      "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
           "dev": true,
           "requires": {
             "graceful-fs": "^4.1.2",
    -        "parse-json": "^2.2.0",
    -        "pify": "^2.0.0",
    +        "parse-json": "^4.0.0",
    +        "pify": "^3.0.0",
             "strip-bom": "^3.0.0"
           }
         },
    @@ -1755,6 +1825,18 @@
           "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
           "dev": true
         },
    +    "lodash.clonedeep": {
    +      "version": "4.5.0",
    +      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
    +      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
    +      "dev": true
    +    },
    +    "lodash.truncate": {
    +      "version": "4.4.2",
    +      "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
    +      "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
    +      "dev": true
    +    },
         "log-driver": {
           "version": "1.2.7",
           "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz",
    @@ -1789,18 +1871,18 @@
           }
         },
         "mime-db": {
    -      "version": "1.48.0",
    -      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
    -      "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==",
    +      "version": "1.50.0",
    +      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
    +      "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==",
           "dev": true
         },
         "mime-types": {
    -      "version": "2.1.31",
    -      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
    -      "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
    +      "version": "2.1.33",
    +      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz",
    +      "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==",
           "dev": true,
           "requires": {
    -        "mime-db": "1.48.0"
    +        "mime-db": "1.50.0"
           }
         },
         "minimatch": {
    @@ -1997,9 +2079,9 @@
           "dev": true
         },
         "object-inspect": {
    -      "version": "1.10.3",
    -      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
    -      "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
    +      "version": "1.11.0",
    +      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
    +      "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
           "dev": true
         },
         "object-keys": {
    @@ -2021,37 +2103,46 @@
           }
         },
         "object.entries": {
    -      "version": "1.1.4",
    -      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz",
    -      "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==",
    +      "version": "1.1.5",
    +      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
    +      "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.2"
    +        "es-abstract": "^1.19.1"
           }
         },
         "object.fromentries": {
    -      "version": "2.0.4",
    -      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz",
    -      "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==",
    +      "version": "2.0.5",
    +      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
    +      "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.0-next.2",
    -        "has": "^1.0.3"
    +        "es-abstract": "^1.19.1"
    +      }
    +    },
    +    "object.hasown": {
    +      "version": "1.1.0",
    +      "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
    +      "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
    +      "dev": true,
    +      "requires": {
    +        "define-properties": "^1.1.3",
    +        "es-abstract": "^1.19.1"
           }
         },
         "object.values": {
    -      "version": "1.1.4",
    -      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz",
    -      "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==",
    +      "version": "1.1.5",
    +      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
    +      "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.2"
    +        "es-abstract": "^1.19.1"
           }
         },
         "once": {
    @@ -2111,12 +2202,13 @@
           }
         },
         "parse-json": {
    -      "version": "2.2.0",
    -      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
    -      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
    +      "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.2.0"
    +        "error-ex": "^1.3.1",
    +        "json-parse-better-errors": "^1.0.1"
           }
         },
         "path-exists": {
    @@ -2144,12 +2236,12 @@
           "dev": true
         },
         "path-type": {
    -      "version": "2.0.0",
    -      "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
    -      "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
    +      "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": "^2.0.0"
    +        "pify": "^3.0.0"
           }
         },
         "performance-now": {
    @@ -2165,9 +2257,9 @@
           "dev": true
         },
         "pify": {
    -      "version": "2.3.0",
    -      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
    -      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
    +      "version": "3.0.0",
    +      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
    +      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
           "dev": true
         },
         "pkg-conf": {
    @@ -2236,16 +2328,6 @@
               "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
               "dev": true
             },
    -        "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"
    -          }
    -        },
             "path-exists": {
               "version": "3.0.0",
               "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
    @@ -2320,6 +2402,60 @@
             }
           }
         },
    +    "pkg-up": {
    +      "version": "2.0.0",
    +      "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
    +      "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
    +      "dev": true,
    +      "requires": {
    +        "find-up": "^2.1.0"
    +      },
    +      "dependencies": {
    +        "find-up": {
    +          "version": "2.1.0",
    +          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
    +          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
    +          "dev": true,
    +          "requires": {
    +            "locate-path": "^2.0.0"
    +          }
    +        },
    +        "locate-path": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
    +          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
    +          "dev": true,
    +          "requires": {
    +            "p-locate": "^2.0.0",
    +            "path-exists": "^3.0.0"
    +          }
    +        },
    +        "p-limit": {
    +          "version": "1.3.0",
    +          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
    +          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
    +          "dev": true,
    +          "requires": {
    +            "p-try": "^1.0.0"
    +          }
    +        },
    +        "p-locate": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
    +          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
    +          "dev": true,
    +          "requires": {
    +            "p-limit": "^1.1.0"
    +          }
    +        },
    +        "path-exists": {
    +          "version": "3.0.0",
    +          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
    +          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
    +          "dev": true
    +        }
    +      }
    +    },
         "prelude-ls": {
           "version": "1.1.2",
           "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
    @@ -2377,24 +2513,24 @@
           "dev": true
         },
         "read-pkg": {
    -      "version": "2.0.0",
    -      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
    -      "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
    +      "version": "3.0.0",
    +      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
    +      "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
           "dev": true,
           "requires": {
    -        "load-json-file": "^2.0.0",
    +        "load-json-file": "^4.0.0",
             "normalize-package-data": "^2.3.2",
    -        "path-type": "^2.0.0"
    +        "path-type": "^3.0.0"
           }
         },
         "read-pkg-up": {
    -      "version": "2.0.0",
    -      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
    -      "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
    +      "version": "3.0.0",
    +      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
    +      "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
           "dev": true,
           "requires": {
             "find-up": "^2.0.0",
    -        "read-pkg": "^2.0.0"
    +        "read-pkg": "^3.0.0"
           },
           "dependencies": {
             "find-up": {
    @@ -2462,9 +2598,9 @@
           }
         },
         "regexpp": {
    -      "version": "3.1.0",
    -      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
    -      "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
    +      "version": "3.2.0",
    +      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
    +      "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
           "dev": true
         },
         "request": {
    @@ -2501,6 +2637,12 @@
           "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
           "dev": true
         },
    +    "require-from-string": {
    +      "version": "2.0.2",
    +      "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
    +      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
    +      "dev": true
    +    },
         "resolve": {
           "version": "1.1.7",
           "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
    @@ -2514,18 +2656,18 @@
           "dev": true
         },
         "rimraf": {
    -      "version": "2.6.3",
    -      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
    -      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
    +      "version": "3.0.2",
    +      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
    +      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
           "dev": true,
           "requires": {
             "glob": "^7.1.3"
           },
           "dependencies": {
             "glob": {
    -          "version": "7.1.7",
    -          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
    -          "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
    +          "version": "7.2.0",
    +          "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
    +          "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
               "dev": true,
               "requires": {
                 "fs.realpath": "^1.0.0",
    @@ -2649,40 +2791,14 @@
           }
         },
         "slice-ansi": {
    -      "version": "2.1.0",
    -      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
    -      "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
    +      "version": "4.0.0",
    +      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
    +      "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
           "dev": true,
           "requires": {
    -        "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
    -        }
    +        "ansi-styles": "^4.0.0",
    +        "astral-regex": "^2.0.0",
    +        "is-fullwidth-code-point": "^3.0.0"
           }
         },
         "source-map": {
    @@ -2722,9 +2838,9 @@
           }
         },
         "spdx-license-ids": {
    -      "version": "3.0.9",
    -      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz",
    -      "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==",
    +      "version": "3.0.10",
    +      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz",
    +      "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==",
           "dev": true
         },
         "sprintf-js": {
    @@ -2751,18 +2867,18 @@
           }
         },
         "standard": {
    -      "version": "16.0.3",
    -      "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz",
    -      "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==",
    +      "version": "16.0.4",
    +      "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.4.tgz",
    +      "integrity": "sha512-2AGI874RNClW4xUdM+bg1LRXVlYLzTNEkHmTG5mhyn45OhbgwA+6znowkOGYy+WMb5HRyELvtNy39kcdMQMcYQ==",
           "dev": true,
           "requires": {
    -        "eslint": "~7.13.0",
    -        "eslint-config-standard": "16.0.2",
    +        "eslint": "~7.18.0",
    +        "eslint-config-standard": "16.0.3",
             "eslint-config-standard-jsx": "10.0.0",
    -        "eslint-plugin-import": "~2.22.1",
    +        "eslint-plugin-import": "~2.24.2",
             "eslint-plugin-node": "~11.1.0",
    -        "eslint-plugin-promise": "~4.2.1",
    -        "eslint-plugin-react": "~7.21.5",
    +        "eslint-plugin-promise": "~5.1.0",
    +        "eslint-plugin-react": "~7.25.1",
             "standard-engine": "^14.0.1"
           }
         },
    @@ -2779,24 +2895,25 @@
           }
         },
         "string-width": {
    -      "version": "2.1.1",
    -      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
    -      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
    +      "version": "4.2.3",
    +      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
    +      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
           "dev": true,
           "requires": {
    -        "is-fullwidth-code-point": "^2.0.0",
    -        "strip-ansi": "^4.0.0"
    +        "emoji-regex": "^8.0.0",
    +        "is-fullwidth-code-point": "^3.0.0",
    +        "strip-ansi": "^6.0.1"
           }
         },
         "string.prototype.matchall": {
    -      "version": "4.0.5",
    -      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz",
    -      "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==",
    +      "version": "4.0.6",
    +      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
    +      "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
           "dev": true,
           "requires": {
             "call-bind": "^1.0.2",
             "define-properties": "^1.1.3",
    -        "es-abstract": "^1.18.2",
    +        "es-abstract": "^1.19.1",
             "get-intrinsic": "^1.1.1",
             "has-symbols": "^1.0.2",
             "internal-slot": "^1.0.3",
    @@ -2825,12 +2942,12 @@
           }
         },
         "strip-ansi": {
    -      "version": "4.0.0",
    -      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
    -      "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
    +      "version": "6.0.1",
    +      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
    +      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
           "dev": true,
           "requires": {
    -        "ansi-regex": "^3.0.0"
    +        "ansi-regex": "^5.0.1"
           }
         },
         "strip-bom": {
    @@ -2855,48 +2972,36 @@
           }
         },
         "table": {
    -      "version": "5.4.6",
    -      "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
    -      "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
    +      "version": "6.7.2",
    +      "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz",
    +      "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==",
           "dev": true,
           "requires": {
    -        "ajv": "^6.10.2",
    -        "lodash": "^4.17.14",
    -        "slice-ansi": "^2.1.0",
    -        "string-width": "^3.0.0"
    +        "ajv": "^8.0.1",
    +        "lodash.clonedeep": "^4.5.0",
    +        "lodash.truncate": "^4.4.2",
    +        "slice-ansi": "^4.0.0",
    +        "string-width": "^4.2.3",
    +        "strip-ansi": "^6.0.1"
           },
           "dependencies": {
    -        "ansi-regex": {
    -          "version": "4.1.0",
    -          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
    -          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
    -          "dev": true
    -        },
    -        "emoji-regex": {
    -          "version": "7.0.3",
    -          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
    -          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
    -          "dev": true
    -        },
    -        "string-width": {
    -          "version": "3.1.0",
    -          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
    -          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
    +        "ajv": {
    +          "version": "8.6.3",
    +          "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz",
    +          "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==",
               "dev": true,
               "requires": {
    -            "emoji-regex": "^7.0.1",
    -            "is-fullwidth-code-point": "^2.0.0",
    -            "strip-ansi": "^5.1.0"
    +            "fast-deep-equal": "^3.1.1",
    +            "json-schema-traverse": "^1.0.0",
    +            "require-from-string": "^2.0.2",
    +            "uri-js": "^4.2.2"
               }
             },
    -        "strip-ansi": {
    -          "version": "5.2.0",
    -          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
    -          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
    -          "dev": true,
    -          "requires": {
    -            "ansi-regex": "^4.1.0"
    -          }
    +        "json-schema-traverse": {
    +          "version": "1.0.0",
    +          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
    +          "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
    +          "dev": true
             }
           }
         },
    @@ -2926,9 +3031,9 @@
           }
         },
         "tsconfig-paths": {
    -      "version": "3.9.0",
    -      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
    -      "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
    +      "version": "3.11.0",
    +      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz",
    +      "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==",
           "dev": true,
           "requires": {
             "@types/json5": "^0.0.29",
    @@ -2968,9 +3073,9 @@
           "dev": true
         },
         "uglify-js": {
    -      "version": "3.13.9",
    -      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.9.tgz",
    -      "integrity": "sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==",
    +      "version": "3.14.2",
    +      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz",
    +      "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==",
           "dev": true,
           "optional": true
         },
    @@ -3057,6 +3162,39 @@
           "dev": true,
           "requires": {
             "string-width": "^1.0.2 || 2"
    +      },
    +      "dependencies": {
    +        "ansi-regex": {
    +          "version": "3.0.0",
    +          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
    +          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
    +          "dev": true
    +        },
    +        "is-fullwidth-code-point": {
    +          "version": "2.0.0",
    +          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
    +          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
    +          "dev": true
    +        },
    +        "string-width": {
    +          "version": "2.1.1",
    +          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
    +          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
    +          "dev": true,
    +          "requires": {
    +            "is-fullwidth-code-point": "^2.0.0",
    +            "strip-ansi": "^4.0.0"
    +          }
    +        },
    +        "strip-ansi": {
    +          "version": "4.0.0",
    +          "resolved": "https://registry.np
    ... [truncated]
    
  • README.md+1 1 modified
    @@ -24,7 +24,7 @@ npm install otp-generator --save
     ## Usage
     
     ```js
    -var otpGenerator = require('otp-generator')
    +const otpGenerator = require('otp-generator')
     
     otpGenerator.generate(6, { upperCase: false, specialChars: false });
     
    

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.