From aa6f202802ee1c460be2f836c4f788bdfd7bbaf2 Mon Sep 17 00:00:00 2001 From: as-op Date: Tue, 24 Sep 2024 12:17:10 +0200 Subject: [PATCH 1/9] add eslint config & add to ci --- .github/workflows/ci.yml | 1 + eslint.config.mjs | 62 +++++++ package-lock.json | 363 ++++++++++++++++++++++++++++++++++++--- package.json | 4 + 4 files changed, 410 insertions(+), 20 deletions(-) create mode 100644 eslint.config.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6f66a0..0b7268b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,3 +32,4 @@ jobs: - run: npm ci - run: npm run build - run: npm test + - run: npm lint diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..02d3966 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,62 @@ +import globals from "globals"; +import eslint from '@eslint/js'; +import jestPlugin from 'eslint-plugin-jest'; + +export default [ + eslint.configs.recommended, + { + files: ["src/**/*.js"], + languageOptions: { + globals: { + ...globals.browser, + "jQuery": true, + "_": true + } + }, + rules: { + "no-cond-assign": "off", + "no-unused-vars": [ + "error", + { + // "args": "all", + "argsIgnorePattern": "^_", + // "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + // "destructuredArrayIgnorePattern": "^_", + "varsIgnorePattern": "^_", + // "ignoreRestSiblings": true + } + ], + "no-undef": "error" + } + }, + { + files: ["jest.setup.js", "tests/**/*.js"], + plugins: { + jest: jestPlugin + }, + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + ...globals.jest + } + }, + rules: { + "no-unused-vars": "error", + "no-undef": "error" + } + }, + { + files: ["jest.config.js", 'babel.config.js', 'webpack.config.js'], + languageOptions: { + globals: { + ...globals.node + } + }, + rules: { + "no-unused-vars": "error", + "no-undef": "error" + } + }, +]; diff --git a/package-lock.json b/package-lock.json index 56955a4..3cf6058 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,9 +44,12 @@ "@ckeditor/ckeditor5-upload": "43.0.0", "@ckeditor/ckeditor5-watchdog": "43.0.0", "@ckeditor/ckeditor5-widget": "43.0.0", + "@eslint/js": "^9.10.0", "babel-jest": "^29.7.0", "css-loader": "^7.1.2", "eslint": "^9.9.0", + "eslint-plugin-jest": "^28.8.3", + "globals": "^15.9.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -1117,6 +1120,15 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", @@ -1979,6 +1991,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.25.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", @@ -3497,11 +3518,10 @@ } }, "node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -4268,6 +4288,127 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz", + "integrity": "sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.6.0.tgz", + "integrity": "sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz", + "integrity": "sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.6.0.tgz", + "integrity": "sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/typescript-estree": "8.6.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz", + "integrity": "sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.6.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -6167,6 +6308,31 @@ } } }, + "node_modules/eslint-plugin-jest": { + "version": "28.8.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz", + "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "engines": { + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -6201,6 +6367,15 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", + "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/eslint-scope": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", @@ -6442,9 +6617,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6736,12 +6911,15 @@ "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -10662,6 +10840,18 @@ "node": ">=12" } }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/turndown": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz", @@ -10699,6 +10889,20 @@ "node": ">=4" } }, + "node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -11995,6 +12199,14 @@ "@babel/helper-replace-supers": "^7.25.0", "@babel/traverse": "^7.25.4", "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } } }, "@babel/plugin-transform-computed-properties": { @@ -12552,6 +12764,14 @@ "@babel/types": "^7.25.6", "debug": "^4.3.1", "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } } }, "@babel/types": { @@ -13706,9 +13926,9 @@ } }, "@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", "dev": true }, "@eslint/object-schema": { @@ -14340,6 +14560,80 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "@typescript-eslint/scope-manager": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz", + "integrity": "sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0" + } + }, + "@typescript-eslint/types": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.6.0.tgz", + "integrity": "sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz", + "integrity": "sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.6.0.tgz", + "integrity": "sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/typescript-estree": "8.6.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz", + "integrity": "sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.6.0", + "eslint-visitor-keys": "^3.4.3" + } + }, "@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -15736,6 +16030,12 @@ "text-table": "^0.2.0" }, "dependencies": { + "@eslint/js": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", + "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "dev": true + }, "eslint-scope": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", @@ -15791,6 +16091,15 @@ } } }, + "eslint-plugin-jest": { + "version": "28.8.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz", + "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -15919,9 +16228,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -16147,9 +16456,9 @@ "dev": true }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", "dev": true }, "globby": { @@ -18897,6 +19206,13 @@ "punycode": "^2.1.1" } }, + "ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "requires": {} + }, "turndown": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz", @@ -18927,6 +19243,13 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "peer": true + }, "uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", diff --git a/package.json b/package.json index c13ae18..b304108 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,9 @@ "babel-jest": "^29.7.0", "css-loader": "^7.1.2", "eslint": "^9.9.0", + "@eslint/js": "^9.10.0", + "eslint-plugin-jest": "^28.8.3", + "globals": "^15.9.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -88,6 +91,7 @@ "preversion": "npm run build; if [ -n \"$(git status src/ckeditor.js build/ --porcelain)\" ]; then git add -u src/ckeditor.js build/ && git commit -m 'Internal: Build.'; fi", "prewatch": "sh bin/clean.sh", "watch": "NODE_ENV=development ./node_modules/.bin/webpack --watch --stats-error-details", + "lint": "eslint .", "test": "jest ." } } From 111b986796aedf02df376ab5e3d50a227b8cf539 Mon Sep 17 00:00:00 2001 From: as-op Date: Tue, 24 Sep 2024 12:20:06 +0200 Subject: [PATCH 2/9] fix ci cmd --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b7268b..0c681ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,4 +32,4 @@ jobs: - run: npm ci - run: npm run build - run: npm test - - run: npm lint + - run: npm run lint From aebdb35d17938223fd1b1e26ccd8dd72880e0a64 Mon Sep 17 00:00:00 2001 From: as-op Date: Tue, 24 Sep 2024 12:24:31 +0200 Subject: [PATCH 3/9] add eslint ignores --- eslint.config.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index 02d3966..4906fb5 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,6 +4,9 @@ import jestPlugin from 'eslint-plugin-jest'; export default [ eslint.configs.recommended, + { + ignores: ["tmp/", "coverage/", "node_modules/"], + }, { files: ["src/**/*.js"], languageOptions: { From 722a39add9cb9156d8302d94a0577e2b4ebc9ed7 Mon Sep 17 00:00:00 2001 From: as-op Date: Tue, 24 Sep 2024 12:50:07 +0200 Subject: [PATCH 4/9] fix all clear lint cases --- src/mentions/user-mentions.js | 3 +-- src/mentions/work-package-mentions.js | 2 +- src/plugins/code-block/widget.js | 2 -- src/plugins/op-content-revisions/op-content-revisions.js | 2 +- src/plugins/op-content-revisions/ui.js | 2 +- src/plugins/op-custom-css-classes-plugin.js | 2 -- src/plugins/op-help-link-plugin/op-help-link-plugin.js | 1 - .../op-image-attachment-lookup-plugin.js | 2 +- .../op-macro-child-pages/op-macro-child-pages-editing.js | 4 ---- .../op-macro-child-pages/op-macro-child-pages-toolbar.js | 2 +- src/plugins/op-macro-embedded-table/embedded-table-editing.js | 1 - src/plugins/op-macro-embedded-table/embedded-table-toolbar.js | 2 +- src/plugins/op-macro-embedded-table/utils.js | 2 +- src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js | 2 +- src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js | 3 +-- src/plugins/op-source-code.plugin.js | 3 +-- 16 files changed, 11 insertions(+), 24 deletions(-) diff --git a/src/mentions/user-mentions.js b/src/mentions/user-mentions.js index 706e3d5..553c1ad 100644 --- a/src/mentions/user-mentions.js +++ b/src/mentions/user-mentions.js @@ -2,7 +2,6 @@ import { getOPResource, getOPPath, getPluginContext, - getOPHelper, } from "../plugins/op-context/op-context"; export function userMentions(queryText) { @@ -22,7 +21,7 @@ export function userMentions(queryText) { const pluginContext = getPluginContext(editor); const base = window.OpenProject.urlRoot; - return new Promise((resolve, reject) => { + return new Promise((resolve, _reject) => { jQuery.getJSON(url, collection => { resolve(_.uniqBy(collection._embedded.elements, (el) => el.id).map(mention => { const type = mention._type.toLowerCase(); diff --git a/src/mentions/work-package-mentions.js b/src/mentions/work-package-mentions.js index c6ba172..19f09ae 100644 --- a/src/mentions/work-package-mentions.js +++ b/src/mentions/work-package-mentions.js @@ -7,7 +7,7 @@ export function workPackageMentions(query) { return []; } - return new Promise((resolve, reject) => { + return new Promise((resolve, _reject) => { jQuery.getJSON(url, {q: query, scope: 'all'}, collection => { resolve(collection.map(wp => { const id = `#${wp.id}`; diff --git a/src/plugins/code-block/widget.js b/src/plugins/code-block/widget.js index 3a22a35..21bc0bc 100644 --- a/src/plugins/code-block/widget.js +++ b/src/plugins/code-block/widget.js @@ -1,6 +1,4 @@ -import { ViewPosition } from '@ckeditor/ckeditor5-engine'; import {toWidget, isWidget} from '@ckeditor/ckeditor5-widget/src/utils'; -import {setContent} from './widget'; const codeBlockSymbol = Symbol( 'isOPCodeBlock' ); diff --git a/src/plugins/op-content-revisions/op-content-revisions.js b/src/plugins/op-content-revisions/op-content-revisions.js index c217b08..f1f3df9 100644 --- a/src/plugins/op-content-revisions/op-content-revisions.js +++ b/src/plugins/op-content-revisions/op-content-revisions.js @@ -1,6 +1,6 @@ import {Plugin} from "ckeditor5/src/core"; import OpContentRevisionsUI from "./ui"; -import {loadFromLocalStorage, saveInLocalStorage} from "./storage"; +import {loadFromLocalStorage} from "./storage"; import OpContentRevisionsCommand from "./command"; import {getOPFieldName, getOPResource} from "../op-context/op-context"; import {Autosave} from "@ckeditor/ckeditor5-autosave"; diff --git a/src/plugins/op-content-revisions/ui.js b/src/plugins/op-content-revisions/ui.js index 88d9be9..8012265 100644 --- a/src/plugins/op-content-revisions/ui.js +++ b/src/plugins/op-content-revisions/ui.js @@ -2,7 +2,7 @@ * @file registers the history_log toolbar button and binds functionality to it. */ import {Plugin} from "ckeditor5/src/core"; -import {addListToDropdown, createDropdown, Notification} from "ckeditor5/src/ui"; +import {addListToDropdown, createDropdown} from "ckeditor5/src/ui"; import {Collection} from "ckeditor5/src/utils"; import {loadFromLocalStorage} from "./storage"; import {countWords, generateHash} from "./utils"; diff --git a/src/plugins/op-custom-css-classes-plugin.js b/src/plugins/op-custom-css-classes-plugin.js index 422a51b..49f055d 100644 --- a/src/plugins/op-custom-css-classes-plugin.js +++ b/src/plugins/op-custom-css-classes-plugin.js @@ -304,8 +304,6 @@ export default class OpCustomCssClassesPlugin extends Plugin { const listType = modelElement.getAttribute('listType'); const listTypeClass = config.attributesWithCustomClassesMap[listType]; - const previousElement = listElement.previousSibling; - const nextElement = listElement.nextSibling; if (listType === 'todo') { viewWriter.addClass(listTypeClass, listElement); diff --git a/src/plugins/op-help-link-plugin/op-help-link-plugin.js b/src/plugins/op-help-link-plugin/op-help-link-plugin.js index 0c203b5..250bc99 100644 --- a/src/plugins/op-help-link-plugin/op-help-link-plugin.js +++ b/src/plugins/op-help-link-plugin/op-help-link-plugin.js @@ -14,7 +14,6 @@ export default class OPHelpLinkPlugin extends Plugin { init() { const editor = this.editor; - const model = editor.model; const helpURL = editor.config.get('openProject.helpURL'); editor.ui.componentFactory.add( 'openProjectShowFormattingHelp', locale => { diff --git a/src/plugins/op-image-attachment-lookup/op-image-attachment-lookup-plugin.js b/src/plugins/op-image-attachment-lookup/op-image-attachment-lookup-plugin.js index 004c95a..8995b0d 100644 --- a/src/plugins/op-image-attachment-lookup/op-image-attachment-lookup-plugin.js +++ b/src/plugins/op-image-attachment-lookup/op-image-attachment-lookup-plugin.js @@ -9,7 +9,7 @@ export function replaceImageAttachmentsByName(resource) { dispatcher.on('attribute:src:imageInline', converter, { priority: 'highest' } ); }; - function converter( evt, data, conversionApi ) { + function converter( evt, data, _conversionApi ) { // We do not consume the attribute since we want the regular attribute // converter to run as well. diff --git a/src/plugins/op-macro-child-pages/op-macro-child-pages-editing.js b/src/plugins/op-macro-child-pages/op-macro-child-pages-editing.js index 1808156..6e83938 100644 --- a/src/plugins/op-macro-child-pages/op-macro-child-pages-editing.js +++ b/src/plugins/op-macro-child-pages/op-macro-child-pages-editing.js @@ -1,10 +1,6 @@ import { ButtonView } from '@ckeditor/ckeditor5-ui'; - import { Plugin } from '@ckeditor/ckeditor5-core'; -import { ViewPosition } from '@ckeditor/ckeditor5-engine'; -import { ViewRange } from '@ckeditor/ckeditor5-engine'; - import {toChildPagesMacroWidget} from './utils'; export default class OPChildPagesEditing extends Plugin { diff --git a/src/plugins/op-macro-child-pages/op-macro-child-pages-toolbar.js b/src/plugins/op-macro-child-pages/op-macro-child-pages-toolbar.js index 7b02079..551553c 100644 --- a/src/plugins/op-macro-child-pages/op-macro-child-pages-toolbar.js +++ b/src/plugins/op-macro-child-pages/op-macro-child-pages-toolbar.js @@ -7,7 +7,7 @@ import {createEditToolbar} from '../../helpers/create-toolbar'; import {getPluginContext} from '../op-context/op-context'; -const balloonClassName = 'ck-toolbar-container'; +// const balloonClassName = 'ck-toolbar-container'; export default class OPChildPagesToolbar extends Plugin { static get requires() { diff --git a/src/plugins/op-macro-embedded-table/embedded-table-editing.js b/src/plugins/op-macro-embedded-table/embedded-table-editing.js index 5ccd785..4cbc0a7 100644 --- a/src/plugins/op-macro-embedded-table/embedded-table-editing.js +++ b/src/plugins/op-macro-embedded-table/embedded-table-editing.js @@ -3,7 +3,6 @@ import { ButtonView } from '@ckeditor/ckeditor5-ui'; import { Plugin } from '@ckeditor/ckeditor5-core'; import {toEmbeddedTableWidget} from './utils'; -import { ViewPosition } from '@ckeditor/ckeditor5-engine'; import {getPluginContext} from '../op-context/op-context'; export default class EmbeddedTableEditing extends Plugin { diff --git a/src/plugins/op-macro-embedded-table/embedded-table-toolbar.js b/src/plugins/op-macro-embedded-table/embedded-table-toolbar.js index 944c9a9..9c14491 100644 --- a/src/plugins/op-macro-embedded-table/embedded-table-toolbar.js +++ b/src/plugins/op-macro-embedded-table/embedded-table-toolbar.js @@ -7,7 +7,7 @@ import {createEditToolbar} from '../../helpers/create-toolbar'; import {getPluginContext} from '../op-context/op-context'; -const balloonClassName = 'ck-toolbar-container'; +// const balloonClassName = 'ck-toolbar-container'; export default class EmbeddedTableToolbar extends Plugin { static get requires() { diff --git a/src/plugins/op-macro-embedded-table/utils.js b/src/plugins/op-macro-embedded-table/utils.js index f7d5293..e76c141 100644 --- a/src/plugins/op-macro-embedded-table/utils.js +++ b/src/plugins/op-macro-embedded-table/utils.js @@ -1,7 +1,7 @@ const embeddedTableSymbol = Symbol( 'isOPEmbeddedTable' ); import {toWidget, isWidget} from '@ckeditor/ckeditor5-widget/src/utils'; -export function toEmbeddedTableWidget( viewElement, writer, label ) { +export function toEmbeddedTableWidget( viewElement, writer, _label ) { writer.setCustomProperty( embeddedTableSymbol, true, viewElement ); return toWidget( viewElement, writer, { label: 'your label here' } ); } diff --git a/src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js b/src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js index aba9e26..bc83343 100644 --- a/src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js +++ b/src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js @@ -110,7 +110,7 @@ export default class OPMacroWpButtonEditing extends Plugin { } createMacroViewElement(modelElement, writer) { - const type = modelElement.getAttribute('type'); + // const type = modelElement.getAttribute('type'); const classes = modelElement.getAttribute('classes') || ''; const label = this.macroLabel(); // TODO: Pass type, it is not updated on coming back from the modal.. const placeholder = writer.createText( label ); diff --git a/src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js b/src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js index cba7271..f7c4f21 100644 --- a/src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js +++ b/src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js @@ -7,7 +7,7 @@ import {createEditToolbar} from '../../helpers/create-toolbar'; import {getPluginContext} from '../op-context/op-context'; -const balloonClassName = 'ck-toolbar-container'; +// const balloonClassName = 'ck-toolbar-container'; export default class OPMacroWpButtonToolbar extends Plugin { static get requires() { @@ -20,7 +20,6 @@ export default class OPMacroWpButtonToolbar extends Plugin { init() { const editor = this.editor; - const model = this.editor.model; const pluginContext = getPluginContext(editor); // Add editing button diff --git a/src/plugins/op-source-code.plugin.js b/src/plugins/op-source-code.plugin.js index 81a0321..f5fe103 100644 --- a/src/plugins/op-source-code.plugin.js +++ b/src/plugins/op-source-code.plugin.js @@ -6,7 +6,6 @@ import wysiwygIcon from '../icons/wysiwyg.svg'; import { ButtonView } from '@ckeditor/ckeditor5-ui'; import { Plugin } from '@ckeditor/ckeditor5-core'; -import {getOPPath, getOPPreviewContext, getOPService} from './op-context/op-context'; import {enableItems, disableItems} from '../helpers/button-disabler'; export default class OPSourceCodePlugin extends Plugin { @@ -35,7 +34,7 @@ export default class OPSourceCodePlugin extends Plugin { } ); - let showSource = function(preview) { + let showSource = function(_preview) { let $mainEditor = jQuery(editor.ui.getEditableElement()).parent(); let $reference; From 9a4a76e26aec7381e762a361e1e8023db5cd0da1 Mon Sep 17 00:00:00 2001 From: as-op Date: Tue, 24 Sep 2024 13:00:40 +0200 Subject: [PATCH 5/9] I18n is global variable --- eslint.config.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index 4906fb5..8ad454c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -13,6 +13,7 @@ export default [ globals: { ...globals.browser, "jQuery": true, + "I18n": true, "_": true } }, From e174b66f20e3c96749add888836b2fb675f1767d Mon Sep 17 00:00:00 2001 From: as-op Date: Wed, 11 Dec 2024 13:50:56 +0100 Subject: [PATCH 6/9] bump eslint --- package-lock.json | 413 ++++++++++++++++++++++++++-------------------- package.json | 118 ++++++------- 2 files changed, 296 insertions(+), 235 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3cf6058..0583f4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,12 +44,12 @@ "@ckeditor/ckeditor5-upload": "43.0.0", "@ckeditor/ckeditor5-watchdog": "43.0.0", "@ckeditor/ckeditor5-widget": "43.0.0", - "@eslint/js": "^9.10.0", + "@eslint/js": "^9.16.0", "babel-jest": "^29.7.0", "css-loader": "^7.1.2", - "eslint": "^9.9.0", - "eslint-plugin-jest": "^28.8.3", - "globals": "^15.9.0", + "eslint": "^9.16.0", + "eslint-plugin-jest": "^28.9.0", + "globals": "^15.13.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -3456,23 +3456,21 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -3480,12 +3478,23 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -3509,7 +3518,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -3518,20 +3526,31 @@ } }, "node_modules/@eslint/js": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", - "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, - "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -3542,6 +3561,41 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3556,11 +3610,10 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -4238,9 +4291,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/minimatch": { @@ -4636,11 +4689,10 @@ "dev": true }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4673,7 +4725,6 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -5580,9 +5631,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -6249,28 +6300,31 @@ } }, "node_modules/eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -6280,15 +6334,11 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -6309,9 +6359,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "28.8.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz", - "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", + "version": "28.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.9.0.tgz", + "integrity": "sha512-rLu1s1Wf96TgUUxSw6loVIkNtUjq1Re7A9QdCCHSohnvXEBAjuL420h0T/fMmkQlNsQP2GhQzEUpYHPfxBkvYQ==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -6367,21 +6417,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -6394,11 +6434,10 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -6468,15 +6507,14 @@ } }, "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6486,11 +6524,10 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -6911,9 +6948,9 @@ "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", "dev": true, "engines": { "node": ">=18" @@ -10752,12 +10789,6 @@ "node": ">=8" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, "node_modules/through2": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", @@ -13884,26 +13915,35 @@ } }, "@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true }, "@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, "requires": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, + "@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.15" + } + }, "@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -13926,23 +13966,56 @@ } }, "@eslint/js": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", - "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true }, "@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true }, + "@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "requires": { + "levn": "^0.4.1" + } + }, "@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true + }, + "@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "requires": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "dependencies": { + "@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true + } + } + }, "@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -13950,9 +14023,9 @@ "dev": true }, "@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -14510,9 +14583,9 @@ } }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/minimatch": { @@ -14820,9 +14893,9 @@ "dev": true }, "acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true }, "acorn-globals": { @@ -15524,9 +15597,9 @@ } }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -15989,27 +16062,31 @@ } }, "eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -16019,27 +16096,17 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "dependencies": { - "@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", - "dev": true - }, "eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -16047,9 +16114,9 @@ } }, "eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true }, "find-up": { @@ -16092,9 +16159,9 @@ } }, "eslint-plugin-jest": { - "version": "28.8.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz", - "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", + "version": "28.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.9.0.tgz", + "integrity": "sha512-rLu1s1Wf96TgUUxSw6loVIkNtUjq1Re7A9QdCCHSohnvXEBAjuL420h0T/fMmkQlNsQP2GhQzEUpYHPfxBkvYQ==", "dev": true, "requires": { "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -16125,20 +16192,20 @@ "dev": true }, "espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "requires": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.2.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true } } @@ -16456,9 +16523,9 @@ "dev": true }, "globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", "dev": true }, "globby": { @@ -19134,12 +19201,6 @@ "minimatch": "^3.0.4" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, "through2": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", diff --git a/package.json b/package.json index b304108..67c326e 100644 --- a/package.json +++ b/package.json @@ -13,65 +13,65 @@ "files": [ "build" ], - "devDependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/preset-env": "^7.25.4", - "@ckeditor/ckeditor5-adapter-ckfinder": "43.0.0", - "@ckeditor/ckeditor5-autoformat": "43.0.0", - "@ckeditor/ckeditor5-autosave": "^43.0.0", - "@ckeditor/ckeditor5-basic-styles": "43.0.0", - "@ckeditor/ckeditor5-block-quote": "43.0.0", - "@ckeditor/ckeditor5-ckfinder": "43.0.0", - "@ckeditor/ckeditor5-core": "43.0.0", - "@ckeditor/ckeditor5-dev-translations": "^42.0.0", - "@ckeditor/ckeditor5-dev-utils": "42.0.0", - "@ckeditor/ckeditor5-easy-image": "43.0.0", - "@ckeditor/ckeditor5-editor-classic": "43.0.0", - "@ckeditor/ckeditor5-editor-decoupled": "43.0.0", - "@ckeditor/ckeditor5-engine": "43.0.0", - "@ckeditor/ckeditor5-enter": "43.0.0", - "@ckeditor/ckeditor5-essentials": "43.0.0", - "@ckeditor/ckeditor5-heading": "43.0.0", - "@ckeditor/ckeditor5-image": "43.0.0", - "@ckeditor/ckeditor5-link": "43.0.0", - "@ckeditor/ckeditor5-list": "43.0.0", - "@ckeditor/ckeditor5-media-embed": "43.0.0", - "@ckeditor/ckeditor5-mention": "43.0.0", - "@ckeditor/ckeditor5-paragraph": "43.0.0", - "@ckeditor/ckeditor5-paste-from-office": "43.0.0", - "@ckeditor/ckeditor5-remove-format": "43.0.0", - "@ckeditor/ckeditor5-table": "43.0.0", - "@ckeditor/ckeditor5-theme-lark": "43.0.0", - "@ckeditor/ckeditor5-typing": "43.0.0", - "@ckeditor/ckeditor5-ui": "43.0.0", - "@ckeditor/ckeditor5-undo": "43.0.0", - "@ckeditor/ckeditor5-upload": "43.0.0", - "@ckeditor/ckeditor5-watchdog": "43.0.0", - "@ckeditor/ckeditor5-widget": "43.0.0", - "babel-jest": "^29.7.0", - "css-loader": "^7.1.2", - "eslint": "^9.9.0", - "@eslint/js": "^9.10.0", - "eslint-plugin-jest": "^28.8.3", - "globals": "^15.9.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "lz-string": "^1.5.0", - "markdown-it": "^14.1.0", - "markdown-it-task-lists": "^2.1.1", - "postcss-loader": "^8.1.1", - "raw-loader": "^4.0.2", - "style-loader": "^4.0.0", - "terser-webpack-plugin": "^5.3.10", - "turndown": "^7.2.0", - "turndown-plugin-gfm": "^1.0.2", - "underscore": "^1.13.7", - "webpack": "^5.93.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-cli": "^5.1.4", - "webpack-sources": "3.2.3" + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/preset-env": "^7.25.4", + "@ckeditor/ckeditor5-adapter-ckfinder": "43.0.0", + "@ckeditor/ckeditor5-autoformat": "43.0.0", + "@ckeditor/ckeditor5-autosave": "^43.0.0", + "@ckeditor/ckeditor5-basic-styles": "43.0.0", + "@ckeditor/ckeditor5-block-quote": "43.0.0", + "@ckeditor/ckeditor5-ckfinder": "43.0.0", + "@ckeditor/ckeditor5-core": "43.0.0", + "@ckeditor/ckeditor5-dev-translations": "^42.0.0", + "@ckeditor/ckeditor5-dev-utils": "42.0.0", + "@ckeditor/ckeditor5-easy-image": "43.0.0", + "@ckeditor/ckeditor5-editor-classic": "43.0.0", + "@ckeditor/ckeditor5-editor-decoupled": "43.0.0", + "@ckeditor/ckeditor5-engine": "43.0.0", + "@ckeditor/ckeditor5-enter": "43.0.0", + "@ckeditor/ckeditor5-essentials": "43.0.0", + "@ckeditor/ckeditor5-heading": "43.0.0", + "@ckeditor/ckeditor5-image": "43.0.0", + "@ckeditor/ckeditor5-link": "43.0.0", + "@ckeditor/ckeditor5-list": "43.0.0", + "@ckeditor/ckeditor5-media-embed": "43.0.0", + "@ckeditor/ckeditor5-mention": "43.0.0", + "@ckeditor/ckeditor5-paragraph": "43.0.0", + "@ckeditor/ckeditor5-paste-from-office": "43.0.0", + "@ckeditor/ckeditor5-remove-format": "43.0.0", + "@ckeditor/ckeditor5-table": "43.0.0", + "@ckeditor/ckeditor5-theme-lark": "43.0.0", + "@ckeditor/ckeditor5-typing": "43.0.0", + "@ckeditor/ckeditor5-ui": "43.0.0", + "@ckeditor/ckeditor5-undo": "43.0.0", + "@ckeditor/ckeditor5-upload": "43.0.0", + "@ckeditor/ckeditor5-watchdog": "43.0.0", + "@ckeditor/ckeditor5-widget": "43.0.0", + "babel-jest": "^29.7.0", + "css-loader": "^7.1.2", + "eslint": "^9.16.0", + "@eslint/js": "^9.16.0", + "eslint-plugin-jest": "^28.9.0", + "globals": "^15.13.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "lz-string": "^1.5.0", + "markdown-it": "^14.1.0", + "markdown-it-task-lists": "^2.1.1", + "postcss-loader": "^8.1.1", + "raw-loader": "^4.0.2", + "style-loader": "^4.0.0", + "terser-webpack-plugin": "^5.3.10", + "turndown": "^7.2.0", + "turndown-plugin-gfm": "^1.0.2", + "underscore": "^1.13.7", + "webpack": "^5.93.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-cli": "^5.1.4", + "webpack-sources": "3.2.3" }, "engines": { "node": ">=6.9.0", From 767e4411db65446a258d3a20baf4dae4504bf730 Mon Sep 17 00:00:00 2001 From: as-op Date: Wed, 11 Dec 2024 13:51:20 +0100 Subject: [PATCH 7/9] remove deprecated check --- src/plugins/op-preview.plugin.js | 10 +--------- src/plugins/op-source-code.plugin.js | 10 +--------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/plugins/op-preview.plugin.js b/src/plugins/op-preview.plugin.js index f70bb48..71108f3 100644 --- a/src/plugins/op-preview.plugin.js +++ b/src/plugins/op-preview.plugin.js @@ -30,15 +30,7 @@ export default class OPPreviewPlugin extends Plugin { let showPreview = function(preview) { - let $mainEditor = jQuery(editor.ui.getEditableElement()).parent(); - let $reference; - - if ($mainEditor.length) { - $reference = $mainEditor; - } else { - $reference = $editable; - } - + let $reference = jQuery(editor.ui.getEditableElement()).parent(); let $previewWrapper = jQuery('
'); $reference.siblings('.ck-editor__preview').remove(); diff --git a/src/plugins/op-source-code.plugin.js b/src/plugins/op-source-code.plugin.js index f5fe103..6805720 100644 --- a/src/plugins/op-source-code.plugin.js +++ b/src/plugins/op-source-code.plugin.js @@ -35,15 +35,7 @@ export default class OPSourceCodePlugin extends Plugin { let showSource = function(_preview) { - let $mainEditor = jQuery(editor.ui.getEditableElement()).parent(); - let $reference; - - if ($mainEditor.length) { - $reference = $mainEditor; - } else { - $reference = $editable; - } - + let $reference = jQuery(editor.ui.getEditableElement()).parent(); let $sourceWrapper = jQuery('
'); $reference.siblings('.ck-editor__source').remove(); From 41b258ba7530b386a21282e03e790d7bd30e284a Mon Sep 17 00:00:00 2001 From: as-op Date: Wed, 11 Dec 2024 13:51:51 +0100 Subject: [PATCH 8/9] fix lint error: no-prototype-builtins --- src/helpers/button-disabler.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helpers/button-disabler.js b/src/helpers/button-disabler.js index 6668615..80a9a74 100644 --- a/src/helpers/button-disabler.js +++ b/src/helpers/button-disabler.js @@ -1,4 +1,4 @@ -import { FileDialogButtonView } from '@ckeditor/ckeditor5-ui'; +import {FileDialogButtonView} from '@ckeditor/ckeditor5-ui'; export function getToolbarItems(editor) { editor.__currentlyDisabled = editor.__currentlyDisabled || []; @@ -11,12 +11,12 @@ export function getToolbarItems(editor) { } export function disableItems(editor, except) { - jQuery.each(getToolbarItems(editor), function(index, item) { + jQuery.each(getToolbarItems(editor), function (index, item) { let toDisable = item; if (item instanceof FileDialogButtonView) { toDisable = item.buttonView; - } else if (item === except || !item.hasOwnProperty('isEnabled')) { + } else if (item === except || !Object.prototype.hasOwnProperty.call(item, 'isEnabled')) { toDisable = null; } @@ -31,7 +31,7 @@ export function disableItems(editor, except) { } export function enableItems(editor) { - jQuery.each(getToolbarItems(editor), function(index, item) { + jQuery.each(getToolbarItems(editor), function (index, item) { let toEnable = item; if (item instanceof FileDialogButtonView) { From 2afaa63e9fae822b3ba2181f371a613785a660b9 Mon Sep 17 00:00:00 2001 From: as-op Date: Wed, 11 Dec 2024 13:55:10 +0100 Subject: [PATCH 9/9] bump eslint --- package-lock.json | 2 +- package.json | 120 +++++++++++++++++++++++----------------------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d7961c..e979238 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "css-loader": "^7.1.2", "eslint": "^9.16.0", "eslint-plugin-jest": "^28.9.0", - "globals": "^15.13.0", + "globals": "^15.9.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", diff --git a/package.json b/package.json index 5d46a4a..5052e30 100644 --- a/package.json +++ b/package.json @@ -13,66 +13,66 @@ "files": [ "build" ], - "devDependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/preset-env": "^7.25.4", - "@ckeditor/ckeditor5-adapter-ckfinder": "43.0.0", - "@ckeditor/ckeditor5-autoformat": "43.0.0", - "@ckeditor/ckeditor5-autosave": "^43.0.0", - "@ckeditor/ckeditor5-basic-styles": "43.0.0", - "@ckeditor/ckeditor5-block-quote": "43.0.0", - "@ckeditor/ckeditor5-ckfinder": "43.0.0", - "@ckeditor/ckeditor5-core": "43.0.0", - "@ckeditor/ckeditor5-dev-translations": "^42.0.0", - "@ckeditor/ckeditor5-dev-utils": "42.0.0", - "@ckeditor/ckeditor5-easy-image": "43.0.0", - "@ckeditor/ckeditor5-editor-classic": "43.0.0", - "@ckeditor/ckeditor5-editor-decoupled": "43.0.0", - "@ckeditor/ckeditor5-engine": "43.0.0", - "@ckeditor/ckeditor5-enter": "43.0.0", - "@ckeditor/ckeditor5-essentials": "43.0.0", - "@ckeditor/ckeditor5-heading": "43.0.0", - "@ckeditor/ckeditor5-image": "43.0.0", - "@ckeditor/ckeditor5-link": "43.0.0", - "@ckeditor/ckeditor5-list": "43.0.0", - "@ckeditor/ckeditor5-media-embed": "43.0.0", - "@ckeditor/ckeditor5-mention": "43.0.0", - "@ckeditor/ckeditor5-page-break": "43.0.0", - "@ckeditor/ckeditor5-paragraph": "43.0.0", - "@ckeditor/ckeditor5-paste-from-office": "43.0.0", - "@ckeditor/ckeditor5-remove-format": "43.0.0", - "@ckeditor/ckeditor5-table": "43.0.0", - "@ckeditor/ckeditor5-theme-lark": "43.0.0", - "@ckeditor/ckeditor5-typing": "43.0.0", - "@ckeditor/ckeditor5-ui": "43.0.0", - "@ckeditor/ckeditor5-undo": "43.0.0", - "@ckeditor/ckeditor5-upload": "43.0.0", - "@ckeditor/ckeditor5-watchdog": "43.0.0", - "@ckeditor/ckeditor5-widget": "43.0.0", - "babel-jest": "^29.7.0", - "css-loader": "^7.1.2", - "eslint": "^9.16.0", - "@eslint/js": "^9.16.0", - "eslint-plugin-jest": "^28.8.3", - "globals": "^15.9.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "lz-string": "^1.5.0", - "markdown-it": "^14.1.0", - "markdown-it-task-lists": "^2.1.1", - "postcss-loader": "^8.1.1", - "raw-loader": "^4.0.2", - "style-loader": "^4.0.0", - "terser-webpack-plugin": "^5.3.10", - "turndown": "^7.2.0", - "turndown-plugin-gfm": "^1.0.2", - "underscore": "^1.13.7", - "webpack": "^5.93.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-cli": "^5.1.4", - "webpack-sources": "3.2.3" + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/preset-env": "^7.25.4", + "@ckeditor/ckeditor5-adapter-ckfinder": "43.0.0", + "@ckeditor/ckeditor5-autoformat": "43.0.0", + "@ckeditor/ckeditor5-autosave": "^43.0.0", + "@ckeditor/ckeditor5-basic-styles": "43.0.0", + "@ckeditor/ckeditor5-block-quote": "43.0.0", + "@ckeditor/ckeditor5-ckfinder": "43.0.0", + "@ckeditor/ckeditor5-core": "43.0.0", + "@ckeditor/ckeditor5-dev-translations": "^42.0.0", + "@ckeditor/ckeditor5-dev-utils": "42.0.0", + "@ckeditor/ckeditor5-easy-image": "43.0.0", + "@ckeditor/ckeditor5-editor-classic": "43.0.0", + "@ckeditor/ckeditor5-editor-decoupled": "43.0.0", + "@ckeditor/ckeditor5-engine": "43.0.0", + "@ckeditor/ckeditor5-enter": "43.0.0", + "@ckeditor/ckeditor5-essentials": "43.0.0", + "@ckeditor/ckeditor5-heading": "43.0.0", + "@ckeditor/ckeditor5-image": "43.0.0", + "@ckeditor/ckeditor5-link": "43.0.0", + "@ckeditor/ckeditor5-list": "43.0.0", + "@ckeditor/ckeditor5-media-embed": "43.0.0", + "@ckeditor/ckeditor5-mention": "43.0.0", + "@ckeditor/ckeditor5-page-break": "43.0.0", + "@ckeditor/ckeditor5-paragraph": "43.0.0", + "@ckeditor/ckeditor5-paste-from-office": "43.0.0", + "@ckeditor/ckeditor5-remove-format": "43.0.0", + "@ckeditor/ckeditor5-table": "43.0.0", + "@ckeditor/ckeditor5-theme-lark": "43.0.0", + "@ckeditor/ckeditor5-typing": "43.0.0", + "@ckeditor/ckeditor5-ui": "43.0.0", + "@ckeditor/ckeditor5-undo": "43.0.0", + "@ckeditor/ckeditor5-upload": "43.0.0", + "@ckeditor/ckeditor5-watchdog": "43.0.0", + "@ckeditor/ckeditor5-widget": "43.0.0", + "babel-jest": "^29.7.0", + "css-loader": "^7.1.2", + "eslint": "^9.16.0", + "@eslint/js": "^9.16.0", + "eslint-plugin-jest": "^28.9.0", + "globals": "^15.9.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "lz-string": "^1.5.0", + "markdown-it": "^14.1.0", + "markdown-it-task-lists": "^2.1.1", + "postcss-loader": "^8.1.1", + "raw-loader": "^4.0.2", + "style-loader": "^4.0.0", + "terser-webpack-plugin": "^5.3.10", + "turndown": "^7.2.0", + "turndown-plugin-gfm": "^1.0.2", + "underscore": "^1.13.7", + "webpack": "^5.93.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-cli": "^5.1.4", + "webpack-sources": "3.2.3" }, "engines": { "node": ">=6.9.0",