VYPR
Medium severity6.2NVD Advisory· Published May 3, 2024· Updated Apr 15, 2026

CVE-2024-34075

CVE-2024-34075

Description

kurwov is a fast, dependency-free library for creating Markov Chains. An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly. If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the code will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called). Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases. This issue has been addressed in version 3.2.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
kurwovnpm
>= 3.1.0, < 3.2.53.2.5

Patches

2
85d63e652594

Merge pull request from GHSA-hfrv-h3q8-9jpr

https://github.com/xiboon/kurwovkubusMay 3, 2024via ghsa
3 files changed · +2307 7
  • package.json+3 6 modified
    @@ -1,7 +1,7 @@
     {
       "name": "kurwov",
       "description": "a markov chain library",
    -  "version": "3.2.4",
    +  "version": "3.2.5",
       "files": [
         "dist"
       ],
    @@ -35,14 +35,11 @@
         "@types/node": "^17.0.25",
         "@typescript-eslint/eslint-plugin": "^5.19.0",
         "@typescript-eslint/parser": "^5.19.0",
    -    "0x": "^5.4.1",
         "eslint": "^8.13.0",
         "eslint-config-prettier": "^8.5.0",
         "eslint-plugin-prettier": "^4.0.0",
    -    "kurwov": "2.1",
         "prettier": "^2.6.2",
    -    "tisbench": "^1.1.0",
    -    "typescript": "^4.7.2",
    +    "typescript": "^5.4.5",
         "unbuild": "^0.8.11"
       }
    -}
    +}
    \ No newline at end of file
    
  • pnpm-lock.yaml+2303 0 added
    @@ -0,0 +1,2303 @@
    +lockfileVersion: '6.0'
    +
    +settings:
    +  autoInstallPeers: true
    +  excludeLinksFromLockfile: false
    +
    +devDependencies:
    +  '@types/node':
    +    specifier: ^17.0.25
    +    version: 17.0.45
    +  '@typescript-eslint/eslint-plugin':
    +    specifier: ^5.19.0
    +    version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5)
    +  '@typescript-eslint/parser':
    +    specifier: ^5.19.0
    +    version: 5.62.0(eslint@8.57.0)(typescript@5.4.5)
    +  eslint:
    +    specifier: ^8.13.0
    +    version: 8.57.0
    +  eslint-config-prettier:
    +    specifier: ^8.5.0
    +    version: 8.10.0(eslint@8.57.0)
    +  eslint-plugin-prettier:
    +    specifier: ^4.0.0
    +    version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@2.8.8)
    +  prettier:
    +    specifier: ^2.6.2
    +    version: 2.8.8
    +  typescript:
    +    specifier: ^5.4.5
    +    version: 5.4.5
    +  unbuild:
    +    specifier: ^0.8.11
    +    version: 0.8.11
    +
    +packages:
    +
    +  /@ampproject/remapping@2.3.0:
    +    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
    +    engines: {node: '>=6.0.0'}
    +    dependencies:
    +      '@jridgewell/gen-mapping': 0.3.5
    +      '@jridgewell/trace-mapping': 0.3.25
    +    dev: true
    +
    +  /@babel/code-frame@7.24.2:
    +    resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/highlight': 7.24.5
    +      picocolors: 1.0.0
    +    dev: true
    +
    +  /@babel/compat-data@7.24.4:
    +    resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /@babel/core@7.24.5:
    +    resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@ampproject/remapping': 2.3.0
    +      '@babel/code-frame': 7.24.2
    +      '@babel/generator': 7.24.5
    +      '@babel/helper-compilation-targets': 7.23.6
    +      '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
    +      '@babel/helpers': 7.24.5
    +      '@babel/parser': 7.24.5
    +      '@babel/template': 7.24.0
    +      '@babel/traverse': 7.24.5
    +      '@babel/types': 7.24.5
    +      convert-source-map: 2.0.0
    +      debug: 4.3.4
    +      gensync: 1.0.0-beta.2
    +      json5: 2.2.3
    +      semver: 6.3.1
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@babel/generator@7.24.5:
    +    resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/types': 7.24.5
    +      '@jridgewell/gen-mapping': 0.3.5
    +      '@jridgewell/trace-mapping': 0.3.25
    +      jsesc: 2.5.2
    +    dev: true
    +
    +  /@babel/helper-compilation-targets@7.23.6:
    +    resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/compat-data': 7.24.4
    +      '@babel/helper-validator-option': 7.23.5
    +      browserslist: 4.23.0
    +      lru-cache: 5.1.1
    +      semver: 6.3.1
    +    dev: true
    +
    +  /@babel/helper-environment-visitor@7.22.20:
    +    resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /@babel/helper-function-name@7.23.0:
    +    resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/template': 7.24.0
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/helper-hoist-variables@7.22.5:
    +    resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/helper-module-imports@7.24.3:
    +    resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5):
    +    resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==}
    +    engines: {node: '>=6.9.0'}
    +    peerDependencies:
    +      '@babel/core': ^7.0.0
    +    dependencies:
    +      '@babel/core': 7.24.5
    +      '@babel/helper-environment-visitor': 7.22.20
    +      '@babel/helper-module-imports': 7.24.3
    +      '@babel/helper-simple-access': 7.24.5
    +      '@babel/helper-split-export-declaration': 7.24.5
    +      '@babel/helper-validator-identifier': 7.24.5
    +    dev: true
    +
    +  /@babel/helper-simple-access@7.24.5:
    +    resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/helper-split-export-declaration@7.24.5:
    +    resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/helper-string-parser@7.24.1:
    +    resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /@babel/helper-validator-identifier@7.24.5:
    +    resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /@babel/helper-validator-option@7.23.5:
    +    resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /@babel/helpers@7.24.5:
    +    resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/template': 7.24.0
    +      '@babel/traverse': 7.24.5
    +      '@babel/types': 7.24.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@babel/highlight@7.24.5:
    +    resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==}
    +    engines: {node: '>=6.9.0'}
    +    requiresBuild: true
    +    dependencies:
    +      '@babel/helper-validator-identifier': 7.24.5
    +      chalk: 2.4.2
    +      js-tokens: 4.0.0
    +      picocolors: 1.0.0
    +    dev: true
    +
    +  /@babel/parser@7.24.5:
    +    resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
    +    engines: {node: '>=6.0.0'}
    +    hasBin: true
    +    dependencies:
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/standalone@7.24.5:
    +    resolution: {integrity: sha512-Sl8oN9bGfRlNUA2jzfzoHEZxFBDliBlwi5mPVCAWKSlBNkXXJOHpu7SDOqjF6mRoTa6GNX/1kAWG3Tr+YQ3N7A==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /@babel/template@7.24.0:
    +    resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/code-frame': 7.24.2
    +      '@babel/parser': 7.24.5
    +      '@babel/types': 7.24.5
    +    dev: true
    +
    +  /@babel/traverse@7.24.5:
    +    resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/code-frame': 7.24.2
    +      '@babel/generator': 7.24.5
    +      '@babel/helper-environment-visitor': 7.22.20
    +      '@babel/helper-function-name': 7.23.0
    +      '@babel/helper-hoist-variables': 7.22.5
    +      '@babel/helper-split-export-declaration': 7.24.5
    +      '@babel/parser': 7.24.5
    +      '@babel/types': 7.24.5
    +      debug: 4.3.4
    +      globals: 11.12.0
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@babel/types@7.24.5:
    +    resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==}
    +    engines: {node: '>=6.9.0'}
    +    dependencies:
    +      '@babel/helper-string-parser': 7.24.1
    +      '@babel/helper-validator-identifier': 7.24.5
    +      to-fast-properties: 2.0.0
    +    dev: true
    +
    +  /@esbuild/android-arm@0.15.18:
    +    resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [android]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /@esbuild/linux-loong64@0.14.54:
    +    resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
    +    engines: {node: '>=12'}
    +    cpu: [loong64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /@esbuild/linux-loong64@0.15.18:
    +    resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
    +    engines: {node: '>=12'}
    +    cpu: [loong64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
    +    dependencies:
    +      eslint: 8.57.0
    +      eslint-visitor-keys: 3.4.3
    +    dev: true
    +
    +  /@eslint-community/regexpp@4.10.0:
    +    resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
    +    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
    +    dev: true
    +
    +  /@eslint/eslintrc@2.1.4:
    +    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dependencies:
    +      ajv: 6.12.6
    +      debug: 4.3.4
    +      espree: 9.6.1
    +      globals: 13.24.0
    +      ignore: 5.3.1
    +      import-fresh: 3.3.0
    +      js-yaml: 4.1.0
    +      minimatch: 3.1.2
    +      strip-json-comments: 3.1.1
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@eslint/js@8.57.0:
    +    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dev: true
    +
    +  /@humanwhocodes/config-array@0.11.14:
    +    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
    +    engines: {node: '>=10.10.0'}
    +    dependencies:
    +      '@humanwhocodes/object-schema': 2.0.3
    +      debug: 4.3.4
    +      minimatch: 3.1.2
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@humanwhocodes/module-importer@1.0.1:
    +    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
    +    engines: {node: '>=12.22'}
    +    dev: true
    +
    +  /@humanwhocodes/object-schema@2.0.3:
    +    resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
    +    dev: true
    +
    +  /@jridgewell/gen-mapping@0.3.5:
    +    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
    +    engines: {node: '>=6.0.0'}
    +    dependencies:
    +      '@jridgewell/set-array': 1.2.1
    +      '@jridgewell/sourcemap-codec': 1.4.15
    +      '@jridgewell/trace-mapping': 0.3.25
    +    dev: true
    +
    +  /@jridgewell/resolve-uri@3.1.2:
    +    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    +    engines: {node: '>=6.0.0'}
    +    dev: true
    +
    +  /@jridgewell/set-array@1.2.1:
    +    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    +    engines: {node: '>=6.0.0'}
    +    dev: true
    +
    +  /@jridgewell/sourcemap-codec@1.4.15:
    +    resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
    +    dev: true
    +
    +  /@jridgewell/trace-mapping@0.3.25:
    +    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    +    dependencies:
    +      '@jridgewell/resolve-uri': 3.1.2
    +      '@jridgewell/sourcemap-codec': 1.4.15
    +    dev: true
    +
    +  /@nodelib/fs.scandir@2.1.5:
    +    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    +    engines: {node: '>= 8'}
    +    dependencies:
    +      '@nodelib/fs.stat': 2.0.5
    +      run-parallel: 1.2.0
    +    dev: true
    +
    +  /@nodelib/fs.stat@2.0.5:
    +    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    +    engines: {node: '>= 8'}
    +    dev: true
    +
    +  /@nodelib/fs.walk@1.2.8:
    +    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    +    engines: {node: '>= 8'}
    +    dependencies:
    +      '@nodelib/fs.scandir': 2.1.5
    +      fastq: 1.17.1
    +    dev: true
    +
    +  /@rollup/plugin-alias@3.1.9(rollup@2.79.1):
    +    resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==}
    +    engines: {node: '>=8.0.0'}
    +    peerDependencies:
    +      rollup: ^1.20.0||^2.0.0
    +    dependencies:
    +      rollup: 2.79.1
    +      slash: 3.0.0
    +    dev: true
    +
    +  /@rollup/plugin-commonjs@22.0.2(rollup@2.79.1):
    +    resolution: {integrity: sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==}
    +    engines: {node: '>= 12.0.0'}
    +    peerDependencies:
    +      rollup: ^2.68.0
    +    dependencies:
    +      '@rollup/pluginutils': 3.1.0(rollup@2.79.1)
    +      commondir: 1.0.1
    +      estree-walker: 2.0.2
    +      glob: 7.2.3
    +      is-reference: 1.2.1
    +      magic-string: 0.25.9
    +      resolve: 1.22.8
    +      rollup: 2.79.1
    +    dev: true
    +
    +  /@rollup/plugin-json@4.1.0(rollup@2.79.1):
    +    resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==}
    +    peerDependencies:
    +      rollup: ^1.20.0 || ^2.0.0
    +    dependencies:
    +      '@rollup/pluginutils': 3.1.0(rollup@2.79.1)
    +      rollup: 2.79.1
    +    dev: true
    +
    +  /@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1):
    +    resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==}
    +    engines: {node: '>= 10.0.0'}
    +    peerDependencies:
    +      rollup: ^2.42.0
    +    dependencies:
    +      '@rollup/pluginutils': 3.1.0(rollup@2.79.1)
    +      '@types/resolve': 1.17.1
    +      deepmerge: 4.3.1
    +      is-builtin-module: 3.2.1
    +      is-module: 1.0.0
    +      resolve: 1.22.8
    +      rollup: 2.79.1
    +    dev: true
    +
    +  /@rollup/plugin-replace@4.0.0(rollup@2.79.1):
    +    resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==}
    +    peerDependencies:
    +      rollup: ^1.20.0 || ^2.0.0
    +    dependencies:
    +      '@rollup/pluginutils': 3.1.0(rollup@2.79.1)
    +      magic-string: 0.25.9
    +      rollup: 2.79.1
    +    dev: true
    +
    +  /@rollup/pluginutils@3.1.0(rollup@2.79.1):
    +    resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
    +    engines: {node: '>= 8.0.0'}
    +    peerDependencies:
    +      rollup: ^1.20.0||^2.0.0
    +    dependencies:
    +      '@types/estree': 0.0.39
    +      estree-walker: 1.0.1
    +      picomatch: 2.3.1
    +      rollup: 2.79.1
    +    dev: true
    +
    +  /@rollup/pluginutils@4.2.1:
    +    resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
    +    engines: {node: '>= 8.0.0'}
    +    dependencies:
    +      estree-walker: 2.0.2
    +      picomatch: 2.3.1
    +    dev: true
    +
    +  /@types/estree@0.0.39:
    +    resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
    +    dev: true
    +
    +  /@types/estree@1.0.5:
    +    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
    +    dev: true
    +
    +  /@types/json-schema@7.0.15:
    +    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
    +    dev: true
    +
    +  /@types/node@17.0.45:
    +    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
    +    dev: true
    +
    +  /@types/resolve@1.17.1:
    +    resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
    +    dependencies:
    +      '@types/node': 17.0.45
    +    dev: true
    +
    +  /@types/semver@7.5.8:
    +    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
    +    dev: true
    +
    +  /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5):
    +    resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/parser': ^5.0.0
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@eslint-community/regexpp': 4.10.0
    +      '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5)
    +      '@typescript-eslint/scope-manager': 5.62.0
    +      '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5)
    +      '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5)
    +      debug: 4.3.4
    +      eslint: 8.57.0
    +      graphemer: 1.4.0
    +      ignore: 5.3.1
    +      natural-compare-lite: 1.4.0
    +      semver: 7.6.0
    +      tsutils: 3.21.0(typescript@5.4.5)
    +      typescript: 5.4.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5):
    +    resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/scope-manager': 5.62.0
    +      '@typescript-eslint/types': 5.62.0
    +      '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5)
    +      debug: 4.3.4
    +      eslint: 8.57.0
    +      typescript: 5.4.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@typescript-eslint/scope-manager@5.62.0:
    +    resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dependencies:
    +      '@typescript-eslint/types': 5.62.0
    +      '@typescript-eslint/visitor-keys': 5.62.0
    +    dev: true
    +
    +  /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.4.5):
    +    resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5)
    +      '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5)
    +      debug: 4.3.4
    +      eslint: 8.57.0
    +      tsutils: 3.21.0(typescript@5.4.5)
    +      typescript: 5.4.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@typescript-eslint/types@5.62.0:
    +    resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dev: true
    +
    +  /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5):
    +    resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/types': 5.62.0
    +      '@typescript-eslint/visitor-keys': 5.62.0
    +      debug: 4.3.4
    +      globby: 11.1.0
    +      is-glob: 4.0.3
    +      semver: 7.6.0
    +      tsutils: 3.21.0(typescript@5.4.5)
    +      typescript: 5.4.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5):
    +    resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +    dependencies:
    +      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
    +      '@types/json-schema': 7.0.15
    +      '@types/semver': 7.5.8
    +      '@typescript-eslint/scope-manager': 5.62.0
    +      '@typescript-eslint/types': 5.62.0
    +      '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5)
    +      eslint: 8.57.0
    +      eslint-scope: 5.1.1
    +      semver: 7.6.0
    +    transitivePeerDependencies:
    +      - supports-color
    +      - typescript
    +    dev: true
    +
    +  /@typescript-eslint/visitor-keys@5.62.0:
    +    resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dependencies:
    +      '@typescript-eslint/types': 5.62.0
    +      eslint-visitor-keys: 3.4.3
    +    dev: true
    +
    +  /@ungap/structured-clone@1.2.0:
    +    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
    +    dev: true
    +
    +  /acorn-jsx@5.3.2(acorn@8.11.3):
    +    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    +    peerDependencies:
    +      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    +    dependencies:
    +      acorn: 8.11.3
    +    dev: true
    +
    +  /acorn@8.11.3:
    +    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
    +    engines: {node: '>=0.4.0'}
    +    hasBin: true
    +    dev: true
    +
    +  /ajv@6.12.6:
    +    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
    +    dependencies:
    +      fast-deep-equal: 3.1.3
    +      fast-json-stable-stringify: 2.1.0
    +      json-schema-traverse: 0.4.1
    +      uri-js: 4.4.1
    +    dev: true
    +
    +  /ansi-regex@5.0.1:
    +    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    +    engines: {node: '>=8'}
    +    dev: true
    +
    +  /ansi-styles@3.2.1:
    +    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
    +    engines: {node: '>=4'}
    +    requiresBuild: true
    +    dependencies:
    +      color-convert: 1.9.3
    +    dev: true
    +
    +  /ansi-styles@4.3.0:
    +    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    +    engines: {node: '>=8'}
    +    dependencies:
    +      color-convert: 2.0.1
    +    dev: true
    +
    +  /argparse@2.0.1:
    +    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    +    dev: true
    +
    +  /array-union@2.1.0:
    +    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
    +    engines: {node: '>=8'}
    +    dev: true
    +
    +  /balanced-match@1.0.2:
    +    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +    dev: true
    +
    +  /brace-expansion@1.1.11:
    +    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
    +    dependencies:
    +      balanced-match: 1.0.2
    +      concat-map: 0.0.1
    +    dev: true
    +
    +  /braces@3.0.2:
    +    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
    +    engines: {node: '>=8'}
    +    dependencies:
    +      fill-range: 7.0.1
    +    dev: true
    +
    +  /browserslist@4.23.0:
    +    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
    +    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    +    hasBin: true
    +    dependencies:
    +      caniuse-lite: 1.0.30001615
    +      electron-to-chromium: 1.4.755
    +      node-releases: 2.0.14
    +      update-browserslist-db: 1.0.14(browserslist@4.23.0)
    +    dev: true
    +
    +  /builtin-modules@3.3.0:
    +    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
    +    engines: {node: '>=6'}
    +    dev: true
    +
    +  /callsites@3.1.0:
    +    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
    +    engines: {node: '>=6'}
    +    dev: true
    +
    +  /caniuse-lite@1.0.30001615:
    +    resolution: {integrity: sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==}
    +    dev: true
    +
    +  /chalk@2.4.2:
    +    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
    +    engines: {node: '>=4'}
    +    requiresBuild: true
    +    dependencies:
    +      ansi-styles: 3.2.1
    +      escape-string-regexp: 1.0.5
    +      supports-color: 5.5.0
    +    dev: true
    +
    +  /chalk@4.1.2:
    +    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
    +    engines: {node: '>=10'}
    +    dependencies:
    +      ansi-styles: 4.3.0
    +      supports-color: 7.2.0
    +    dev: true
    +
    +  /chalk@5.3.0:
    +    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
    +    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
    +    dev: true
    +
    +  /color-convert@1.9.3:
    +    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
    +    requiresBuild: true
    +    dependencies:
    +      color-name: 1.1.3
    +    dev: true
    +
    +  /color-convert@2.0.1:
    +    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    +    engines: {node: '>=7.0.0'}
    +    dependencies:
    +      color-name: 1.1.4
    +    dev: true
    +
    +  /color-name@1.1.3:
    +    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    +    requiresBuild: true
    +    dev: true
    +
    +  /color-name@1.1.4:
    +    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    +    dev: true
    +
    +  /commondir@1.0.1:
    +    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
    +    dev: true
    +
    +  /concat-map@0.0.1:
    +    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    +    dev: true
    +
    +  /confbox@0.1.7:
    +    resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
    +    dev: true
    +
    +  /consola@2.15.3:
    +    resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
    +    dev: true
    +
    +  /convert-source-map@2.0.0:
    +    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
    +    dev: true
    +
    +  /cross-spawn@7.0.3:
    +    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
    +    engines: {node: '>= 8'}
    +    dependencies:
    +      path-key: 3.1.1
    +      shebang-command: 2.0.0
    +      which: 2.0.2
    +    dev: true
    +
    +  /debug@4.3.4:
    +    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    +    engines: {node: '>=6.0'}
    +    peerDependencies:
    +      supports-color: '*'
    +    peerDependenciesMeta:
    +      supports-color:
    +        optional: true
    +    dependencies:
    +      ms: 2.1.2
    +    dev: true
    +
    +  /deep-is@0.1.4:
    +    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
    +    dev: true
    +
    +  /deepmerge@4.3.1:
    +    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
    +
    +  /defu@6.1.4:
    +    resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
    +    dev: true
    +
    +  /dir-glob@3.0.1:
    +    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
    +    engines: {node: '>=8'}
    +    dependencies:
    +      path-type: 4.0.0
    +    dev: true
    +
    +  /doctrine@3.0.0:
    +    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
    +    engines: {node: '>=6.0.0'}
    +    dependencies:
    +      esutils: 2.0.3
    +    dev: true
    +
    +  /electron-to-chromium@1.4.755:
    +    resolution: {integrity: sha512-9nop+3jZxSHIxe1EzEUcjDXzK+3qOv3fY5w0sE88nIZUntbv1aXWmoxGWlklX5XSO4txCpLssWkUSh8RQPovBg==}
    +    dev: true
    +
    +  /es-module-lexer@0.9.3:
    +    resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
    +    dev: true
    +
    +  /esbuild-android-64@0.14.54:
    +    resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [android]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-android-64@0.15.18:
    +    resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [android]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-android-arm64@0.14.54:
    +    resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [android]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-android-arm64@0.15.18:
    +    resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [android]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-darwin-64@0.14.54:
    +    resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-darwin-64@0.15.18:
    +    resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-darwin-arm64@0.14.54:
    +    resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-darwin-arm64@0.15.18:
    +    resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-freebsd-64@0.14.54:
    +    resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [freebsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-freebsd-64@0.15.18:
    +    resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [freebsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-freebsd-arm64@0.14.54:
    +    resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [freebsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-freebsd-arm64@0.15.18:
    +    resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [freebsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-32@0.14.54:
    +    resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-32@0.15.18:
    +    resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-64@0.14.54:
    +    resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-64@0.15.18:
    +    resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-arm64@0.14.54:
    +    resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-arm64@0.15.18:
    +    resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-arm@0.14.54:
    +    resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-arm@0.15.18:
    +    resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
    +    engines: {node: '>=12'}
    +    cpu: [arm]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-mips64le@0.14.54:
    +    resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==}
    +    engines: {node: '>=12'}
    +    cpu: [mips64el]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-mips64le@0.15.18:
    +    resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
    +    engines: {node: '>=12'}
    +    cpu: [mips64el]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-ppc64le@0.14.54:
    +    resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-ppc64le@0.15.18:
    +    resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
    +    engines: {node: '>=12'}
    +    cpu: [ppc64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-riscv64@0.14.54:
    +    resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==}
    +    engines: {node: '>=12'}
    +    cpu: [riscv64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-riscv64@0.15.18:
    +    resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
    +    engines: {node: '>=12'}
    +    cpu: [riscv64]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-s390x@0.14.54:
    +    resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==}
    +    engines: {node: '>=12'}
    +    cpu: [s390x]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-linux-s390x@0.15.18:
    +    resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
    +    engines: {node: '>=12'}
    +    cpu: [s390x]
    +    os: [linux]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-netbsd-64@0.14.54:
    +    resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [netbsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-netbsd-64@0.15.18:
    +    resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [netbsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-openbsd-64@0.14.54:
    +    resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [openbsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-openbsd-64@0.15.18:
    +    resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [openbsd]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-sunos-64@0.14.54:
    +    resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [sunos]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-sunos-64@0.15.18:
    +    resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [sunos]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-windows-32@0.14.54:
    +    resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-windows-32@0.15.18:
    +    resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
    +    engines: {node: '>=12'}
    +    cpu: [ia32]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-windows-64@0.14.54:
    +    resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-windows-64@0.15.18:
    +    resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
    +    engines: {node: '>=12'}
    +    cpu: [x64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-windows-arm64@0.14.54:
    +    resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild-windows-arm64@0.15.18:
    +    resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
    +    engines: {node: '>=12'}
    +    cpu: [arm64]
    +    os: [win32]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /esbuild@0.14.54:
    +    resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +    requiresBuild: true
    +    optionalDependencies:
    +      '@esbuild/linux-loong64': 0.14.54
    +      esbuild-android-64: 0.14.54
    +      esbuild-android-arm64: 0.14.54
    +      esbuild-darwin-64: 0.14.54
    +      esbuild-darwin-arm64: 0.14.54
    +      esbuild-freebsd-64: 0.14.54
    +      esbuild-freebsd-arm64: 0.14.54
    +      esbuild-linux-32: 0.14.54
    +      esbuild-linux-64: 0.14.54
    +      esbuild-linux-arm: 0.14.54
    +      esbuild-linux-arm64: 0.14.54
    +      esbuild-linux-mips64le: 0.14.54
    +      esbuild-linux-ppc64le: 0.14.54
    +      esbuild-linux-riscv64: 0.14.54
    +      esbuild-linux-s390x: 0.14.54
    +      esbuild-netbsd-64: 0.14.54
    +      esbuild-openbsd-64: 0.14.54
    +      esbuild-sunos-64: 0.14.54
    +      esbuild-windows-32: 0.14.54
    +      esbuild-windows-64: 0.14.54
    +      esbuild-windows-arm64: 0.14.54
    +    dev: true
    +
    +  /esbuild@0.15.18:
    +    resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
    +    engines: {node: '>=12'}
    +    hasBin: true
    +    requiresBuild: true
    +    optionalDependencies:
    +      '@esbuild/android-arm': 0.15.18
    +      '@esbuild/linux-loong64': 0.15.18
    +      esbuild-android-64: 0.15.18
    +      esbuild-android-arm64: 0.15.18
    +      esbuild-darwin-64: 0.15.18
    +      esbuild-darwin-arm64: 0.15.18
    +      esbuild-freebsd-64: 0.15.18
    +      esbuild-freebsd-arm64: 0.15.18
    +      esbuild-linux-32: 0.15.18
    +      esbuild-linux-64: 0.15.18
    +      esbuild-linux-arm: 0.15.18
    +      esbuild-linux-arm64: 0.15.18
    +      esbuild-linux-mips64le: 0.15.18
    +      esbuild-linux-ppc64le: 0.15.18
    +      esbuild-linux-riscv64: 0.15.18
    +      esbuild-linux-s390x: 0.15.18
    +      esbuild-netbsd-64: 0.15.18
    +      esbuild-openbsd-64: 0.15.18
    +      esbuild-sunos-64: 0.15.18
    +      esbuild-windows-32: 0.15.18
    +      esbuild-windows-64: 0.15.18
    +      esbuild-windows-arm64: 0.15.18
    +    dev: true
    +
    +  /escalade@3.1.2:
    +    resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
    +    engines: {node: '>=6'}
    +    dev: true
    +
    +  /escape-string-regexp@1.0.5:
    +    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
    +    engines: {node: '>=0.8.0'}
    +    dev: true
    +
    +  /escape-string-regexp@4.0.0:
    +    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    +    engines: {node: '>=10'}
    +    dev: true
    +
    +  /eslint-config-prettier@8.10.0(eslint@8.57.0):
    +    resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
    +    hasBin: true
    +    peerDependencies:
    +      eslint: '>=7.0.0'
    +    dependencies:
    +      eslint: 8.57.0
    +    dev: true
    +
    +  /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@2.8.8):
    +    resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
    +    engines: {node: '>=12.0.0'}
    +    peerDependencies:
    +      eslint: '>=7.28.0'
    +      eslint-config-prettier: '*'
    +      prettier: '>=2.0.0'
    +    peerDependenciesMeta:
    +      eslint-config-prettier:
    +        optional: true
    +    dependencies:
    +      eslint: 8.57.0
    +      eslint-config-prettier: 8.10.0(eslint@8.57.0)
    +      prettier: 2.8.8
    +      prettier-linter-helpers: 1.0.0
    +    dev: true
    +
    +  /eslint-scope@5.1.1:
    +    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
    +    engines: {node: '>=8.0.0'}
    +    dependencies:
    +      esrecurse: 4.3.0
    +      estraverse: 4.3.0
    +    dev: true
    +
    +  /eslint-scope@7.2.2:
    +    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dependencies:
    +      esrecurse: 4.3.0
    +      estraverse: 5.3.0
    +    dev: true
    +
    +  /eslint-visitor-keys@3.4.3:
    +    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dev: true
    +
    +  /eslint@8.57.0:
    +    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    hasBin: true
    +    dependencies:
    +      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
    +      '@eslint-community/regexpp': 4.10.0
    +      '@eslint/eslintrc': 2.1.4
    +      '@eslint/js': 8.57.0
    +      '@humanwhocodes/config-array': 0.11.14
    +      '@humanwhocodes/module-importer': 1.0.1
    +      '@nodelib/fs.walk': 1.2.8
    +      '@ungap/structured-clone': 1.2.0
    +      ajv: 6.12.6
    +      chalk: 4.1.2
    +      cross-spawn: 7.0.3
    +      debug: 4.3.4
    +      doctrine: 3.0.0
    +      escape-string-regexp: 4.0.0
    +      eslint-scope: 7.2.2
    +      eslint-visitor-keys: 3.4.3
    +      espree: 9.6.1
    +      esquery: 1.5.0
    +      esutils: 2.0.3
    +      fast-deep-equal: 3.1.3
    +      file-entry-cache: 6.0.1
    +      find-up: 5.0.0
    +      glob-parent: 6.0.2
    +      globals: 13.24.0
    +      graphemer: 1.4.0
    +      ignore: 5.3.1
    +      imurmurhash: 0.1.4
    +      is-glob: 4.0.3
    +      is-path-inside: 3.0.3
    +      js-yaml: 4.1.0
    +      json-stable-stringify-without-jsonify: 1.0.1
    +      levn: 0.4.1
    +      lodash.merge: 4.6.2
    +      minimatch: 3.1.2
    +      natural-compare: 1.4.0
    +      optionator: 0.9.4
    +      strip-ansi: 6.0.1
    +      text-table: 0.2.0
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /espree@9.6.1:
    +    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    dependencies:
    +      acorn: 8.11.3
    +      acorn-jsx: 5.3.2(acorn@8.11.3)
    +      eslint-visitor-keys: 3.4.3
    +    dev: true
    +
    +  /esquery@1.5.0:
    +    resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
    +    engines: {node: '>=0.10'}
    +    dependencies:
    +      estraverse: 5.3.0
    +    dev: true
    +
    +  /esrecurse@4.3.0:
    +    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
    +    engines: {node: '>=4.0'}
    +    dependencies:
    +      estraverse: 5.3.0
    +    dev: true
    +
    +  /estraverse@4.3.0:
    +    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
    +    engines: {node: '>=4.0'}
    +    dev: true
    +
    +  /estraverse@5.3.0:
    +    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
    +    engines: {node: '>=4.0'}
    +    dev: true
    +
    +  /estree-walker@1.0.1:
    +    resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
    +    dev: true
    +
    +  /estree-walker@2.0.2:
    +    resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
    +    dev: true
    +
    +  /esutils@2.0.3:
    +    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
    +
    +  /fast-deep-equal@3.1.3:
    +    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
    +    dev: true
    +
    +  /fast-diff@1.3.0:
    +    resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
    +    dev: true
    +
    +  /fast-glob@3.3.2:
    +    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    +    engines: {node: '>=8.6.0'}
    +    dependencies:
    +      '@nodelib/fs.stat': 2.0.5
    +      '@nodelib/fs.walk': 1.2.8
    +      glob-parent: 5.1.2
    +      merge2: 1.4.1
    +      micromatch: 4.0.5
    +    dev: true
    +
    +  /fast-json-stable-stringify@2.1.0:
    +    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    +    dev: true
    +
    +  /fast-levenshtein@2.0.6:
    +    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    +    dev: true
    +
    +  /fastq@1.17.1:
    +    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    +    dependencies:
    +      reusify: 1.0.4
    +    dev: true
    +
    +  /file-entry-cache@6.0.1:
    +    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
    +    dependencies:
    +      flat-cache: 3.2.0
    +    dev: true
    +
    +  /fill-range@7.0.1:
    +    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
    +    engines: {node: '>=8'}
    +    dependencies:
    +      to-regex-range: 5.0.1
    +    dev: true
    +
    +  /find-up@5.0.0:
    +    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    +    engines: {node: '>=10'}
    +    dependencies:
    +      locate-path: 6.0.0
    +      path-exists: 4.0.0
    +    dev: true
    +
    +  /flat-cache@3.2.0:
    +    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
    +    engines: {node: ^10.12.0 || >=12.0.0}
    +    dependencies:
    +      flatted: 3.3.1
    +      keyv: 4.5.4
    +      rimraf: 3.0.2
    +    dev: true
    +
    +  /flatted@3.3.1:
    +    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
    +    dev: true
    +
    +  /fs-extra@10.1.0:
    +    resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
    +    engines: {node: '>=12'}
    +    dependencies:
    +      graceful-fs: 4.2.11
    +      jsonfile: 6.1.0
    +      universalify: 2.0.1
    +    dev: true
    +
    +  /fs.realpath@1.0.0:
    +    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    +    dev: true
    +
    +  /fsevents@2.3.3:
    +    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    +    os: [darwin]
    +    requiresBuild: true
    +    dev: true
    +    optional: true
    +
    +  /function-bind@1.1.2:
    +    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    +    dev: true
    +
    +  /gensync@1.0.0-beta.2:
    +    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
    +    engines: {node: '>=6.9.0'}
    +    dev: true
    +
    +  /glob-parent@5.1.2:
    +    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    +    engines: {node: '>= 6'}
    +    dependencies:
    +      is-glob: 4.0.3
    +    dev: true
    +
    +  /glob-parent@6.0.2:
    +    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    +    engines: {node: '>=10.13.0'}
    +    dependencies:
    +      is-glob: 4.0.3
    +    dev: true
    +
    +  /glob@7.2.3:
    +    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
    +    dependencies:
    +      fs.realpath: 1.0.0
    +      inflight: 1.0.6
    +      inherits: 2.0.4
    +      minimatch: 3.1.2
    +      once: 1.4.0
    +      path-is-absolute: 1.0.1
    +    dev: true
    +
    +  /globals@11.12.0:
    +    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
    +    engines: {node: '>=4'}
    +    dev: true
    +
    +  /globals@13.24.0:
    +    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
    +    engines: {node: '>=8'}
    +    dependencies:
    +      type-fest: 0.20.2
    +    dev: true
    +
    +  /globby@11.1.0:
    +    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
    +    engines: {node: '>=10'}
    +    dependencies:
    +      array-union: 2.1.0
    +      dir-glob: 3.0.1
    +      fast-glob: 3.3.2
    +      ignore: 5.3.1
    +      merge2: 1.4.1
    +      slash: 3.0.0
    +    dev: true
    +
    +  /globby@13.2.2:
    +    resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
    +    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
    +    dependencies:
    +      dir-glob: 3.0.1
    +      fast-glob: 3.3.2
    +      ignore: 5.3.1
    +      merge2: 1.4.1
    +      slash: 4.0.0
    +    dev: true
    +
    +  /graceful-fs@4.2.11:
    +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
    +    dev: true
    +
    +  /graphemer@1.4.0:
    +    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
    +    dev: true
    +
    +  /has-flag@3.0.0:
    +    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
    +    engines: {node: '>=4'}
    +    requiresBuild: true
    +    dev: true
    +
    +  /has-flag@4.0.0:
    +    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
    +    engines: {node: '>=8'}
    +    dev: true
    +
    +  /hasown@2.0.2:
    +    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    +    engines: {node: '>= 0.4'}
    +    dependencies:
    +      function-bind: 1.1.2
    +    dev: true
    +
    +  /hookable@5.5.3:
    +    resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
    +    dev: true
    +
    +  /ignore@5.3.1:
    +    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
    +    engines: {node: '>= 4'}
    +    dev: true
    +
    +  /import-fresh@3.3.0:
    +    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
    +    engines: {node: '>=6'}
    +    dependencies:
    +      parent-module: 1.0.1
    +      resolve-from: 4.0.0
    +    dev: true
    +
    +  /imurmurhash@0.1.4:
    +    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
    +    engines: {node: '>=0.8.19'}
    +    dev: true
    +
    +  /inflight@1.0.6:
    +    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
    +    dependencies:
    +      once: 1.4.0
    +      wrappy: 1.0.2
    +    dev: true
    +
    +  /inherits@2.0.4:
    +    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    +    dev: true
    +
    +  /is-builtin-module@3.2.1:
    +    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
    +    engines: {node: '>=6'}
    +    dependencies:
    +      builtin-modules: 3.3.0
    +    dev: true
    +
    +  /is-core-module@2.13.1:
    +    resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
    +    dependencies:
    +      hasown: 2.0.2
    +    dev: true
    +
    +  /is-extglob@2.1.1:
    +    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
    +    engines: {node: '>=0.10.0'}
    +    dev: true
    +
    +  /is-glob@4.0.3:
    +    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
    +    engines: {node: '>=0.10.0'}
    +    dependencies:
    +      is-extglob: 2.1.1
    +    dev: true
    +
    +  /is-module@1.0.0:
    +    resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
    +    dev: true
    +
    +  /is-number@7.0.0:
    +    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
    +    engines: {node: '>=0.12.0'}
    +    dev: true
    +
    +  /is-path-inside@3.0.3:
    +    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
    +    engines: {node: '>=8'}
    +    dev: true
    +
    +  /is-reference@1.2.1:
    +    resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
    +    dependencies:
    +      '@types/estree': 1.0.5
    +    dev: true
    +
    +  /isexe@2.0.0:
    +    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    +    dev: true
    +
    +  /jiti@1.21.0:
    +    resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
    +    hasBin: true
    +    dev: true
    +
    +  /joycon@3.1.1:
    +    resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
    +    engines: {node: '>=10'}
    +    dev: true
    +
    +  /js-tokens@4.0.0:
    +    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    +    requiresBuild: true
    +    dev: true
    +
    +  /js-yaml@4.1.0:
    +    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    +    hasBin: true
    +    dependencies:
    +      argparse: 2.0.1
    +    dev: true
    +
    +  /jsesc@2.5.2:
    +    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
    +    engines: {node: '>=4'}
    +    hasBin: true
    +    dev: true
    +
    +  /json-buffer@3.0.1:
    +    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    +    dev: true
    +
    +  /json-schema-traverse@0.4.1:
    +    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    +    dev: true
    +
    +  /json-stable-stringify-without-jsonify@1.0.1:
    +    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
    +    dev: true
    +
    +  /json5@2.2.3:
    +    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +    dev: true
    +
    +  /jsonc-parser@3.2.1:
    +    resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
    +    dev: true
    +
    +  /jsonfile@6.1.0:
    +    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
    +    dependencies:
    +      universalify: 2.0.1
    +    optionalDependencies:
    +      graceful-fs: 4.2.11
    +    dev: true
    +
    +  /keyv@4.5.4:
    +    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
    +    dependencies:
    +      json-buffer: 3.0.1
    +    dev: true
    +
    +  /levn@0.4.1:
    +    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
    +    engines: {node: '>= 0.8.0'}
    +    dependencies:
    +      prelude-ls: 1.2.1
    +      type-check: 0.4.0
    +    dev: true
    +
    +  /locate-path@6.0.0:
    +    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    +    engines: {node: '>=10'}
    +    dependencies:
    +      p-locate: 5.0.0
    +    dev: true
    +
    +  /lodash.merge@4.6.2:
    +    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
    +    dev: true
    +
    +  /lru-cache@5.1.1:
    +    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
    +    dependencies:
    +      yallist: 3.1.1
    +    dev: true
    +
    +  /lru-cache@6.0.0:
    +    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
    +    engines: {node: '>=10'}
    +    dependencies:
    +      yallist: 4.0.0
    +    dev: true
    +
    +  /magic-string@0.25.9:
    +    resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
    +    dependencies:
    +      sourcemap-codec: 1.4.8
    +    dev: true
    +
    +  /magic-string@0.26.7:
    +    resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
    +    engines: {node: '>=12'}
    +    dependencies:
    +      sourcemap-codec: 1.4.8
    +    dev: true
    +
    +  /merge2@1.4.1:
    +    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    +    engines: {node: '>= 8'}
    +    dev: true
    +
    +  /micromatch@4.0.5:
    +    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
    +    engines: {node: '>=8.6'}
    +    dependencies:
    +      braces: 3.0.2
    +      picomatch: 2.3.1
    +    dev: true
    +
    +  /minimatch@3.1.2:
    +    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
    +    dependencies:
    +      brace-expansion: 1.1.11
    +    dev: true
    +
    +  /mkdirp@1.0.4:
    +    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
    +    engines: {node: '>=10'}
    +    hasBin: true
    +    dev: true
    +
    +  /mkdist@0.3.13(typescript@4.9.5):
    +    resolution: {integrity: sha512-+eCPpkr8l2X630y5PIlkts2tzYEsb+aGIgXdrQv9ZGtWE2bLlD6kVIFfI6FJwFpjjw4dPPyorxQc6Uhm/oXlvg==}
    +    hasBin: true
    +    peerDependencies:
    +      typescript: '>=4.7.4'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      defu: 6.1.4
    +      esbuild: 0.14.54
    +      fs-extra: 10.1.0
    +      globby: 11.1.0
    +      jiti: 1.21.0
    +      mri: 1.2.0
    +      pathe: 0.2.0
    +      typescript: 4.9.5
    +    dev: true
    +
    +  /mlly@0.5.17:
    +    resolution: {integrity: sha512-Rn+ai4G+CQXptDFSRNnChEgNr+xAEauYhwRvpPl/UHStTlgkIftplgJRsA2OXPuoUn86K4XAjB26+x5CEvVb6A==}
    +    dependencies:
    +      acorn: 8.11.3
    +      pathe: 1.1.2
    +      pkg-types: 1.1.0
    +      ufo: 1.5.3
    +    dev: true
    +
    +  /mlly@1.7.0:
    +    resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==}
    +    dependencies:
    +      acorn: 8.11.3
    +      pathe: 1.1.2
    +      pkg-types: 1.1.0
    +      ufo: 1.5.3
    +    dev: true
    +
    +  /mri@1.2.0:
    +    resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
    +    engines: {node: '>=4'}
    +    dev: true
    +
    +  /ms@2.1.2:
    +    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    +    dev: true
    +
    +  /natural-compare-lite@1.4.0:
    +    resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
    +    dev: true
    +
    +  /natural-compare@1.4.0:
    +    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    +    dev: true
    +
    +  /node-releases@2.0.14:
    +    resolution: {integrity
    ... [truncated]
    
  • src/MarkovData.ts+1 1 modified
    @@ -37,7 +37,7 @@ export class MarkovData {
         }
         getNext(current: string) {
             if (!current) return;
    -        const data = this.finalData[current.slice(0, -1)];
    +        const data = this.finalData[this.forbidden.includes(current.slice(0, -1)) ? current : current.slice(0, -1)];
             if (!data) return;
             const random = Math.floor(Math.random() * data.length);
             return data[random].endsWith(' ') ? data[random] : `${data[random]} `;
    

Vulnerability mechanics

Generated by null/stub 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.