diff --git a/.eslintrc.js b/.eslintrc.js index 2b378572..5792cfa8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,350 +1,65 @@ -'use strict'; +"use strict"; module.exports = { - extends: ['ash-nazg/sauron-node'], + extends: [ + "plugin:compat/recommended", + "plugin:node/recommended", + "plugin:no-unsanitized/DOM", + "plugin:promise/recommended", + "plugin:import/errors", + "plugin:markdown/recommended", + "plugin:sonarjs/recommended", + "eslint:recommended" + ], + plugins: ["jsdoc", "promise", "html", "import", "sonarjs"], parserOptions: { ecmaVersion: 2020, - sourceType: 'module' + sourceType: "module" }, env: { browser: true, es6: true }, - settings: { - polyfills: [ - // These are the primary polyfills needed by regular users if - // not present, e.g., with core-js-bundle; also those under - // extensions - // 'Array.isArray', - // 'Blob', - // 'console', - // 'CustomEvent', - // 'document.body', - // 'document.createElementNS', - // 'document.evaluate', - // 'document.head', - // 'document.importNode', - // 'document.querySelector', - // 'document.querySelectorAll', - // 'DOMParser', - // 'Error', - 'fetch', - // 'FileReader', - // 'JSON', - // 'KeyboardEvent', - // 'location.href', - // 'location.origin', - // 'MouseEvent', - // 'MutationObserver', - // 'navigator', - // 'Number.isNaN', - // 'Number.parseFloat', - // 'Number.parseInt', - // 'Object.assign', - // 'Object.defineProperty', - // 'Object.defineProperties', - // 'Object.entries', - // 'Object.getOwnPropertyDescriptor', - // 'Object.keys', - // 'Object.values', - 'Promise', - 'Promise.all', - // 'Set', - 'Uint8Array', - 'URL' - // 'URL.createObjectURL', - // 'XMLSerializer', - // 'XMLHttpRequest', - // 'window.getComputedStyle', - // 'window.parent', - // 'window.scrollX', - // 'window.scrollY' - ] - }, rules: { - // check-examples is not picking up eslint config properly in some - // environments; see also discussion above - // `mocha-cleanup/no-assertions-outside-it` - 'jsdoc/check-examples': ['warn', { - rejectExampleCodeRegex: '^`', - checkDefaults: true, - checkParams: true, - checkProperties: true - }], - - // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/453 - 'unicorn/regex-shorthand': 0, - // The Babel transform seems to have a problem converting these - 'prefer-named-capture-group': 'off', - 'jsdoc/require-file-overview': ['error', { - tags: { - file: { - initialCommentsOnly: true, - preventDuplicates: true - }, - license: { - initialCommentsOnly: true, - preventDuplicates: true - }, - copyright: { - initialCommentsOnly: true, - preventDuplicates: true - }, - author: { - initialCommentsOnly: true, - preventDuplicates: true - }, - module: { - initialCommentsOnly: true, - preventDuplicates: true - }, - exports: { - initialCommentsOnly: true, - preventDuplicates: true - } - } - }], - // Warning or Off for now but should be reviewed - // Override these rules which are difficult for us - // to apply at this time - 'unicorn/prefer-string-slice': 'off', - 'default-case': 'off', - 'require-unicode-regexp': 'off', - 'max-len': - [ - 'warn', - {ignoreComments: true, code: 130} - ], // 130 is too much but too many occurences - 'unicorn/prefer-query-selector': 'off', - 'unicorn/no-fn-reference-in-iterator': 'off', - 'unicorn/prefer-node-append': 'off', - 'unicorn/no-zero-fractions': 'off', - 'unicorn/prefer-number-properties': 'off', - 'eslint-comments/require-description': 'off', - 'compat/compat': 'error', - 'consistent-this': 'off', - 'import/no-anonymous-default-export': 'off', - 'node/no-unsupported-features/node-builtins': 'warn', - 'prefer-exponentiation-operator': 'warn', - 'node/no-unsupported-features/es-syntax': 'off', - 'no-unsanitized/method': [ - 'error', - { - escape: { - methods: ['encodeURIComponent', 'encodeURI'] - } - } - ] + "node/no-unsupported-features/es-syntax": 0, + "no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], + "sonarjs/cognitive-complexity": ["warn", 40], + "sonarjs/no-duplicate-string": 0, }, overrides: [ - // Locales have no need for importing outside of SVG-Edit - // and translations may need a longer line length { - files: [ - 'src/editor/locale/lang.*.js', 'src/editor/extensions/*/locale/**', - 'docs/tutorials/ExtensionDocs.md' - ], - rules: { - 'import/no-anonymous-default-export': 'off', - 'max-len': 'off' - } - }, - // These browser files don't do importing or requiring - { - files: [ - 'src/editor/touch.js', - 'src/editor/typedefs.js', - 'src/editor/redirect-on-no-module-support.js', - 'src/editor/extensions/ext-imagelib/index.js', - 'screencasts/svgopen2010/script.js' - ], - rules: { - 'import/unambiguous': ['off'] - } - }, - { - files: ['**/*.html', 'screencasts/**'], - globals: { - root: 'off' - }, - settings: { - polyfills: [ - 'document.querySelector', - 'history', - 'history.pushState', - 'history.replaceState', - 'location.hash', - 'navigator', - 'Number.parseFloat', - 'Number.parseInt', - 'Number.isNaN' - ] - }, - rules: { - 'import/unambiguous': 'off' - } - }, - { - files: ['.eslintrc.js', '.ncurc.js', 'tools/mochawesome-cli.js'], - extends: [ - 'ash-nazg/sauron-node-script' - ] - }, - // Our Markdown rules (and used for JSDoc examples as well, by way of - // our use of `jsdoc/check-examples` within `ash-nazg`) - { - files: ['**/*.md'], - settings: { - polyfills: [ - // Tutorials - 'console', - 'location.href' - ] - }, - rules: { - // Todo: Figure out why this is not enough to disable warning - // for examples in my environment (but it is in others') - // Used in examples of assert-close.js plugin - 'mocha-cleanup/no-assertions-outside-it': 'off', - 'eslint-comments/no-unused-disable': 'warn', - 'eol-last': ['off'], - 'no-console': ['off'], - 'no-undef': ['off'], - 'no-unused-vars': ['warn'], - 'padded-blocks': ['off'], - 'import/unambiguous': ['off'], - 'import/no-unresolved': ['off'], - 'node/no-missing-import': ['off'], - 'no-multi-spaces': 'off', - 'sonarjs/no-all-duplicated-branches': 'off', - 'node/no-unpublished-import': ['error', { - allowModules: ['@cypress/fiddle'] - }], - 'no-alert': 'off', - // Disable until may fix https://github.com/gajus/eslint-plugin-jsdoc/issues/211 - indent: 'off' - } - }, - { - // As consumed by jsdoc, cannot be expressed as ESM - files: ['docs/jsdoc-config.js'], - parserOptions: { - sourceType: 'script' - }, - globals: { - module: false - }, - rules: { - 'import/no-commonjs': 'off', - strict: 'off' - } - }, - { - files: ['cypress/plugins/index.js'], - extends: [ - 'ash-nazg/sauron-node-script' - ] - }, - { - files: ['cypress/**'], - extends: [ - 'plugin:cypress/recommended', - 'plugin:mocha/recommended', - 'plugin:mocha-cleanup/recommended-no-limits', - 'plugin:@fintechstudios/chai-as-promised/recommended', - 'plugin:chai-expect-keywords/recommended', - 'plugin:chai-expect/recommended', - 'plugin:chai-friendly/recommended' + files: [ 'cypress/**/*'], + extends: [ + "plugin:cypress/recommended" ], env: { + mocha: true, node: true }, - settings: { - polyfills: [ - 'console', - 'Date.now', - 'document.body', - 'document.createElementNS', - 'document.head', - 'DOMParser', - 'Number.isNaN', - 'Object.keys', - 'Object.entries', - 'Promise' - ] + globals: { + "assert": true }, rules: { - // These errors are caused in Cypress files if user has not - // yet instrumented code; need to reinvestigate why we had to - // instrument separately from nyc mocha - 'import/no-unresolved': ['error', {ignore: ['/instrumented/']}], - 'node/no-missing-import': 'off', - 'jsdoc/check-examples': 'off', - 'chai-expect-keywords/no-unsupported-keywords': [ - 'error', { - allowChaiDOM: true + // with ci, instrumented is not created before linter + "import/no-unresolved": [2, { ignore: ['instrumented'] }], + "node/no-missing-import": 0 + } + }, + { + files: [ 'docs/**/*'], + rules: { // md files have example that don't need a strict checking + "no-undef": 0, + "import/no-unresolved": 0, + "node/no-missing-import": 0, + "jsdoc/check-examples": [ + "warn", + { + rejectExampleCodeRegex: "^`", + checkDefaults: true, + checkParams: true, + checkProperties: true } - ], - // Would be good but seems necessary due to some bugs in Cypress - // in detecting visibility - // 'cypress/no-force': 0, - // Good but would be difficult to enforce (and data-* may not be less - // brittle than IDs/classes anyways) - // 'cypress/require-data-selectors': 0, - 'cypress/assertion-before-screenshot': 2, - - // Conflicts with Cypress `should` - 'mocha-cleanup/invalid-assertions': 0, - - // Might see about working around to avoid the option limitation, - // but convenient - 'mocha-cleanup/no-expressions-in-assertions': ['error', { - replacementsOnly: true - }], - - // Too oppressive when planning to extend a section - 'mocha/no-hooks-for-single-case': 0, - - // Would be good to enable but needs some refactoring - 'mocha/no-setup-in-describe': 0, - 'mocha-cleanup/no-outside-declaration': 0, - - // Useful to ensure allowing `this.timeout()`, etc., but a - // little oppressive - 'mocha/no-mocha-arrows': 0, - // Useful if enabling the regular `prefer-arrow-callback` - // 'mocha/prefer-arrow-callback': 2 - - 'jsdoc/require-jsdoc': 0, - 'no-console': 0, - 'import/unambiguous': 0 - } - }, - { - // Node files - files: [ - 'docs/jsdoc-config.js', - 'build/build-html.js', - 'rollup.config.js', 'rollup-config.config.js' - ], - env: { - node: true - }, - settings: { - polyfills: [ - 'console', - 'Promise.resolve' ] - }, - globals: { - require: true - }, - rules: { - // We can't put Rollup in npmignore or user can't get access, - // and we have too many modules to add to `peerDependencies` - // so this rule can know them to be available, so we instead - // disable - 'node/no-unpublished-import': 'off' } } ] diff --git a/.github/workflows/onpush.yml b/.github/workflows/onpush.yml new file mode 100644 index 00000000..f4358797 --- /dev/null +++ b/.github/workflows/onpush.yml @@ -0,0 +1,20 @@ +name: Node CI + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v2 + with: + node-version: 14.x + - name: npm install, test and lint + run: | + npm ci + npm run lint + npm run test \ No newline at end of file diff --git a/.gitignore b/.gitignore index a841f5bc..4ddd9555 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,17 @@ ignore node_modules - -svgedit-custom.css - docs/jsdoc - cypress/results cypress/screenshots cypress/videos cypress.env.json - coverage instrumented .nyc_output mochawesome-report mochawesome.json - .vscode .eslintcache .DS_Store +.idea +dist diff --git a/package-lock.json b/package-lock.json index ecae9e7d..6eea45a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,14 +5,13 @@ "requires": true, "packages": { "": { - "name": "svgedit", "version": "6.0.0", "license": "(MIT AND Apache-2.0 AND ISC AND LGPL-3.0-or-later AND X11)", "dependencies": { "@babel/polyfill": "7.12.1", "@web/dev-server-rollup": "0.3.3", "canvg": "3.0.7", - "core-js": "3.11.1", + "core-js": "3.12.1", "deparam": "^1.0.5", "elix": "^15.0.0", "i18next": "^20.2.2", @@ -24,7 +23,7 @@ }, "devDependencies": { "@babel/core": "7.14.0", - "@babel/preset-env": "7.14.0", + "@babel/preset-env": "7.14.1", "@babel/register": "7.13.16", "@babel/runtime-corejs3": "7.14.0", "@cypress/code-coverage": "3.9.5", @@ -42,7 +41,7 @@ "axe-core": "4.2.0", "babel-plugin-transform-object-rest-spread": "7.0.0-beta.3", "copyfiles": "2.4.1", - "core-js-bundle": "3.11.1", + "core-js-bundle": "3.12.1", "coveradge": "0.6.0", "cp-cli": "2.0.0", "cross-var": "1.1.0", @@ -50,18 +49,18 @@ "cypress-axe": "0.12.2", "cypress-multi-reporters": "1.5.0", "cypress-plugin-snapshots": "1.4.4", - "eslint": "^7.25.0", + "eslint": "^7.26.0", "eslint-config-standard": "16.0.2", "eslint-plugin-array-func": "3.1.7", "eslint-plugin-chai-expect": "2.2.0", "eslint-plugin-chai-expect-keywords": "2.1.0", "eslint-plugin-chai-friendly": "0.6.0", "eslint-plugin-compat": "^3.9.0", - "eslint-plugin-cypress": "2.11.2", + "eslint-plugin-cypress": "2.11.3", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-html": "^6.1.2", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^33.0.0", + "eslint-plugin-jsdoc": "^33.1.1", "eslint-plugin-markdown": "^2.1.0", "eslint-plugin-mocha": "8.1.0", "eslint-plugin-mocha-cleanup": "1.9.1", @@ -71,11 +70,11 @@ "eslint-plugin-promise": "^5.1.0", "eslint-plugin-sonarjs": "^0.7.0", "eslint-plugin-standard": "4.1.0", - "eslint-plugin-unicorn": "31.0.0", + "eslint-plugin-unicorn": "32.0.0", "imageoptim-cli": "3.0.2", "jamilih": "0.54.0", "jsdoc": "3.6.6", - "mocha": "8.3.2", + "mocha": "8.4.0", "mocha-badge-generator": "0.9.0", "mochawesome": "6.2.2", "mochawesome-merge": "4.2.0", @@ -91,7 +90,7 @@ "remark-lint-ordered-list-marker-value": "2.0.1", "requirejs": "2.3.6", "rimraf": "3.0.2", - "rollup": "2.46.0", + "rollup": "2.47.0", "rollup-plugin-copy": "3.4.0", "rollup-plugin-filesize": "9.1.1", "rollup-plugin-node-polyfills": "0.2.1", @@ -913,9 +912,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", + "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" @@ -1335,9 +1334,9 @@ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" }, "node_modules/@babel/preset-env": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.0.tgz", - "integrity": "sha512-GWRCdBv2whxqqaSi7bo/BEXf070G/fWFMEdCnmoRg2CZJy4GK06ovFuEjJrZhDRXYgBsYtxVbG8GUHvw+UWBkQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", + "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.14.0", @@ -1377,7 +1376,7 @@ "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.13.16", + "@babel/plugin-transform-block-scoping": "^7.14.1", "@babel/plugin-transform-classes": "^7.13.0", "@babel/plugin-transform-computed-properties": "^7.13.0", "@babel/plugin-transform-destructuring": "^7.13.17", @@ -1407,7 +1406,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.0", + "@babel/types": "^7.14.1", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -1809,9 +1808,9 @@ "dev": true }, "node_modules/@babel/types": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.0.tgz", - "integrity": "sha512-O2LVLdcnWplaGxiPBz12d0HcdN8QdxdsWYhz5LSeuukV/5mn2xUUc3gBeU4QBYPJ18g/UToe8F532XJ608prmg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.14.0", @@ -2475,18 +2474,23 @@ "dev": true }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.1.1.tgz", - "integrity": "sha512-6lIx5Pjc50D7VJU9lfRZ1twfIrIwQk+aeT9Ink2C07IUu/y9pxkIpDqmhY/VN3jAW42dA5z6ioOdyhOZZU1isw==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.4.4.tgz", + "integrity": "sha512-ua4qDt9dQb4qt5OI38eCZcQZYE5Bq3P0GzgvDARdT8Lt0mAUpxKTPy8JGGqEvF77tG1irKDZ3WreeezEa3P43w==", "dev": true, + "dependencies": { + "comment-parser": "^1.1.5", + "esquery": "^1.4.0", + "jsdoctypeparser": "^9.0.0" + }, "engines": { "node": ">=10.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", - "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz", + "integrity": "sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2503,24 +2507,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/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==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "node_modules/@eslint/eslintrc/node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -2531,6 +2517,11 @@ }, "engines": { "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/@eslint/eslintrc/node_modules/espree": { @@ -2557,6 +2548,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/ignore": { @@ -2579,6 +2573,9 @@ }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/ms": { @@ -2603,6 +2600,9 @@ "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@fintechstudios/eslint-plugin-chai-as-promised": { @@ -3560,16 +3560,6 @@ "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, "node_modules/@rollup/plugin-replace": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", @@ -4651,10 +4641,13 @@ } }, "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "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==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, "node_modules/acorn-node": { "version": "1.8.2", @@ -4758,15 +4751,19 @@ } }, "node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-align": { @@ -8054,9 +8051,9 @@ } }, "node_modules/core-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.1.tgz", - "integrity": "sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.1.tgz", + "integrity": "sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -8064,9 +8061,9 @@ } }, "node_modules/core-js-bundle": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.11.1.tgz", - "integrity": "sha512-G53levuILfTBZaMuglvFe8+pPu7JgLO3PLuNj2AOOMeoy16HjfkqI62UAtUOlS+ZW9ySXxiiC9nFCjaXMukm1g==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.12.1.tgz", + "integrity": "sha512-4xo0s+HI15r0HEVLy6LhFoPqVlwQKxgl/tbgDfcRziFa5gAUxyEPUtPVXi2VPcSVYIJ8JSG+SOvy/aLPD7M6Fw==", "dev": true, "hasInstallScript": true, "funding": { @@ -9926,13 +9923,13 @@ } }, "node_modules/eslint": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz", - "integrity": "sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.26.0.tgz", + "integrity": "sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.0", + "@eslint/eslintrc": "^0.4.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -10198,12 +10195,15 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz", - "integrity": "sha512-1SergF1sGbVhsf7MYfOLiBhdOg6wqyeV9pXUAIDIffYTGMN3dTBQS9nFAzhLsHhO+Bn0GaVM1Ecm71XUidQ7VA==", + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.3.tgz", + "integrity": "sha512-hOoAid+XNFtpvOzZSNWP5LDrQBEJwbZwjib4XJ1KcRYKjeVj0mAmPmucG4Egli4j/aruv+Ow/acacoloWWCl9Q==", "dev": true, "dependencies": { "globals": "^11.12.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" } }, "node_modules/eslint-plugin-es": { @@ -10297,14 +10297,15 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "33.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-33.0.0.tgz", - "integrity": "sha512-bkopnnuDdT04abKWPfDdD6XcAp2yX6UDpDViyvIdYmxbZYbpHXCRzQzLqCTo+SzWSTS0KFWz/V3shmmMr+x4EA==", + "version": "33.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-33.1.1.tgz", + "integrity": "sha512-6Avc2czg/mh0zmuU3H4v2xTXOALl9OiMGpn55nBDydhU684cVgvn2VtXm1JgH+2TW5SxEDnX3o/FUgda7LgVYA==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "^0.1.1", + "@es-joy/jsdoccomment": "^0.4.4", "comment-parser": "1.1.5", "debug": "^4.3.1", + "esquery": "^1.4.0", "jsdoctypeparser": "^9.0.0", "lodash": "^4.17.21", "regextras": "^0.7.1", @@ -10576,16 +10577,15 @@ "dev": true }, "node_modules/eslint-plugin-unicorn": { - "version": "31.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-31.0.0.tgz", - "integrity": "sha512-HR3gI4ANtV8A+0FLAaxjBD/G5J3PWBo+7OswyGeK5nylGqtKLJVbnPksIkBgmVg+SFpxu5MnjaxQQI+9KjyVAg==", + "version": "32.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-32.0.0.tgz", + "integrity": "sha512-VYE/XvZvdcY0RvOKGxsrVVWo8DaI/tGVYuhKzSd6Uuy69Ydc8zX+roZ/H9PgyykM4nuj8JDoOHSwVk9a4OYbCQ==", "dev": true, "dependencies": { "ci-info": "^3.1.1", "clean-regexp": "^1.0.0", "eslint-template-visitor": "^2.3.2", "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", "import-modules": "^2.1.0", "is-builtin-module": "^3.1.0", "lodash": "^4.17.21", @@ -10597,7 +10597,7 @@ "semver": "^7.3.5" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" @@ -10633,15 +10633,6 @@ "node": ">=4" } }, - "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-unicorn/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -10905,12 +10896,6 @@ "@babel/highlight": "^7.10.4" } }, - "node_modules/eslint/node_modules/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==", - "dev": true - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11032,27 +11017,6 @@ "node": ">=4" } }, - "node_modules/eslint/node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/eslint/node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint/node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -11317,9 +11281,9 @@ } }, "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -16326,9 +16290,9 @@ } }, "node_modules/mocha": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz", - "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", @@ -16363,6 +16327,10 @@ }, "engines": { "node": ">= 10.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha-badge-generator": { @@ -19998,12 +19966,16 @@ "dev": true }, "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "dependencies": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-from": { @@ -20147,9 +20119,9 @@ } }, "node_modules/rollup": { - "version": "2.46.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.46.0.tgz", - "integrity": "sha512-qPGoUBNl+Z8uNu0z7pD3WPTABWRbcOwIrO/5ccDJzmrtzn0LVf6Lj91+L5CcWhXl6iWf23FQ6m8Jkl2CmN1O7Q==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.47.0.tgz", + "integrity": "sha512-rqBjgq9hQfW0vRmz+0S062ORRNJXvwRpzxhFXORvar/maZqY6za3rgQ/p1Glg+j1hnc1GtYyQCPiAei95uTElg==", "bin": { "rollup": "dist/bin/rollup" }, @@ -24898,9 +24870,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", + "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0" @@ -25302,9 +25274,9 @@ } }, "@babel/preset-env": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.0.tgz", - "integrity": "sha512-GWRCdBv2whxqqaSi7bo/BEXf070G/fWFMEdCnmoRg2CZJy4GK06ovFuEjJrZhDRXYgBsYtxVbG8GUHvw+UWBkQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", + "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", "dev": true, "requires": { "@babel/compat-data": "^7.14.0", @@ -25344,7 +25316,7 @@ "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.13.16", + "@babel/plugin-transform-block-scoping": "^7.14.1", "@babel/plugin-transform-classes": "^7.13.0", "@babel/plugin-transform-computed-properties": "^7.13.0", "@babel/plugin-transform-destructuring": "^7.13.17", @@ -25374,7 +25346,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.0", + "@babel/types": "^7.14.1", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -25765,9 +25737,9 @@ } }, "@babel/types": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.0.tgz", - "integrity": "sha512-O2LVLdcnWplaGxiPBz12d0HcdN8QdxdsWYhz5LSeuukV/5mn2xUUc3gBeU4QBYPJ18g/UToe8F532XJ608prmg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.0", @@ -26371,15 +26343,20 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.1.1.tgz", - "integrity": "sha512-6lIx5Pjc50D7VJU9lfRZ1twfIrIwQk+aeT9Ink2C07IUu/y9pxkIpDqmhY/VN3jAW42dA5z6ioOdyhOZZU1isw==", - "dev": true + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.4.4.tgz", + "integrity": "sha512-ua4qDt9dQb4qt5OI38eCZcQZYE5Bq3P0GzgvDARdT8Lt0mAUpxKTPy8JGGqEvF77tG1irKDZ3WreeezEa3P43w==", + "dev": true, + "requires": { + "comment-parser": "^1.1.5", + "esquery": "^1.4.0", + "jsdoctypeparser": "^9.0.0" + } }, "@eslint/eslintrc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", - "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz", + "integrity": "sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -26393,24 +26370,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "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==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -27316,18 +27275,6 @@ "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.19.0" - }, - "dependencies": { - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } } }, "@rollup/plugin-replace": { @@ -28244,10 +28191,11 @@ } }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "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==", + "dev": true, + "requires": {} }, "acorn-node": { "version": "1.8.2", @@ -28337,9 +28285,9 @@ } }, "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -31235,14 +31183,14 @@ } }, "core-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.1.tgz", - "integrity": "sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ==" + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.1.tgz", + "integrity": "sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==" }, "core-js-bundle": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.11.1.tgz", - "integrity": "sha512-G53levuILfTBZaMuglvFe8+pPu7JgLO3PLuNj2AOOMeoy16HjfkqI62UAtUOlS+ZW9ySXxiiC9nFCjaXMukm1g==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.12.1.tgz", + "integrity": "sha512-4xo0s+HI15r0HEVLy6LhFoPqVlwQKxgl/tbgDfcRziFa5gAUxyEPUtPVXi2VPcSVYIJ8JSG+SOvy/aLPD7M6Fw==", "dev": true }, "core-js-compat": { @@ -32812,13 +32760,13 @@ } }, "eslint": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz", - "integrity": "sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.26.0.tgz", + "integrity": "sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.0", + "@eslint/eslintrc": "^0.4.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -32865,12 +32813,6 @@ "@babel/highlight": "^7.10.4" } }, - "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==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -32966,23 +32908,6 @@ } } }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -33313,9 +33238,9 @@ } }, "eslint-plugin-cypress": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz", - "integrity": "sha512-1SergF1sGbVhsf7MYfOLiBhdOg6wqyeV9pXUAIDIffYTGMN3dTBQS9nFAzhLsHhO+Bn0GaVM1Ecm71XUidQ7VA==", + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.3.tgz", + "integrity": "sha512-hOoAid+XNFtpvOzZSNWP5LDrQBEJwbZwjib4XJ1KcRYKjeVj0mAmPmucG4Egli4j/aruv+Ow/acacoloWWCl9Q==", "dev": true, "requires": { "globals": "^11.12.0" @@ -33398,14 +33323,15 @@ } }, "eslint-plugin-jsdoc": { - "version": "33.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-33.0.0.tgz", - "integrity": "sha512-bkopnnuDdT04abKWPfDdD6XcAp2yX6UDpDViyvIdYmxbZYbpHXCRzQzLqCTo+SzWSTS0KFWz/V3shmmMr+x4EA==", + "version": "33.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-33.1.1.tgz", + "integrity": "sha512-6Avc2czg/mh0zmuU3H4v2xTXOALl9OiMGpn55nBDydhU684cVgvn2VtXm1JgH+2TW5SxEDnX3o/FUgda7LgVYA==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "^0.1.1", + "@es-joy/jsdoccomment": "^0.4.4", "comment-parser": "1.1.5", "debug": "^4.3.1", + "esquery": "^1.4.0", "jsdoctypeparser": "^9.0.0", "lodash": "^4.17.21", "regextras": "^0.7.1", @@ -33615,16 +33541,15 @@ "dev": true }, "eslint-plugin-unicorn": { - "version": "31.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-31.0.0.tgz", - "integrity": "sha512-HR3gI4ANtV8A+0FLAaxjBD/G5J3PWBo+7OswyGeK5nylGqtKLJVbnPksIkBgmVg+SFpxu5MnjaxQQI+9KjyVAg==", + "version": "32.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-32.0.0.tgz", + "integrity": "sha512-VYE/XvZvdcY0RvOKGxsrVVWo8DaI/tGVYuhKzSd6Uuy69Ydc8zX+roZ/H9PgyykM4nuj8JDoOHSwVk9a4OYbCQ==", "dev": true, "requires": { "ci-info": "^3.1.1", "clean-regexp": "^1.0.0", "eslint-template-visitor": "^2.3.2", "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", "import-modules": "^2.1.0", "is-builtin-module": "^3.1.0", "lodash": "^4.17.21", @@ -33659,12 +33584,6 @@ } } }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -33909,9 +33828,9 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -38016,9 +37935,9 @@ } }, "mocha": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz", - "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -40980,11 +40899,12 @@ "dev": true }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -41102,9 +41022,9 @@ } }, "rollup": { - "version": "2.46.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.46.0.tgz", - "integrity": "sha512-qPGoUBNl+Z8uNu0z7pD3WPTABWRbcOwIrO/5ccDJzmrtzn0LVf6Lj91+L5CcWhXl6iWf23FQ6m8Jkl2CmN1O7Q==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.47.0.tgz", + "integrity": "sha512-rqBjgq9hQfW0vRmz+0S062ORRNJXvwRpzxhFXORvar/maZqY6za3rgQ/p1Glg+j1hnc1GtYyQCPiAei95uTElg==", "requires": { "fsevents": "~2.3.1" }, diff --git a/package.json b/package.json index b20bcad5..60d20795 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "@babel/polyfill": "7.12.1", "@web/dev-server-rollup": "0.3.3", "canvg": "3.0.7", - "core-js": "3.11.1", + "core-js": "3.12.1", "deparam": "^1.0.5", "elix": "^15.0.0", "i18next": "^20.2.2", @@ -118,7 +118,7 @@ }, "devDependencies": { "@babel/core": "7.14.0", - "@babel/preset-env": "7.14.0", + "@babel/preset-env": "7.14.1", "@babel/register": "7.13.16", "@babel/runtime-corejs3": "7.14.0", "@cypress/code-coverage": "3.9.5", @@ -136,7 +136,7 @@ "axe-core": "4.2.0", "babel-plugin-transform-object-rest-spread": "7.0.0-beta.3", "copyfiles": "2.4.1", - "core-js-bundle": "3.11.1", + "core-js-bundle": "3.12.1", "coveradge": "0.6.0", "cp-cli": "2.0.0", "cross-var": "1.1.0", @@ -144,18 +144,18 @@ "cypress-axe": "0.12.2", "cypress-multi-reporters": "1.5.0", "cypress-plugin-snapshots": "1.4.4", - "eslint": "^7.25.0", + "eslint": "^7.26.0", "eslint-config-standard": "16.0.2", "eslint-plugin-array-func": "3.1.7", "eslint-plugin-chai-expect": "2.2.0", "eslint-plugin-chai-expect-keywords": "2.1.0", "eslint-plugin-chai-friendly": "0.6.0", "eslint-plugin-compat": "^3.9.0", - "eslint-plugin-cypress": "2.11.2", + "eslint-plugin-cypress": "2.11.3", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-html": "^6.1.2", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^33.0.0", + "eslint-plugin-jsdoc": "^33.1.1", "eslint-plugin-markdown": "^2.1.0", "eslint-plugin-mocha": "8.1.0", "eslint-plugin-mocha-cleanup": "1.9.1", @@ -165,11 +165,11 @@ "eslint-plugin-promise": "^5.1.0", "eslint-plugin-sonarjs": "^0.7.0", "eslint-plugin-standard": "4.1.0", - "eslint-plugin-unicorn": "31.0.0", + "eslint-plugin-unicorn": "32.0.0", "imageoptim-cli": "3.0.2", "jamilih": "0.54.0", "jsdoc": "3.6.6", - "mocha": "8.3.2", + "mocha": "8.4.0", "mocha-badge-generator": "0.9.0", "mochawesome": "6.2.2", "mochawesome-merge": "4.2.0", @@ -185,7 +185,7 @@ "remark-lint-ordered-list-marker-value": "2.0.1", "requirejs": "2.3.6", "rimraf": "3.0.2", - "rollup": "2.46.0", + "rollup": "2.47.0", "rollup-plugin-copy": "3.4.0", "rollup-plugin-filesize": "9.1.1", "rollup-plugin-node-polyfills": "0.2.1",