This run took 169 seconds.
From 5024bc6ffd6077f31d11215822bedb128bb1597c Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sun, 16 Nov 2025 06:03:27 +0000
Subject: [PATCH] build: Updating eslint-config-wikimedia to 0.32.1
The following rules are failing and were disabled:
* mediawiki/no-unlabeled-buttonwidget
* es-x/no-class-static-fields
* es-x/no-class-instance-fields
* no-console
* no-shadow
Change-Id: Ibb812708dbab398bc0edc1890eac79fab0a7fac0
---
.eslintrc.json | 7 +-
package-lock.json | 1034 ++++++++++------------
package.json | 2 +-
resources/js/cpd/CpdModeler.ts | 16 +-
resources/js/cpd/CpdTool.ts | 6 +-
resources/js/cpd/helper/CpdDom.ts | 22 +-
resources/js/cpd/oojs-ui/ExportButton.ts | 4 +-
resources/js/cpd/oojs-ui/GroupTool.ts | 8 +-
resources/js/cpd/oojs-ui/ImportButton.ts | 4 +-
9 files changed, 511 insertions(+), 592 deletions(-)
diff --git a/.eslintrc.json b/.eslintrc.json
index b03403a..7db3674 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -64,6 +64,11 @@
"es-x/no-nullish-coalescing-operators": "warn",
"compat/compat": "warn",
"@typescript-eslint/no-empty-function": "warn",
- "mediawiki/msg-doc": "warn"
+ "mediawiki/msg-doc": "warn",
+ "es-x/no-class-static-fields": "warn",
+ "es-x/no-class-instance-fields": "warn",
+ "no-console": "warn",
+ "no-shadow": "warn",
+ "mediawiki/no-unlabeled-buttonwidget": "warn"
}
}
diff --git a/package-lock.json b/package-lock.json
index 267e934..dde451b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -40,7 +40,7 @@
"babel-jest": "^29.7.0",
"babel-loader": "^9.2.1",
"bpmnlint-pack-config": "^0.8.0",
- "eslint-config-wikimedia": "0.31.0",
+ "eslint-config-wikimedia": "0.32.1",
"grunt": "1.6.1",
"grunt-banana-checker": "0.13.0",
"grunt-eslint": "24.3.0",
@@ -1992,43 +1992,26 @@
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.43.1",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz",
- "integrity": "sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==",
+ "version": "0.75.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.75.0.tgz",
+ "integrity": "sha512-Bj+oF8reFb4b+6LUmG6ETpDsBU/28y/bAAzioyIR4VK/V6UodYBNGbtxRyGxk0aJJQqpZZ6jz82vVZWCX6Mwmg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@types/eslint": "^8.56.5",
- "@types/estree": "^1.0.5",
- "@typescript-eslint/types": "^7.2.0",
+ "@types/estree": "^1.0.8",
+ "@typescript-eslint/types": "^8.46.0",
"comment-parser": "1.4.1",
- "esquery": "^1.5.0",
- "jsdoc-type-pratt-parser": "~4.0.0"
+ "esquery": "^1.6.0",
+ "jsdoc-type-pratt-parser": "~6.9.1"
},
"engines": {
- "node": ">=16"
+ "node": ">=20.11.0"
}
},
"node_modules/@es-joy/jsdoccomment/node_modules/@types/estree": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
- "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@es-joy/jsdoccomment/node_modules/@typescript-eslint/types": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
- "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.7.0",
@@ -2127,11 +2110,10 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -2878,8 +2860,7 @@
"version": "5.7.6",
"resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.7.6.tgz",
"integrity": "sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==",
- "dev": true,
- "license": "CC0-1.0"
+ "dev": true
},
"node_modules/@nicolo-ribaudo/chokidar-2": {
"version": "2.1.8-no-fsevents.3",
@@ -3491,8 +3472,7 @@
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
"integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/@types/oojs": {
"version": "7.0.7",
@@ -3655,16 +3635,16 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz",
- "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.0.tgz",
+ "integrity": "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/type-utils": "8.35.1",
- "@typescript-eslint/utils": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/type-utils": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -3678,21 +3658,21 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.35.1",
+ "@typescript-eslint/parser": "^8.46.0",
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz",
- "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.0.tgz",
+ "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/typescript-estree": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3704,17 +3684,17 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
- "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.0.tgz",
+ "integrity": "sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.35.1",
- "@typescript-eslint/types": "^8.35.1",
+ "@typescript-eslint/tsconfig-utils": "^8.46.0",
+ "@typescript-eslint/types": "^8.46.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3725,17 +3705,17 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
- "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.0.tgz",
+ "integrity": "sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1"
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3746,9 +3726,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
- "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.0.tgz",
+ "integrity": "sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3758,17 +3738,18 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz",
- "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.0.tgz",
+ "integrity": "sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.35.1",
- "@typescript-eslint/utils": "8.35.1",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -3781,13 +3762,13 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
- "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.0.tgz",
+ "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3798,15 +3779,15 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
- "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.0.tgz",
+ "integrity": "sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/project-service": "8.46.0",
+ "@typescript-eslint/tsconfig-utils": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -3822,13 +3803,13 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
@@ -3838,15 +3819,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz",
- "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.0.tgz",
+ "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/typescript-estree": "8.35.1"
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3857,16 +3838,16 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
- "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.0.tgz",
+ "integrity": "sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/types": "8.46.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -4471,7 +4452,6 @@
"resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
"integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=14"
}
@@ -4556,7 +4536,6 @@
"resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.1.tgz",
"integrity": "sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@mdn/browser-compat-data": "^5.6.19"
}
@@ -4889,8 +4868,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true,
- "license": "ISC"
+ "dev": true
},
"node_modules/bpmn-js": {
"version": "18.6.2",
@@ -5333,9 +5311,9 @@
}
},
"node_modules/ci-info": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
- "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
"dev": true,
"funding": [
{
@@ -5343,7 +5321,6 @@
"url": "https://github.com/sponsors/sibiraj-s"
}
],
- "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5360,7 +5337,6 @@
"resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
"integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
@@ -5373,7 +5349,6 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
@@ -5526,7 +5501,6 @@
"resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
"integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 12.0.0"
}
@@ -5719,11 +5693,10 @@
"license": "Python-2.0"
},
"node_modules/cosmiconfig/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -5895,11 +5868,10 @@
}
},
"node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
@@ -6356,22 +6328,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/electron-to-chromium": {
"version": "1.5.157",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.157.tgz",
@@ -6644,11 +6600,10 @@
}
},
"node_modules/eslint-compat-utils": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
- "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz",
+ "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^7.5.4"
},
@@ -6660,11 +6615,10 @@
}
},
"node_modules/eslint-compat-utils/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6673,56 +6627,56 @@
}
},
"node_modules/eslint-config-wikimedia": {
- "version": "0.31.0",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.31.0.tgz",
- "integrity": "sha512-Z/t/zGPdxs/ehxb0EM6THNWAzueT7GtuqzjUvmBpkxcTKzZPJEXWnnpswdj/hgv8Ce8PIeDp0zwQxR4e3c9CIw==",
+ "version": "0.32.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.32.1.tgz",
+ "integrity": "sha512-gPvhyVFNlpKFOcJfoVTNlzg3A0b6qjhAbjjBIJ9xp5m+om0oqix5gkqIIEav5BaGxdDxYNmrY4ge3DAPP3u/lg==",
"dev": true,
"dependencies": {
"@stylistic/eslint-plugin": "^3.1.0",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.46.0",
+ "@typescript-eslint/parser": "8.46.0",
"browserslist-config-wikimedia": "^0.7.0",
"eslint": "^8.57.0",
- "eslint-plugin-compat": "^4.2.0",
- "eslint-plugin-es-x": "^7.6.0",
- "eslint-plugin-jest": "^28.5.0",
- "eslint-plugin-jsdoc": "48.2.5",
+ "eslint-plugin-compat": "^6.0.2",
+ "eslint-plugin-es-x": "^8.7.0",
+ "eslint-plugin-jest": "^29.0.1",
+ "eslint-plugin-jsdoc": "61.0.0",
"eslint-plugin-json-es": "^1.6.0",
- "eslint-plugin-mediawiki": "^0.7.0",
- "eslint-plugin-mocha": "^10.4.3",
- "eslint-plugin-n": "^17.7.0",
+ "eslint-plugin-mediawiki": "^0.8.1",
+ "eslint-plugin-mocha": "^10.5.0",
+ "eslint-plugin-n": "^17.23.1",
"eslint-plugin-no-jquery": "^3.1.1",
- "eslint-plugin-qunit": "^8.1.1",
- "eslint-plugin-security": "^1.7.1",
- "eslint-plugin-unicorn": "^53.0.0",
- "eslint-plugin-vue": "^9.26.0",
- "eslint-plugin-wdio": "^8.24.12",
- "eslint-plugin-yml": "^1.14.0"
+ "eslint-plugin-qunit": "^8.2.5",
+ "eslint-plugin-security": "^3.0.1",
+ "eslint-plugin-unicorn": "^56.0.1",
+ "eslint-plugin-vue": "^9.33.0",
+ "eslint-plugin-wdio": "^9.16.2",
+ "eslint-plugin-yml": "^1.19.0"
},
"engines": {
- "node": ">=18 <25"
+ "node": ">=20 <25"
}
},
"node_modules/eslint-plugin-compat": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz",
- "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-6.0.2.tgz",
+ "integrity": "sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@mdn/browser-compat-data": "^5.3.13",
- "ast-metadata-inferer": "^0.8.0",
- "browserslist": "^4.21.10",
- "caniuse-lite": "^1.0.30001524",
+ "@mdn/browser-compat-data": "^5.5.35",
+ "ast-metadata-inferer": "^0.8.1",
+ "browserslist": "^4.24.2",
+ "caniuse-lite": "^1.0.30001687",
"find-up": "^5.0.0",
+ "globals": "^15.7.0",
"lodash.memoize": "^4.1.2",
- "semver": "^7.5.4"
+ "semver": "^7.6.2"
},
"engines": {
- "node": ">=14.x"
+ "node": ">=18.x"
},
"peerDependencies": {
- "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-compat/node_modules/find-up": {
@@ -6730,7 +6684,6 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -6742,12 +6695,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/eslint-plugin-compat/node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint-plugin-compat/node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -6763,7 +6727,6 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -6775,11 +6738,10 @@
}
},
"node_modules/eslint-plugin-compat/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6788,19 +6750,18 @@
}
},
"node_modules/eslint-plugin-es-x": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
- "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-8.7.0.tgz",
+ "integrity": "sha512-Du5Sb067sjqzmglaPhsfcEQgE1EYfL8sko+4jOMcAB/XKGoCxntSrOmTYuVzswA1rzM9+MZwH6+GOp0G3/wVCg==",
"dev": true,
"funding": [
"https://github.com/sponsors/ota-meshi",
"https://opencollective.com/eslint"
],
- "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.1.2",
- "@eslint-community/regexpp": "^4.11.0",
- "eslint-compat-utils": "^0.5.1"
+ "@eslint-community/regexpp": "^4.12.1",
+ "eslint-compat-utils": "^0.6.3"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -6810,20 +6771,19 @@
}
},
"node_modules/eslint-plugin-jest": {
- "version": "28.11.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz",
- "integrity": "sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==",
+ "version": "29.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
+ "integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/utils": "^8.0.0"
},
"engines": {
- "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ "node": "^20.12.0 || ^22.0.0 || >=24.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",
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
+ "eslint": "^8.57.0 || ^9.0.0",
"jest": "*"
},
"peerDependenciesMeta": {
@@ -6836,35 +6796,65 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "48.2.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz",
- "integrity": "sha512-ZeTfKV474W1N9niWfawpwsXGu+ZoMXu4417eBROX31d7ZuOk8zyG66SO77DpJ2+A9Wa2scw/jRqBPnnQo7VbcQ==",
+ "version": "61.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.0.0.tgz",
+ "integrity": "sha512-YxvOY3A9H8usnOfOEH82y71yHR7zVNWZJpQbjkC+rWqrADQtM+Gza3+db/j9euNNWCNKnN+/gBrowg16n9lwgg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
- "@es-joy/jsdoccomment": "~0.43.0",
+ "@es-joy/jsdoccomment": "~0.75.0",
"are-docs-informative": "^0.0.2",
"comment-parser": "1.4.1",
- "debug": "^4.3.4",
+ "debug": "^4.4.3",
"escape-string-regexp": "^4.0.0",
- "esquery": "^1.5.0",
- "is-builtin-module": "^3.2.1",
- "semver": "^7.6.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.6.0",
+ "html-entities": "^2.6.0",
+ "object-deep-merge": "^1.0.5",
+ "parse-imports-exports": "^0.2.4",
+ "semver": "^7.7.3",
"spdx-expression-parse": "^4.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20.11.0"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
+ "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jsdoc/node_modules/espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6887,13 +6877,11 @@
}
},
"node_modules/eslint-plugin-mediawiki": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.7.0.tgz",
- "integrity": "sha512-1Y2nsFDPp96xOZCB5ivZAgqYe9i6w2u64VoCIaAzPyZnd/2h8VQR3CtD+u4Yk/KrpbKq9AAJjrs5LS8VAz6KOA==",
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.8.1.tgz",
+ "integrity": "sha512-zjTg3hh375lkztKhOYEmPeYiIhKooAu92BkZf2F/fr+5Htvb2i8MNB3gImhM98aTBbkyHTjXoyTHNUrjSjPhmw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "eslint-plugin-vue": "^9.23.0",
"upath": "^2.0.1"
},
"peerDependencies": {
@@ -6948,20 +6936,20 @@
}
},
"node_modules/eslint-plugin-n": {
- "version": "17.18.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz",
- "integrity": "sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==",
+ "version": "17.23.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz",
+ "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.5.0",
"enhanced-resolve": "^5.17.1",
"eslint-plugin-es-x": "^7.8.0",
"get-tsconfig": "^4.8.1",
"globals": "^15.11.0",
+ "globrex": "^0.1.2",
"ignore": "^5.3.2",
- "minimatch": "^9.0.5",
- "semver": "^7.6.3"
+ "semver": "^7.6.3",
+ "ts-declaration-location": "^1.0.6"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6973,12 +6961,47 @@
"eslint": ">=8.23.0"
}
},
+ "node_modules/eslint-plugin-n/node_modules/eslint-compat-utils": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
+ "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es-x": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+ "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/ota-meshi",
+ "https://opencollective.com/eslint"
+ ],
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.11.0",
+ "eslint-compat-utils": "^0.5.1"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=8"
+ }
+ },
"node_modules/eslint-plugin-n/node_modules/globals": {
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -6991,17 +7014,15 @@
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/eslint-plugin-n/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7020,11 +7041,10 @@
}
},
"node_modules/eslint-plugin-qunit": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.2.tgz",
- "integrity": "sha512-2gDQdHlQW8GVXD7YYkO8vbm9Ldc60JeGMuQN5QlD48OeZ8znBvvoHWZZMeXjvoDPReGaLEvyuWrDtrI8bDbcqw==",
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.2.5.tgz",
+ "integrity": "sha512-qr7RJCYImKQjB+39q4q46i1l7p1V3joHzBE5CAYfxn5tfVFjrnjn/tw7q/kDyweU9kAIcLul0Dx/KWVUCb3BgA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-utils": "^3.0.0",
"requireindex": "^1.2.0"
@@ -7034,29 +7054,33 @@
}
},
"node_modules/eslint-plugin-security": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz",
- "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz",
+ "integrity": "sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"safe-regex": "^2.1.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "53.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-53.0.0.tgz",
- "integrity": "sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==",
+ "version": "56.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz",
+ "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.7",
"@eslint-community/eslint-utils": "^4.4.0",
- "@eslint/eslintrc": "^3.0.2",
"ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "core-js-compat": "^3.37.0",
- "esquery": "^1.5.0",
+ "core-js-compat": "^3.38.1",
+ "esquery": "^1.6.0",
+ "globals": "^15.9.0",
"indent-string": "^4.0.0",
"is-builtin-module": "^3.2.1",
"jsesc": "^3.0.2",
@@ -7064,138 +7088,29 @@
"read-pkg-up": "^7.0.1",
"regexp-tree": "^0.1.27",
"regjsparser": "^0.10.0",
- "semver": "^7.6.1",
+ "semver": "^7.6.3",
"strip-indent": "^3.0.0"
},
"engines": {
"node": ">=18.18"
},
"funding": {
- "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
- },
- "peerDependencies": {
- "eslint": ">=8.56.0"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
- "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/eslint-plugin-unicorn/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": {
- "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"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/espree": {
- "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.14.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
+ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "peerDependencies": {
+ "eslint": ">=8.56.0"
}
},
- "node_modules/eslint-plugin-unicorn/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/eslint-plugin-unicorn/node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
"engines": {
- "node": "*"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint-plugin-unicorn/node_modules/pluralize": {
@@ -7203,17 +7118,15 @@
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
"integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/eslint-plugin-unicorn/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7226,7 +7139,6 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz",
"integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"globals": "^13.24.0",
@@ -7249,7 +7161,6 @@
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -7261,11 +7172,10 @@
}
},
"node_modules/eslint-plugin-vue/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7278,7 +7188,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -7287,23 +7196,22 @@
}
},
"node_modules/eslint-plugin-wdio": {
- "version": "8.37.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.37.0.tgz",
- "integrity": "sha512-X217zXxSqj1IPWu3bxN7D/xEUmNk7Jg5lBf2JwYH3mCogaqL2tnHZnwt0EQ5D9oEejfEl2+4zqHSzhXq1X7F2A==",
+ "version": "9.16.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-9.16.2.tgz",
+ "integrity": "sha512-qkqsPgxN70OnUPWMjmzJbSbvm2+Q087JIGss53/OFI4Y46xKlV5VLhLiYealaAibAiXmnfWKd0tERjZAzVL87A==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": "^16.13 || >=18"
+ "node": ">=18.20.0"
}
},
"node_modules/eslint-plugin-yml": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.18.0.tgz",
- "integrity": "sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==",
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.19.0.tgz",
+ "integrity": "sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.3.2",
+ "diff-sequences": "^27.5.1",
"escape-string-regexp": "4.0.0",
"eslint-compat-utils": "^0.6.0",
"natural-compare": "^1.4.0",
@@ -7319,33 +7227,13 @@
"eslint": ">=6.0.0"
}
},
- "node_modules/eslint-plugin-yml/node_modules/eslint-compat-utils": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz",
- "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/eslint-plugin-yml/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "node_modules/eslint-plugin-yml/node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
"engines": {
- "node": ">=10"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/eslint-scope": {
@@ -7498,11 +7386,10 @@
}
},
"node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -7939,29 +7826,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -8319,11 +8183,10 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
- "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz",
+ "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
},
@@ -8849,6 +8712,27 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8963,8 +8847,7 @@
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true,
- "license": "ISC"
+ "dev": true
},
"node_modules/hpack.js": {
"version": "2.1.6",
@@ -9038,6 +8921,22 @@
"node": ">=12"
}
},
+ "node_modules/html-entities": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
+ "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/mdevils"
+ },
+ {
+ "type": "patreon",
+ "url": "https://patreon.com/mdevils"
+ }
+ ]
+ },
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -9803,65 +9702,6 @@
"node": ">=8"
}
},
- "node_modules/jake": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jake/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jake/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/jest": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
@@ -10940,11 +10780,10 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -10954,13 +10793,12 @@
}
},
"node_modules/jsdoc-type-pratt-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-6.9.1.tgz",
+ "integrity": "sha512-HbYNAorY51GnpKvgDf4YINSY+V1segv0qEeijvTSI6OWMCmqah0W6mVwBFeWskJ81uTJJVnDQlwhpJMREvGsXg==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=12.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/jsdom": {
@@ -11539,7 +11377,6 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -11550,6 +11387,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/mkdirp": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
@@ -11842,7 +11688,6 @@
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -11855,7 +11700,6 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -11888,7 +11732,6 @@
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0"
},
@@ -11903,6 +11746,27 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/object-deep-merge": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-1.0.5.tgz",
+ "integrity": "sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "4.2.0"
+ }
+ },
+ "node_modules/object-deep-merge/node_modules/type-fest": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.2.0.tgz",
+ "integrity": "sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
@@ -12226,6 +12090,15 @@
"node": ">=0.8"
}
},
+ "node_modules/parse-imports-exports": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz",
+ "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==",
+ "dev": true,
+ "dependencies": {
+ "parse-statements": "1.0.11"
+ }
+ },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -12255,6 +12128,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/parse-statements": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz",
+ "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==",
+ "dev": true
+ },
"node_modules/parse5": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
@@ -12943,7 +12822,6 @@
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
"integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/normalize-package-data": "^2.4.0",
"normalize-package-data": "^2.5.0",
@@ -12959,7 +12837,6 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
"integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"find-up": "^4.1.0",
"read-pkg": "^5.2.0",
@@ -12977,7 +12854,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -12987,7 +12863,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
"integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -13069,7 +12944,6 @@
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
"integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true,
- "license": "MIT",
"bin": {
"regexp-tree": "bin/regexp-tree"
}
@@ -13130,7 +13004,6 @@
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
"integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~0.5.0"
},
@@ -13172,7 +13045,6 @@
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
"integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.5"
}
@@ -13247,7 +13119,6 @@
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
- "license": "MIT",
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
@@ -13416,7 +13287,6 @@
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
"integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"regexp-tree": "~0.1.1"
}
@@ -13972,7 +13842,6 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -13983,7 +13852,6 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -13993,26 +13861,23 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true,
- "license": "CC-BY-3.0"
+ "dev": true
},
"node_modules/spdx-expression-parse": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
"integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.21",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
- "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
- "dev": true,
- "license": "CC0-1.0"
+ "version": "3.0.22",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
+ "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
+ "dev": true
},
"node_modules/spdy": {
"version": "4.0.2",
@@ -15076,21 +14941,53 @@
"typescript": ">=4.8.4"
}
},
+ "node_modules/ts-declaration-location": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+ "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "ko-fi",
+ "url": "https://ko-fi.com/rebeccastevens"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+ }
+ ],
+ "dependencies": {
+ "picomatch": "^4.0.2"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.0.0"
+ }
+ },
+ "node_modules/ts-declaration-location/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/ts-jest": {
- "version": "29.3.4",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.4.tgz",
- "integrity": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==",
+ "version": "29.4.5",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz",
+ "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bs-logger": "^0.2.6",
- "ejs": "^3.1.10",
"fast-json-stable-stringify": "^2.1.0",
- "jest-util": "^29.0.0",
+ "handlebars": "^4.7.8",
"json5": "^2.2.3",
"lodash.memoize": "^4.1.2",
"make-error": "^1.3.6",
- "semver": "^7.7.2",
+ "semver": "^7.7.3",
"type-fest": "^4.41.0",
"yargs-parser": "^21.1.1"
},
@@ -15102,10 +14999,11 @@
},
"peerDependencies": {
"@babel/core": ">=7.0.0-beta.0 <8",
- "@jest/transform": "^29.0.0",
- "@jest/types": "^29.0.0",
- "babel-jest": "^29.0.0",
- "jest": "^29.0.0",
+ "@jest/transform": "^29.0.0 || ^30.0.0",
+ "@jest/types": "^29.0.0 || ^30.0.0",
+ "babel-jest": "^29.0.0 || ^30.0.0",
+ "jest": "^29.0.0 || ^30.0.0",
+ "jest-util": "^29.0.0 || ^30.0.0",
"typescript": ">=4.3 <6"
},
"peerDependenciesMeta": {
@@ -15123,15 +15021,17 @@
},
"esbuild": {
"optional": true
+ },
+ "jest-util": {
+ "optional": true
}
}
},
"node_modules/ts-jest/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -15314,6 +15214,19 @@
"node": ">=14.17"
}
},
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -15421,7 +15334,6 @@
"resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
"integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4",
"yarn": "*"
@@ -15539,7 +15451,6 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -15550,7 +15461,6 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -15571,7 +15481,6 @@
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz",
"integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.3.4",
"eslint-scope": "^7.1.1",
@@ -15592,11 +15501,10 @@
}
},
"node_modules/vue-eslint-parser/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -16024,6 +15932,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -16120,11 +16034,10 @@
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
- "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
"dev": true,
- "license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
@@ -16137,7 +16050,6 @@
"resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.0.tgz",
"integrity": "sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^3.0.0",
"yaml": "^2.0.0"
diff --git a/package.json b/package.json
index 5bdea29..d792fdc 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"babel-jest": "^29.7.0",
"babel-loader": "^9.2.1",
"bpmnlint-pack-config": "^0.8.0",
- "eslint-config-wikimedia": "0.31.0",
+ "eslint-config-wikimedia": "0.32.1",
"grunt": "1.6.1",
"grunt-banana-checker": "0.13.0",
"grunt-eslint": "24.3.0",
diff --git a/resources/js/cpd/CpdModeler.ts b/resources/js/cpd/CpdModeler.ts
index 2c45eb4..03f4169 100644
--- a/resources/js/cpd/CpdModeler.ts
+++ b/resources/js/cpd/CpdModeler.ts
@@ -25,7 +25,7 @@ class CpdModeler extends CpdTool {
const baseAdditionalModules = [
BpmnColorPickerModule,
- { translate: [ 'value', translator.translate.bind(translator) ] },
+ { translate: [ 'value', translator.translate.bind( translator ) ] },
{
__init__: [ "paletteProvider", "replaceMenuProvider" ],
paletteProvider: [ "type", CustomPaletteProvider ],
@@ -38,9 +38,9 @@ class CpdModeler extends CpdTool {
...baseAdditionalModules,
...( enableLinting ? [ lintModule ] : [] ),
],
- ...( enableLinting
- ? { linting: { bpmnlint: bpmnlintConfig } }
- : {} ),
+ ...( enableLinting ?
+ { linting: { bpmnlint: bpmnlintConfig } } :
+ {} ),
};
const bpmnModeler = new BpmnModeler( modelerOptions );
@@ -194,16 +194,16 @@ class CpdModeler extends CpdTool {
private onImportFile( file: File ): void {
const reader = new FileReader();
- reader.onload = async ( e) => {
+ reader.onload = async ( e ) => {
const xml = e.target.result as string;
try {
await this.bpmnTool.importXML( xml );
this.centerViewport();
- } catch (err) {
- console.error('Failed to import BPMN:', err);
+ } catch ( err ) {
+ console.error( 'Failed to import BPMN:', err );
}
};
- reader.readAsText(file);
+ reader.readAsText( file );
}
}
diff --git a/resources/js/cpd/CpdTool.ts b/resources/js/cpd/CpdTool.ts
index a373fc0..a7ab0c4 100644
--- a/resources/js/cpd/CpdTool.ts
+++ b/resources/js/cpd/CpdTool.ts
@@ -91,8 +91,8 @@ export abstract class CpdTool {
}
private onExportDiagram(): void {
- this.bpmnTool.saveXML({ format: true }).then(({ xml }) => {
- const blob = new Blob([xml], { type: 'application/bpmn20-xml' });
+ this.bpmnTool.saveXML( { format: true } ).then( ( { xml } ) => {
+ const blob = new Blob( [ xml ], { type: 'application/bpmn20-xml' } );
const filename = this.diagramPage.getPrefixedText() + '.bpmn';
const url = URL.createObjectURL( blob );
const a = document.createElement( 'a' );
@@ -100,6 +100,6 @@ export abstract class CpdTool {
a.download = filename;
a.click();
URL.revokeObjectURL( url );
- });
+ } );
}
}
diff --git a/resources/js/cpd/helper/CpdDom.ts b/resources/js/cpd/helper/CpdDom.ts
index cf8c0fe..31e1d95 100644
--- a/resources/js/cpd/helper/CpdDom.ts
+++ b/resources/js/cpd/helper/CpdDom.ts
@@ -324,14 +324,16 @@ export default class CpdDom extends EventEmitter {
fileInput.accept = ".bpmn";
fileInput.style.display = "none";
- fileInput.addEventListener('change', (event) => {
+ fileInput.addEventListener( 'change', ( event ) => {
const input = event.target as HTMLInputElement;
- const file: File | undefined = input.files?.[0];
+ const file: File | undefined = input.files?.[ 0 ];
- if (!file) return;
+ if ( !file ) {
+ return;
+ }
this.emit( "importFile", file );
- });
+ } );
return fileInput;
}
@@ -345,9 +347,9 @@ export default class CpdDom extends EventEmitter {
name: "primary",
type: "bar",
include: [
- OpenDialogButton.static.name
+ OpenDialogButton.static.name,
],
- align: "after"
+ align: "after",
};
const secondaryBarConfig = {
@@ -362,7 +364,7 @@ export default class CpdDom extends EventEmitter {
CenterViewportButton.static.name,
ShowXmlButton.static.name,
ShowDiagramButton.static.name,
- ]
+ ],
};
toolFactory.register( CenterViewportButton );
@@ -398,12 +400,12 @@ export default class CpdDom extends EventEmitter {
secondaryBarConfig.include.push( GroupTool.static.name );
}
- toolbar.setup( [primaryBarConfig as ToolGroupSetupMap, secondaryBarConfig as ToolGroupSetupMap] );
+ toolbar.setup( [ primaryBarConfig as ToolGroupSetupMap, secondaryBarConfig as ToolGroupSetupMap ] );
[
...toolbar.getToolGroupByName( "primary" ).getItems(),
- ...toolbar.getToolGroupByName( "secondary" ).getItems()
- ].forEach( ( item: OO.ui.Tool ): void => {
+ ...toolbar.getToolGroupByName( "secondary" ).getItems(),
+ ].forEach( ( item: OO.ui.Tool ): void => {
if ( item.constructor === OpenDialogButton ) {
this.openDialogBtn = item;
this.openDialogBtn.onSelect = this.onOpenDialog.bind( this );
diff --git a/resources/js/cpd/oojs-ui/ExportButton.ts b/resources/js/cpd/oojs-ui/ExportButton.ts
index 306ea17..eb40638 100644
--- a/resources/js/cpd/oojs-ui/ExportButton.ts
+++ b/resources/js/cpd/oojs-ui/ExportButton.ts
@@ -7,8 +7,8 @@ export default class ExportButton extends Button {
label: mw.msg( "cpd-button-export" ),
title: mw.msg( "cpd-button-export" ),
icon: "download",
- displayBothIconAndLabel: false
- }
+ displayBothIconAndLabel: false,
+ },
};
setActive() {
diff --git a/resources/js/cpd/oojs-ui/GroupTool.ts b/resources/js/cpd/oojs-ui/GroupTool.ts
index 15a97ff..e1155d9 100644
--- a/resources/js/cpd/oojs-ui/GroupTool.ts
+++ b/resources/js/cpd/oojs-ui/GroupTool.ts
@@ -9,9 +9,9 @@ export default class GroupTool extends OO.ui.ToolGroupTool {
icon: 'folderPlaceholder',
include: [
ExportButton.static.name,
- ImportButton.static.name
- ]
- }
- }
+ ImportButton.static.name,
+ ],
+ },
+ },
};
}
diff --git a/resources/js/cpd/oojs-ui/ImportButton.ts b/resources/js/cpd/oojs-ui/ImportButton.ts
index 26708b0..98fede5 100644
--- a/resources/js/cpd/oojs-ui/ImportButton.ts
+++ b/resources/js/cpd/oojs-ui/ImportButton.ts
@@ -7,8 +7,8 @@ export default class ImportButton extends Button {
label: mw.msg( "cpd-button-import" ),
title: mw.msg( "cpd-button-import" ),
icon: "upload",
- displayBothIconAndLabel: false
- }
+ displayBothIconAndLabel: false,
+ },
};
setActive() {
--
2.47.3
$ date
--- stdout ---
Sun Nov 16 06:00:56 UTC 2025
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-CognitiveProcessDesigner.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
--- stdout ---
--- end ---
$ git config user.name libraryupgrader
--- stdout ---
--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---
--- end ---
$ git submodule update --init
--- stdout ---
--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.
--- end ---
$ git show-ref refs/heads/master
--- stdout ---
e7f90f82c0ebeb84ae3e06572301b71eaa842e86 refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"@istanbuljs/load-nyc-config": {
"name": "@istanbuljs/load-nyc-config",
"severity": "moderate",
"isDirect": false,
"via": [
"js-yaml"
],
"effects": [
"babel-plugin-istanbul"
],
"range": "*",
"nodes": [
"node_modules/@istanbuljs/load-nyc-config"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/core": {
"name": "@jest/core",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/reporters",
"@jest/transform",
"jest-config",
"jest-resolve-dependencies",
"jest-runner",
"jest-runtime",
"jest-snapshot"
],
"effects": [
"jest",
"jest-cli"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/core"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/expect": {
"name": "@jest/expect",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-snapshot"
],
"effects": [
"@jest/globals",
"jest-circus"
],
"range": "*",
"nodes": [
"node_modules/@jest/expect"
],
"fixAvailable": true
},
"@jest/globals": {
"name": "@jest/globals",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/expect"
],
"effects": [
"jest-runtime"
],
"range": ">=28.0.0-alpha.0",
"nodes": [
"node_modules/@jest/globals"
],
"fixAvailable": true
},
"@jest/reporters": {
"name": "@jest/reporters",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform"
],
"effects": [],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/reporters"
],
"fixAvailable": true
},
"@jest/transform": {
"name": "@jest/transform",
"severity": "moderate",
"isDirect": false,
"via": [
"babel-plugin-istanbul"
],
"effects": [
"@jest/core",
"@jest/reporters",
"jest-runner",
"jest-runtime",
"jest-snapshot",
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/transform"
],
"fixAvailable": {
"name": "ts-jest",
"version": "29.1.2",
"isSemVerMajor": true
}
},
"babel-jest": {
"name": "babel-jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/transform",
"babel-plugin-istanbul"
],
"effects": [
"jest-config",
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/babel-jest"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"babel-plugin-istanbul": {
"name": "babel-plugin-istanbul",
"severity": "moderate",
"isDirect": false,
"via": [
"@istanbuljs/load-nyc-config"
],
"effects": [
"@jest/transform",
"babel-jest"
],
"range": ">=6.0.0-beta.0",
"nodes": [
"node_modules/babel-plugin-istanbul"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"create-jest": {
"name": "create-jest",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-config"
],
"effects": [
"jest-cli"
],
"range": ">=29.7.0",
"nodes": [
"node_modules/create-jest"
],
"fixAvailable": true
},
"grunt": {
"name": "grunt",
"severity": "moderate",
"isDirect": true,
"via": [
"js-yaml"
],
"effects": [
"grunt-eslint"
],
"range": ">=0.4.0-a",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"grunt-eslint": {
"name": "grunt-eslint",
"severity": "moderate",
"isDirect": true,
"via": [
"grunt"
],
"effects": [],
"range": "<=1.0.0 || >=18.1.0",
"nodes": [
"node_modules/grunt-eslint"
],
"fixAvailable": {
"name": "grunt-eslint",
"version": "18.0.0",
"isSemVerMajor": true
}
},
"jest": {
"name": "jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/core",
"jest-cli"
],
"effects": [
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"jest-circus": {
"name": "jest-circus",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/expect",
"jest-runtime",
"jest-snapshot"
],
"effects": [
"jest-config"
],
"range": ">=25.2.4",
"nodes": [
"node_modules/jest-circus"
],
"fixAvailable": true
},
"jest-cli": {
"name": "jest-cli",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/core",
"create-jest",
"jest-config"
],
"effects": [],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-cli"
],
"fixAvailable": true
},
"jest-config": {
"name": "jest-config",
"severity": "moderate",
"isDirect": false,
"via": [
"babel-jest",
"jest-circus",
"jest-runner"
],
"effects": [
"create-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-config"
],
"fixAvailable": true
},
"jest-resolve-dependencies": {
"name": "jest-resolve-dependencies",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-snapshot"
],
"effects": [],
"range": ">=27.0.0-next.0",
"nodes": [
"node_modules/jest-resolve-dependencies"
],
"fixAvailable": true
},
"jest-runner": {
"name": "jest-runner",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform",
"jest-runtime"
],
"effects": [
"jest-config"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-runner"
],
"fixAvailable": true
},
"jest-runtime": {
"name": "jest-runtime",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/globals",
"@jest/transform",
"jest-snapshot"
],
"effects": [
"jest-circus",
"jest-runner"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-runtime"
],
"fixAvailable": true
},
"jest-snapshot": {
"name": "jest-snapshot",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform"
],
"effects": [
"@jest/core",
"@jest/expect",
"jest-circus",
"jest-resolve-dependencies",
"jest-runtime"
],
"range": ">=27.0.0-next.0",
"nodes": [
"node_modules/jest-snapshot"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"js-yaml": {
"name": "js-yaml",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1109754,
"name": "js-yaml",
"dependency": "js-yaml",
"title": "js-yaml has prototype pollution in merge (<<)",
"url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
"severity": "moderate",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<4.1.1"
}
],
"effects": [
"@istanbuljs/load-nyc-config",
"grunt"
],
"range": "<4.1.1",
"nodes": [
"node_modules/@eslint/eslintrc/node_modules/js-yaml",
"node_modules/cosmiconfig/node_modules/js-yaml",
"node_modules/eslint-plugin-unicorn/node_modules/js-yaml",
"node_modules/eslint/node_modules/js-yaml",
"node_modules/js-yaml"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"ts-jest": {
"name": "ts-jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/transform",
"babel-jest",
"jest"
],
"effects": [],
"range": ">=25.10.0-alpha.1",
"nodes": [
"node_modules/ts-jest"
],
"fixAvailable": {
"name": "ts-jest",
"version": "29.1.2",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 21,
"high": 0,
"critical": 0,
"total": 21
},
"dependencies": {
"prod": 40,
"dev": 1162,
"optional": 2,
"peer": 0,
"peerOptional": 0,
"total": 1201
}
}
}
--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 43 installs, 0 updates, 0 removals
- Locking composer/installers (v2.3.0)
- Locking composer/pcre (3.3.2)
- Locking composer/semver (3.4.4)
- Locking composer/spdx-licenses (1.5.9)
- Locking composer/xdebug-handler (3.0.5)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
- Locking doctrine/deprecations (1.1.5)
- Locking felixfbecker/advanced-json-rpc (v3.2.1)
- Locking mediawiki/mediawiki-codesniffer (v48.0.0)
- Locking mediawiki/mediawiki-phan-config (0.17.0)
- Locking mediawiki/minus-x (1.1.3)
- Locking mediawiki/phan-taint-check-plugin (7.0.0)
- Locking microsoft/tolerant-php-parser (v0.1.2)
- Locking mwstake/mediawiki-component-processmanager (3.1.3)
- Locking mwstake/mediawiki-componentloader (1.0.1)
- Locking netresearch/jsonmapper (v4.5.0)
- Locking phan/phan (5.5.1)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.4.0)
- Locking phpcsstandards/phpcsextra (1.4.0)
- Locking phpcsstandards/phpcsutils (1.1.1)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.6.3)
- Locking phpdocumentor/type-resolver (1.10.0)
- Locking phpstan/phpdoc-parser (2.3.0)
- Locking psr/container (2.0.2)
- Locking psr/log (3.0.2)
- Locking sabre/event (5.1.7)
- Locking squizlabs/php_codesniffer (3.13.2)
- Locking symfony/console (v7.3.6)
- Locking symfony/deprecation-contracts (v3.6.0)
- Locking symfony/filesystem (v3.4.47)
- Locking symfony/polyfill-ctype (v1.33.0)
- Locking symfony/polyfill-intl-grapheme (v1.33.0)
- Locking symfony/polyfill-intl-normalizer (v1.33.0)
- Locking symfony/polyfill-mbstring (v1.33.0)
- Locking symfony/polyfill-php80 (v1.33.0)
- Locking symfony/process (v6.4.26)
- Locking symfony/service-contracts (v3.6.1)
- Locking symfony/string (v7.3.4)
- Locking tysonandre/var_representation_polyfill (0.1.3)
- Locking webmozart/assert (1.12.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 43 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing composer/installers (v2.3.0): Extracting archive
- Installing squizlabs/php_codesniffer (3.13.2): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
- Installing composer/pcre (3.3.2): Extracting archive
- Installing phpcsstandards/phpcsutils (1.1.1): Extracting archive
- Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
- Installing composer/spdx-licenses (1.5.9): Extracting archive
- Installing composer/semver (3.4.4): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v48.0.0): Extracting archive
- Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
- Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
- Installing symfony/string (v7.3.4): Extracting archive
- Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.6.1): Extracting archive
- Installing symfony/console (v7.3.6): Extracting archive
- Installing sabre/event (5.1.7): Extracting archive
- Installing netresearch/jsonmapper (v4.5.0): Extracting archive
- Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
- Installing webmozart/assert (1.12.1): Extracting archive
- Installing phpstan/phpdoc-parser (2.3.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing doctrine/deprecations (1.1.5): Extracting archive
- Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.6.3): Extracting archive
- Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
- Installing psr/log (3.0.2): Extracting archive
- Installing composer/xdebug-handler (3.0.5): Extracting archive
- Installing phan/phan (5.5.1): Extracting archive
- Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive
- Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive
- Installing mediawiki/minus-x (1.1.3): Extracting archive
- Installing symfony/process (v6.4.26): Extracting archive
- Installing symfony/filesystem (v3.4.47): Extracting archive
- Installing mwstake/mediawiki-componentloader (1.0.1): Extracting archive
- Installing mwstake/mediawiki-component-processmanager (3.1.3): Extracting archive
- Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
- Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
- Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
0/40 [>---------------------------] 0%
28/40 [===================>--------] 70%
40/40 [============================] 100%
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
20 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
Upgrading n:eslint-config-wikimedia from 0.31.0 -> 0.32.1
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated lodash.get@4.4.2: This package is deprecated. Use the optional chaining (?.) operator instead.
npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated sinon@12.0.1: 16.1.1
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
> cognitive-process-designer@4.0.0 postinstall
> cp -R resources/js/cpd/bpmnlint-plugin-mediawiki-cpd node_modules && npx bpmnlint-pack-config -c .bpmnlintrc -o bpmn-lint.config.js -t es && cp node_modules/bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css resources/styles/ext && cp node_modules/bpmn-js/dist/assets/bpmn-js.css resources/styles/ext && cp node_modules/bpmn-js/dist/assets/diagram-js.css resources/styles/ext && cp node_modules/bpmn-js-color-picker/colors/color-picker.css resources/styles/ext && cp node_modules/bpmn-js-bpmnlint/dist/assets/css/bpmn-js-bpmnlint.css resources/styles/ext
added 1202 packages, and audited 1203 packages in 20s
176 packages are looking for funding
run `npm fund` for details
21 moderate severity vulnerabilities
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact
--- stdout ---
removed 1 package, and audited 1203 packages in 4s
176 packages are looking for funding
run `npm fund` for details
21 moderate severity vulnerabilities
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ ./node_modules/.bin/eslint . --fix
--- stdout ---
/src/repo/Gruntfile.js
2:18 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/jest.setup.js
3:31 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:3 warning Missing return type on function @typescript-eslint/explicit-function-return-type
10:25 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
28:39 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/cpd/CpdBpmnDiffer.ts
25:26 error ES2022 static field 'VIEWBOX_CHANGE_END_EVENT' is forbidden es-x/no-class-static-fields
27:26 error ES2022 static field 'VIEWBOX_CHANGE_START_EVENT' is forbidden es-x/no-class-static-fields
29:26 error ES2022 static field 'DIFF_CONTAINER_ID' is forbidden es-x/no-class-static-fields
31:26 error ES2022 static field 'NO_DIFF_TYPES' is forbidden es-x/no-class-static-fields
33:19 error ES2022 instance field 'process' is forbidden es-x/no-class-instance-fields
35:19 error ES2022 instance field 'containerHeight' is forbidden es-x/no-class-instance-fields
37:10 error ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
39:10 error ES2022 instance field 'syncState' is forbidden es-x/no-class-instance-fields
105:4 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
150:32 warning Unexpected dangling '_' in '_layoutChanged' no-underscore-dangle
151:26 warning Unexpected dangling '_' in '_changed' no-underscore-dangle
152:26 warning Unexpected dangling '_' in '_removed' no-underscore-dangle
153:24 warning Unexpected dangling '_' in '_added' no-underscore-dangle
/src/repo/resources/js/cpd/CpdModeler.ts
21:10 error ES2022 instance field 'changeLogger' is forbidden es-x/no-class-instance-fields
98:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
126:3 warning Prefer .then to .done no-jquery/no-done-fail
203:5 error Unexpected console statement no-console
/src/repo/resources/js/cpd/CpdTool.ts
2:8 warning 'CpdXml' is defined but never used @typescript-eslint/no-unused-vars
10:12 error ES2022 instance field 'bpmnTool' is forbidden es-x/no-class-instance-fields
12:12 error ES2022 instance field 'dom' is forbidden es-x/no-class-instance-fields
14:12 error ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
16:12 error ES2022 instance field 'xml' is forbidden es-x/no-class-instance-fields
18:12 error ES2022 instance field 'elementFactory' is forbidden es-x/no-class-instance-fields
20:12 error ES2022 instance field 'diagramPage' is forbidden es-x/no-class-instance-fields
22:12 error ES2022 instance field 'canvas' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/CpdViewer.ts
3:8 warning 'config' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'hook' is defined but never used @typescript-eslint/no-unused-vars
23:10 error ES2022 instance field 'eventBus' is forbidden es-x/no-class-instance-fields
103:62 warning Default parameters should be last default-param-last
/src/repo/resources/js/cpd/CustomPaletteProvider.ts
5:2 warning Missing accessibility modifier on method definition getPaletteEntries @typescript-eslint/explicit-member-accessibility
5:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/CustomReplaceMenuProvider.ts
4:2 warning Missing accessibility modifier on method definition getPopupMenuEntries @typescript-eslint/explicit-member-accessibility
4:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
4:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
4:23 warning Argument 'target' should be typed @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/helper/CpdApi.ts
1:8 warning 'user' is defined but never used @typescript-eslint/no-unused-vars
3:8 warning 'message' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'Api' is defined but never used @typescript-eslint/no-unused-vars
27:25 error ES2022 static field 'STATUS_REQUEST_STARTED' is forbidden es-x/no-class-static-fields
29:25 error ES2022 static field 'STATUS_REQUEST_FINISHED' is forbidden es-x/no-class-static-fields
31:25 error ES2022 static field 'STATUS_REQUEST_FAILED' is forbidden es-x/no-class-static-fields
33:19 error ES2022 instance field 'process' is forbidden es-x/no-class-instance-fields
35:19 error ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
55:10 warning Prefer .then to .fail no-jquery/no-done-fail
55:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
62:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
77:10 warning Prefer .then to .fail no-jquery/no-done-fail
84:23 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
98:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
116:10 warning Prefer .then to .fail no-jquery/no-done-fail
122:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
127:53 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
/src/repo/resources/js/cpd/helper/CpdChangeLogger.ts
18:26 error ES2022 static field 'ELEMENT_CREATE' is forbidden es-x/no-class-static-fields
20:26 error ES2022 static field 'ELEMENT_DELETE' is forbidden es-x/no-class-static-fields
22:26 error ES2022 static field 'ELEMENT_RENAME' is forbidden es-x/no-class-static-fields
24:26 error ES2022 static field 'DIAGRAM_CHANGED' is forbidden es-x/no-class-static-fields
26:10 error ES2022 instance field 'deletions' is forbidden es-x/no-class-instance-fields
28:10 error ES2022 instance field 'creations' is forbidden es-x/no-class-instance-fields
30:10 error ES2022 instance field 'renames' is forbidden es-x/no-class-instance-fields
32:10 error ES2022 instance field 'factory' is forbidden es-x/no-class-instance-fields
34:10 error ES2022 instance field 'svgRenderer' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdDom.ts
3:8 warning 'util' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'Title' is defined but never used @typescript-eslint/no-unused-vars
39:19 error ES2022 instance field 'container' is forbidden es-x/no-class-instance-fields
41:19 error ES2022 instance field 'diagramPage' is forbidden es-x/no-class-instance-fields
43:10 error ES2022 instance field 'messageBox' is forbidden es-x/no-class-instance-fields
45:10 error ES2022 instance field 'saveDialog' is forbidden es-x/no-class-instance-fields
47:10 error ES2022 instance field 'openDialogBtn' is forbidden es-x/no-class-instance-fields
49:10 error ES2022 instance field 'cancelBtn' is forbidden es-x/no-class-instance-fields
51:10 error ES2022 instance field 'showXmlBtn' is forbidden es-x/no-class-instance-fields
53:10 error ES2022 instance field 'showDiagramBtn' is forbidden es-x/no-class-instance-fields
55:10 error ES2022 instance field 'centerViewportBtn' is forbidden es-x/no-class-instance-fields
57:10 error ES2022 instance field 'exportBtn' is forbidden es-x/no-class-instance-fields
59:10 error ES2022 instance field 'importBtn' is forbidden es-x/no-class-instance-fields
61:10 error ES2022 instance field 'groupToolBtn' is forbidden es-x/no-class-instance-fields
63:10 error ES2022 instance field 'fileInput' is forbidden es-x/no-class-instance-fields
65:10 error ES2022 instance field 'svgFileLink' is forbidden es-x/no-class-instance-fields
67:10 error ES2022 instance field 'diagramPageLink' is forbidden es-x/no-class-instance-fields
69:10 error ES2022 instance field 'canvas' is forbidden es-x/no-class-instance-fields
71:10 error ES2022 instance field 'xmlContainer' is forbidden es-x/no-class-instance-fields
73:10 error ES2022 instance field 'loadingAnimation' is forbidden es-x/no-class-instance-fields
75:10 error ES2022 instance field 'viewMode' is forbidden es-x/no-class-instance-fields
77:10 error ES2022 instance field 'isEdit' is forbidden es-x/no-class-instance-fields
79:10 error ES2022 instance field 'openDialogOptions' is forbidden es-x/no-class-instance-fields
452:5 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
453:47 error 'item' is already declared in the upper scope on line 408 column 16 no-shadow
481:47 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
482:50 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
/src/repo/resources/js/cpd/helper/CpdElementFactory.ts
16:19 error ES2022 instance field 'subpageTypes' is forbidden es-x/no-class-instance-fields
18:10 error ES2022 instance field 'elementRegistry' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdInlineSvgRenderer.ts
6:10 error ES2022 instance field 'elementRegistry' is forbidden es-x/no-class-instance-fields
8:10 error ES2022 instance field 'largeTypes' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdSaveDialog.ts
10:19 error ES2022 instance field 'dialog' is forbidden es-x/no-class-instance-fields
48:74 warning ES2020 nullish coalescing operators are forbidden es-x/no-nullish-coalescing-operators
73:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
/src/repo/resources/js/cpd/helper/CpdTranslator.ts
6:19 error ES2022 instance field 'translations' is forbidden es-x/no-class-instance-fields
6:48 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
19:55 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
27:69 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
/src/repo/resources/js/cpd/helper/CpdValidator.ts
3:8 warning 'ElementRegistry' is defined but never used @typescript-eslint/no-unused-vars
19:25 error ES2022 static field 'VALIDATION_EVENT' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/helper/CpdXml.ts
1:8 warning 'notify' is defined but never used @typescript-eslint/no-unused-vars
22:1 warning Missing JSDoc @param "xml" type jsdoc/require-param-type
37:22 error OO.ui.ButtonWidget has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
44:4 warning navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
/src/repo/resources/js/cpd/model/CpdElement.ts
4:18 error ES2022 instance field 'bpmnElement' is forbidden es-x/no-class-instance-fields
14:2 warning Missing accessibility modifier on get property accessor id @typescript-eslint/explicit-member-accessibility
18:2 warning Missing accessibility modifier on get property accessor type @typescript-eslint/explicit-member-accessibility
22:2 warning Missing accessibility modifier on get property accessor label @typescript-eslint/explicit-member-accessibility
34:2 warning Missing accessibility modifier on set property accessor label @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/cpd/oojs-ui/Button.ts
2:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
2:18 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
8:2 warning Missing accessibility modifier on method definition onUpdateState @typescript-eslint/explicit-member-accessibility
8:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
8:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
8:18 warning Unexpected empty method 'onUpdateState' @typescript-eslint/no-empty-function
11:2 warning Missing accessibility modifier on method definition setLabel @typescript-eslint/explicit-member-accessibility
11:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
11:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
15:2 warning Missing accessibility modifier on method definition getTagName @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/cpd/oojs-ui/CancelButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/CenterViewportButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/DiagramPageLinkButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
13:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
13:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
13:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
13:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/ExportButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/GroupTool.ts
5:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
5:18 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/ImportButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/LinkButton.ts
4:2 warning Missing accessibility modifier on method definition setLink @typescript-eslint/explicit-member-accessibility
14:2 warning Missing accessibility modifier on method definition onSelect @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/oojs-ui/OpenDialogButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/SaveDialog.ts
16:10 error ES2022 instance field 'panels' is forbidden es-x/no-class-instance-fields
18:10 error ES2022 instance field 'savePanel' is forbidden es-x/no-class-instance-fields
20:10 error ES2022 instance field 'reviewPanel' is forbidden es-x/no-class-instance-fields
22:10 error ES2022 instance field 'reviewContent' is forbidden es-x/no-class-instance-fields
25:10 error ES2022 instance field 'changesPanel' is forbidden es-x/no-class-instance-fields
27:10 error ES2022 instance field 'postSaveMessages' is forbidden es-x/no-class-instance-fields
29:10 error ES2022 instance field 'postSaveWarnings' is forbidden es-x/no-class-instance-fields
31:10 error ES2022 instance field 'savePagesCheckbox' is forbidden es-x/no-class-instance-fields
33:10 error ES2022 instance field 'changeLogMessages' is forbidden es-x/no-class-instance-fields
35:10 error ES2022 instance field 'saveWithPages' is forbidden es-x/no-class-instance-fields
37:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
37:18 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
89:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
107:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
128:26 warning Argument 'data' should be typed with a non-any type @typescript-eslint/explicit-module-boundary-types
128:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
166:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
172:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
189:18 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc
/src/repo/resources/js/cpd/oojs-ui/ShowDiagramButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/ShowXmlButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/SvgFileLinkButton.ts
4:25 error ES2022 static field 'static' is forbidden es-x/no-class-static-fields
13:2 warning Missing accessibility modifier on method definition setDisabled @typescript-eslint/explicit-member-accessibility
23:2 warning Missing accessibility modifier on method definition setLink @typescript-eslint/explicit-member-accessibility
28:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
28:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
28:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
28:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/renderer/CpdElementsRenderer.ts
9:2 warning Missing accessibility modifier on class property $inject @typescript-eslint/explicit-member-accessibility
9:9 error ES2022 static field '$inject' is forbidden es-x/no-class-static-fields
11:26 error ES2022 static field 'HIGHLIGHT_COLOR' is forbidden es-x/no-class-static-fields
13:10 error ES2022 instance field 'bpmnRenderer' is forbidden es-x/no-class-instance-fields
15:2 warning Missing accessibility modifier on method definition constructor @typescript-eslint/explicit-member-accessibility
15:15 warning Argument 'eventBus' should be typed @typescript-eslint/explicit-module-boundary-types
15:25 warning Argument 'bpmnRenderer' should be typed @typescript-eslint/explicit-module-boundary-types
20:2 warning Missing accessibility modifier on method definition canRender @typescript-eslint/explicit-member-accessibility
24:2 warning Missing accessibility modifier on method definition drawShape @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/ext.cpd.DiagramUsageInformationPage.js
1:10 warning Missing return type on function @typescript-eslint/explicit-function-return-type
7:45 warning Missing return type on function @typescript-eslint/explicit-function-return-type
13:72 warning Missing return type on function @typescript-eslint/explicit-function-return-type
21:61 warning Missing return type on function @typescript-eslint/explicit-function-return-type
25:73 warning Missing return type on function @typescript-eslint/explicit-function-return-type
60:79 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ext.cpd.NewProcessDialog.js
3:28 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:59 warning Missing return type on function @typescript-eslint/explicit-function-return-type
32:51 warning Missing return type on function @typescript-eslint/explicit-function-return-type
52:60 warning Missing return type on function @typescript-eslint/explicit-function-return-type
54:36 warning Unexpected empty arrow function @typescript-eslint/no-empty-function
57:61 warning Missing return type on function @typescript-eslint/explicit-function-return-type
61:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
68:49 warning Missing return type on function @typescript-eslint/explicit-function-return-type
82:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
86:34 warning Unexpected empty arrow function @typescript-eslint/no-empty-function
89:43 warning Missing return type on function @typescript-eslint/explicit-function-return-type
101:52 warning Missing return type on function @typescript-eslint/explicit-function-return-type
109:55 warning Missing return type on function @typescript-eslint/explicit-function-return-type
118:51 warning Missing return type on function @typescript-eslint/explicit-function-return-type
125:66 warning Missing return type on function @typescript-eslint/explicit-function-return-type
129:52 warning Missing return type on function @typescript-eslint/explicit-function-return-type
138:60 warning Missing return type on function @typescript-eslint/explicit-function-return-type
145:2 warning Prefer .then to .done no-jquery/no-done-fail
145:2 warning Prefer .then to .fail no-jquery/no-done-fail
176:47 warning Missing return type on function @typescript-eslint/explicit-function-return-type
184:49 warning Missing return type on function @typescript-eslint/explicit-function-return-type
190:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ext.cpd.special.OrphanedDescriptionPagesGrid.js
5:13 warning Missing return type on function @typescript-eslint/explicit-function-return-type
6:48 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ui/ProcessInputWidget.js
6:33 warning Missing return type on function @typescript-eslint/explicit-function-return-type
20:72 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ce/CPDProcessNode.js
7:32 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/dm/CPDProcessNode.js
7:32 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ui/CPDProcessNodeInspector.js
7:41 warning Missing return type on function @typescript-eslint/explicit-function-return-type
33:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
62:64 warning Missing return type on function @typescript-eslint/explicit-function-return-type
73:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
97:67 warning Missing return type on function @typescript-eslint/explicit-function-return-type
114:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
121:64 warning Missing return type on function @typescript-eslint/explicit-function-return-type
144:80 warning Missing return type on function @typescript-eslint/explicit-function-return-type
148:65 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ui/CPDProcessNodeInspectorTool.js
7:45 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ve.ui.DiffElement.js
1:21 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/vue/init.js
1:3 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
26:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/tests/jest/CpdLinker.test.ts
1:8 warning 'CpdChangeLogger' is defined but never used @typescript-eslint/no-unused-vars
2:8 warning 'EventBus' is defined but never used @typescript-eslint/no-unused-vars
3:8 warning 'ElementRegistry' is defined but never used @typescript-eslint/no-unused-vars
4:10 warning 'CpdElementFactory' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'CpdInlineSvgRenderer' is defined but never used @typescript-eslint/no-unused-vars
✖ 245 problems (88 errors, 157 warnings)
--- end ---
$ ./node_modules/.bin/eslint . -f json
--- stdout ---
[{"filePath":"/src/repo/Gruntfile.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":2,"column":18,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":2,"endColumn":27}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* eslint-env node */\nmodule.exports = function ( grunt ) {\n\tconst conf = grunt.file.readJSON( 'extension.json' );\n\n\tgrunt.loadNpmTasks( 'grunt-banana-checker' );\n\tgrunt.loadNpmTasks( 'grunt-eslint' );\n\tgrunt.loadNpmTasks( 'grunt-stylelint' );\n\n\tgrunt.initConfig( {\n\t\teslint: {\n\t\t\toptions: {\n\t\t\t\tcache: true,\n\t\t\t\tfix: grunt.option( 'fix' )\n\t\t\t},\n\t\t\tall: '.'\n\t\t},\n\t\tstylelint: {\n\t\t\toptions: {\n\t\t\t\tcache: true\n\t\t\t},\n\t\t\tall: [\n\t\t\t\t'**/*.{css,less,vue}',\n\t\t\t\t'!node_modules/**',\n\t\t\t\t'!vendor/**'\n\t\t\t]\n\t\t},\n\t\tbanana: conf.MessagesDirs\n\t} );\n\n\tgrunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana' ] );\n\tgrunt.registerTask( 'default', 'test' );\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/babel.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/jest.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/jest.setup.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":3,"column":31,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":3,"endColumn":40},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":5,"column":3,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":5,"endColumn":27},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":10,"column":25,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":10,"endColumn":34},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":5},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":28,"column":39,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":28,"endColumn":48}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const mockMediaWiki = require( \"@wikimedia/mw-node-qunit/src/mockMediaWiki.js\" );\nglobal.mw = mockMediaWiki();\nglobal.mw.Title.newFromText = function ( text ) {\n\treturn {\n\t\tgetPrefixedDb: function () {\n\t\t\treturn text;\n\t\t}\n\t};\n};\nglobal.mw.util.getUrl = function ( dbKey ) {\n\treturn \"/jest/index.php?title=\" + dbKey;\n};\nglobal.mw.config = {\n\tget( key ) {\n\t\tswitch ( key ) {\n\t\t\tcase \"cpdDedicatedSubpageTypes\":\n\t\t\t\treturn [ \"task\", \"event\" ];\n\t\t\tcase \"cpdProcessNamespace\":\n\t\t\t\treturn \"Process\";\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n};\nglobal.$ = require( \"jquery\" );\nglobal.OO = require( \"oojs\" );\nglobal.OO.ui = require( \"oojs-ui\" );\nglobal.mw.Api.prototype.getUserInfo = function () {\n\treturn \"mocked user info\";\n};\nglobal.document.getElementById = jest.fn( () => ( {\n\ttextContent: \"Mocked text content\"\n} ) );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/CpdBpmnDiffer.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'VIEWBOX_CHANGE_END_EVENT' is forbidden.","line":25,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":25,"endColumn":50},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'VIEWBOX_CHANGE_START_EVENT' is forbidden.","line":27,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":27,"endColumn":52},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'DIFF_CONTAINER_ID' is forbidden.","line":29,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":29,"endColumn":43},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'NO_DIFF_TYPES' is forbidden.","line":31,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":31,"endColumn":39},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'process' is forbidden.","line":33,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":33,"endColumn":26},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'containerHeight' is forbidden.","line":35,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":35,"endColumn":34},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'api' is forbidden.","line":37,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":37,"endColumn":13},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'syncState' is forbidden.","line":39,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":39,"endColumn":19},{"ruleId":"mediawiki/class-doc","severity":1,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":105,"column":4,"nodeType":"CallExpression","endLine":105,"endColumn":37},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_layoutChanged'.","line":150,"column":32,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":150,"endColumn":54},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_changed'.","line":151,"column":26,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":151,"endColumn":42},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_removed'.","line":152,"column":26,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":152,"endColumn":42},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_added'.","line":153,"column":24,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":153,"endColumn":38}],"suppressedMessages":[],"errorCount":8,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { diff } from '../../../node_modules/bpmn-js-differ';\nimport BpmnModdle from '../../../node_modules/bpmn-moddle/dist';\nimport { ModdleElement } from \"bpmn-js/lib/model/Types\";\nimport NavigatedViewer from \"bpmn-js/lib/NavigatedViewer\";\nimport CpdApi from \"./helper/CpdApi\";\nimport EventBus from \"diagram-js/lib/core/EventBus\";\nimport Canvas from \"diagram-js/lib/core/Canvas\";\nimport Overlays from \"diagram-js/lib/features/overlays/Overlays\";\nimport ElementRegistry from \"diagram-js/lib/core/ElementRegistry\";\n\nenum SyncState {\n\tNewToOld,\n\tOldToNew,\n\tNone\n}\n\ninterface Changes {\n\tlayoutChanged: string[];\n\tchanged: string[];\n\tremoved: string[];\n\tadded: string[];\n}\n\nexport class CpdBpmnDiffer {\n\tprivate static readonly VIEWBOX_CHANGE_END_EVENT: string = \"canvas.viewbox.changed\";\n\n\tprivate static readonly VIEWBOX_CHANGE_START_EVENT: string = \"canvas.viewbox.changing\";\n\n\tprivate static readonly DIFF_CONTAINER_ID: string = \"cpd-diff-container\";\n\n\tprivate static readonly NO_DIFF_TYPES: string[] = [ 'bpmn:SequenceFlow' ];\n\n\tprivate readonly process: string;\n\n\tprivate readonly containerHeight: number;\n\n\tprivate api: CpdApi;\n\n\tprivate syncState: SyncState;\n\n\tpublic constructor( process: string, containerHeight: number ) {\n\t\tthis.process = process;\n\t\tthis.containerHeight = containerHeight;\n\t\tthis.api = new CpdApi( this.process );\n\t\tthis.syncState = SyncState.None;\n\t}\n\n\tpublic async createDiff( newRevision: number, oldRevision: number ): Promise<HTMLDivElement> {\n\t\tconst container = document.createElement( \"div\" );\n\t\tcontainer.setAttribute( \"id\", CpdBpmnDiffer.DIFF_CONTAINER_ID );\n\t\tcontainer.style.height = `${ this.containerHeight }px`;\n\n\t\tconst leftContainer = document.createElement( \"div\" );\n\t\tconst rightContainer = document.createElement( \"div\" );\n\t\tcontainer.appendChild( leftContainer );\n\t\tcontainer.appendChild( rightContainer );\n\n\t\tconst [ newRevViewer, oldRevViewer ] = await Promise.all( [\n\t\t\tthis.initViewer( newRevision, leftContainer ),\n\t\t\tthis.initViewer( oldRevision, rightContainer ),\n\t\t] );\n\n\t\tthis.initCanvasSync( newRevViewer.viewer, oldRevViewer.viewer );\n\n\t\tconst changes = await this.computeChanges( newRevViewer.xml, oldRevViewer.xml );\n\t\tthis.addChangeOverlays( changes, newRevViewer.viewer, 'new' );\n\t\tthis.addChangeOverlays( changes, oldRevViewer.viewer, 'old' );\n\n\t\treturn container;\n\t}\n\n\tprivate addChangeOverlays( changes: Changes, viewer: NavigatedViewer, cls: string ): void {\n\t\tconst overlays = viewer.get( \"overlays\" ) as Overlays;\n\t\tconst elementRegistry = viewer.get( \"elementRegistry\" ) as ElementRegistry;\n\t\tconst canvas = viewer.get( \"canvas\" ) as Canvas;\n\n\t\tthis.applyChanges( changes.added, elementRegistry, canvas, overlays, 'added' );\n\t\tthis.applyChanges( changes.removed, elementRegistry, canvas, overlays, 'removed' );\n\t\tthis.applyChanges( changes.changed, elementRegistry, canvas, overlays, 'changed-' + cls );\n\t\tthis.applyChanges( changes.layoutChanged, elementRegistry, canvas, overlays, 'layoutChanged-' + cls );\n\t}\n\n\tprivate applyChanges(\n\t\telements: string[],\n\t\telementRegistry: ElementRegistry,\n\t\tcanvas: Canvas,\n\t\toverlays: Overlays,\n\t\ttype: string,\n\t): void {\n\t\telements.forEach( ( id: string ) => {\n\t\t\tconst shape = elementRegistry.get( id );\n\n\t\t\tif ( !shape ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( CpdBpmnDiffer.NO_DIFF_TYPES.includes( shape.type ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcanvas.addMarker( id, `diff-${ type }` );\n\n\t\t\tconst overlayHtml = document.createElement( \"div\" );\n\t\t\toverlayHtml.classList.add( \"diff-overlay\" );\n\t\t\toverlayHtml.classList.add( type );\n\n\t\t\toverlays.add( id, {\n\t\t\t\tposition: {\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t},\n\t\t\t\thtml: overlayHtml,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tprivate async initViewer( revision: number, container: HTMLDivElement ): Promise<{\n\t\tviewer: NavigatedViewer;\n\t\txml: string;\n\t}> {\n\t\tconst pageContent = await this.api.fetchPageContent( revision );\n\t\tconst xml = pageContent.xml;\n\t\tconst viewer = new NavigatedViewer();\n\t\tawait viewer.importXML( xml );\n\t\tviewer.attachTo( container );\n\n\t\treturn {\n\t\t\tviewer,\n\t\t\txml,\n\t\t};\n\t}\n\n\tprivate initCanvasSync( newViewer: NavigatedViewer, oldViewer: NavigatedViewer ): void {\n\t\tconst newRevCanvas = newViewer.get( \"canvas\" ) as Canvas;\n\t\tconst oldRevCanvas = oldViewer.get( \"canvas\" ) as Canvas;\n\n\t\tthis.enableCanvasSync( newViewer.get( \"eventBus\" ), newRevCanvas, oldRevCanvas, SyncState.NewToOld );\n\t\tthis.enableCanvasSync( oldViewer.get( \"eventBus\" ), oldRevCanvas, newRevCanvas, SyncState.OldToNew );\n\t}\n\n\tprivate async computeChanges( newXml: string, oldXml: string ): Promise<Changes> {\n\t\tconst [ newRootElement, oldRootElement ] = await Promise.all( [\n\t\t\tthis.loadBpmnModdle( newXml ),\n\t\t\tthis.loadBpmnModdle( oldXml ),\n\t\t] );\n\n\t\tconst changes = diff( newRootElement, oldRootElement );\n\n\t\treturn {\n\t\t\tlayoutChanged: Object.keys( changes._layoutChanged ),\n\t\t\tchanged: Object.keys( changes._changed ),\n\t\t\tremoved: Object.keys( changes._removed ),\n\t\t\tadded: Object.keys( changes._added ),\n\t\t};\n\t}\n\n\tprivate enableCanvasSync( eventBus: EventBus, canvasA: Canvas, canvasB: Canvas, syncDirection: SyncState ): void {\n\t\teventBus.on( CpdBpmnDiffer.VIEWBOX_CHANGE_START_EVENT, () => {\n\t\t\tif ( this.syncState !== syncDirection && this.syncState !== SyncState.None ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.syncState = syncDirection;\n\t\t\tcanvasB.viewbox( canvasA.viewbox() );\n\t\t} );\n\n\t\teventBus.on( CpdBpmnDiffer.VIEWBOX_CHANGE_END_EVENT, () => {\n\t\t\tthis.syncState = SyncState.None;\n\t\t} );\n\t}\n\n\tprivate async loadBpmnModdle( diagramXML: string ): Promise<ModdleElement> {\n\t\tconst bpmnModdle = new BpmnModdle();\n\t\tconst { rootElement } = await bpmnModdle.fromXML( diagramXML );\n\n\t\treturn rootElement;\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/CpdModeler.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'changeLogger' is forbidden.","line":21,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":21,"endColumn":22},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":98,"column":3,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":98,"endColumn":16,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[3404,3417],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .done","line":126,"column":3,"nodeType":"CallExpression","endLine":131,"endColumn":7},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":203,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":203,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[5958,6005],"text":""},"desc":"Remove the console.error()."}]}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import BpmnModeler from \"bpmn-js/lib/Modeler\";\nimport BpmnColorPickerModule from \"../../../node_modules/bpmn-js-color-picker/colors/index\";\nimport { SaveSVGResult } from \"bpmn-js/lib/BaseViewer\";\nimport { LoadDiagramResult, SaveDiagramResult } from \"./helper/CpdApi\";\nimport { CpdTool } from \"./CpdTool\";\nimport CpdChangeLogger from \"./helper/CpdChangeLogger\";\nimport CpdValidator from \"./helper/CpdValidator\";\nimport CpdInlineSvgRenderer from \"./helper/CpdInlineSvgRenderer\";\nimport ElementRegistry from \"diagram-js/lib/core/ElementRegistry\";\nimport bpmnlintConfig from \"../../../bpmn-lint.config\";\nimport lintModule from 'bpmn-js-bpmnlint';\nimport EventBus from \"diagram-js/lib/core/EventBus\";\nimport { MessageType } from \"./oojs-ui/SaveDialog\";\nimport CpdTranslator from \"./helper/CpdTranslator\";\nimport CustomPaletteProvider from \"./CustomPaletteProvider\";\nimport CustomReplaceMenuProvider from \"./CustomReplaceMenuProvider\";\nimport CpdLinker from \"./helper/CpdLinker\";\nimport CpdXml from \"./helper/CpdXml\";\n\nclass CpdModeler extends CpdTool {\n\tprivate changeLogger: CpdChangeLogger;\n\n\tpublic constructor( process: string, container: HTMLElement, enableLinting: boolean = true ) {\n\t\tconst translator = new CpdTranslator( mw.config.get( \"wgUserLanguage\" ) );\n\n\t\tconst baseAdditionalModules = [\n\t\t\tBpmnColorPickerModule,\n\t\t\t{ translate: [ 'value', translator.translate.bind( translator ) ] },\n\t\t\t{\n\t\t\t\t__init__: [ \"paletteProvider\", \"replaceMenuProvider\" ],\n\t\t\t\tpaletteProvider: [ \"type\", CustomPaletteProvider ],\n\t\t\t\treplaceMenuProvider: [ \"type\", CustomReplaceMenuProvider ],\n\t\t\t},\n\t\t];\n\n\t\tconst modelerOptions = {\n\t\t\tadditionalModules: [\n\t\t\t\t...baseAdditionalModules,\n\t\t\t\t...( enableLinting ? [ lintModule ] : [] ),\n\t\t\t],\n\t\t\t...( enableLinting ?\n\t\t\t\t{ linting: { bpmnlint: bpmnlintConfig } } :\n\t\t\t\t{} ),\n\t\t};\n\n\t\tconst bpmnModeler = new BpmnModeler( modelerOptions );\n\n\t\tsuper( process, container, bpmnModeler );\n\n\t\tthis.dom.initDomElements( true );\n\t\tthis.dom.on( \"save\", this.onSave.bind( this ) );\n\t\tthis.dom.on( \"saveDone\", this.onSaveDone.bind( this ) );\n\t\tthis.dom.on( \"cancel\", this.onCancel.bind( this ) );\n\t\tthis.dom.on( \"openDialog\", this.onOpenDialog.bind( this ) );\n\t\tthis.dom.on( \"importFile\", this.onImportFile.bind( this ) );\n\n\t\tconst elementRegistry = this.bpmnTool.get( \"elementRegistry\" ) as ElementRegistry;\n\t\tconst svgRenderer = new CpdInlineSvgRenderer( elementRegistry );\n\t\tconst eventBus = this.bpmnTool.get( \"eventBus\" ) as EventBus;\n\n\t\tthis.changeLogger = new CpdChangeLogger( eventBus, this.elementFactory, svgRenderer );\n\t\tconst validator = new CpdValidator( eventBus );\n\t\tvalidator.on( CpdValidator.VALIDATION_EVENT, this.onValidation.bind( this ) );\n\n\t\tthis.renderDiagram();\n\t}\n\n\tprivate async renderDiagram(): Promise<void> {\n\t\tconst pageContent: LoadDiagramResult = await this.api.fetchPageContent();\n\n\t\tpageContent.loadWarnings.forEach( ( warning: string ): void => {\n\t\t\tthis.dom.showWarning( warning );\n\t\t} );\n\n\t\tthis.xml = pageContent.xml;\n\n\t\tif ( !this.xml ) {\n\t\t\ttry {\n\t\t\t\tawait this.createDiagram();\n\n\t\t\t\treturn;\n\t\t\t} catch ( e ) {\n\t\t\t\tthis.dom.showError( e );\n\t\t\t}\n\t\t}\n\n\t\tawait this.attachToCanvas();\n\n\t\tthis.dom.setSvgLink( pageContent.svgFile );\n\t\tthis.dom.setOpenDialogOptions( {\n\t\t\tsavePagesCheckboxState: pageContent.descriptionPages.length > 0,\n\t\t} );\n\t}\n\n\tpublic async createDiagram(): Promise<void> {\n\t\tthis.bpmnTool.attachTo( this.dom.getCanvas() );\n\n\t\t// @ts-ignore\n\t\tawait this.bpmnTool.createDiagram();\n\t}\n\n\tpublic async getUpdatedXml(): Promise<string> {\n\t\tconst saveXmlResult = await this.bpmnTool.saveXML();\n\n\t\tif ( saveXmlResult.error || !saveXmlResult.xml ) {\n\t\t\tthrow new Error( mw.message(\n\t\t\t\t\"cpd-error-message-saving-diagram\",\n\t\t\t\tsaveXmlResult.error ).text(),\n\t\t\t);\n\t\t}\n\n\t\tCpdXml.validate( saveXmlResult.xml );\n\n\t\treturn saveXmlResult.xml;\n\t}\n\n\tpublic async getSVG(): Promise<SaveSVGResult> {\n\t\treturn this.bpmnTool.saveSVG();\n\t}\n\n\tprivate onValidation( isValid: boolean ): void {\n\t\tthis.dom.disableSaveButton( isValid );\n\t}\n\n\tprivate onCancel(): void {\n\t\tOO.ui.confirm( mw.message( 'cpd-cancel-confirm' ).text() )\n\t\t\t.done( ( confirmed ) => {\n\t\t\t\tif ( confirmed ) {\n\t\t\t\t\twindow.open( mw.util.getUrl( mw.config.get( \"wgPageName\" ) ), \"_self\" );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\tprivate async onSave( withPages: boolean ): Promise<void> {\n\t\tthis.xml = await this.getUpdatedXml();\n\t\tconst svgResult = await this.getSVG();\n\n\t\tconst result = await this.api.saveDiagram(\n\t\t\tthis.xml,\n\t\t\tsvgResult,\n\t\t\twithPages,\n\t\t);\n\n\t\t// Reload the page in view mode\n\t\tif ( !withPages ) {\n\t\t\tthis.reloadInViewMode();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.showAfterSaveMessages( result );\n\t\tthis.changeLogger.reset();\n\t\tthis.dom.showDialogChangesPanel();\n\t}\n\n\tprivate onSaveDone(): void {\n\t\tthis.reloadInViewMode();\n\t}\n\n\tprivate reloadInViewMode(): void {\n\t\twindow.open( mw.util.getUrl( mw.config.get( \"wgPageName\" ) ), \"_self\" );\n\t}\n\n\tprivate showAfterSaveMessages( result: SaveDiagramResult ): void {\n\t\tresult.saveWarnings.forEach( ( warning: string ): void => {\n\t\t\tthis.dom.showWarning( warning );\n\t\t} );\n\n\t\tif ( result.descriptionPages.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst messageDiv = document.createElement( \"div\" );\n\t\tconst list = document.createElement( \"ul\" );\n\t\tmessageDiv.appendChild( list );\n\n\t\tresult.descriptionPages.forEach( ( descriptionPage: string ): void => {\n\t\t\tconst link = CpdLinker.createLinkFromDbKey( descriptionPage );\n\t\t\tif ( !link ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst listItem = document.createElement( \"li\" );\n\t\t\tlistItem.innerHTML = link;\n\t\t\tlist.appendChild( listItem );\n\t\t} );\n\n\t\tthis.dom.showMessage( messageDiv.innerHTML, MessageType.MESSAGE );\n\t}\n\n\tprivate onOpenDialog(): void {\n\t\tthis.dom.setDialogChangelog( this.changeLogger.getMessages() );\n\t}\n\n\tprivate onImportFile( file: File ): void {\n\t\tconst reader = new FileReader();\n\t\treader.onload = async ( e ) => {\n\t\t\tconst xml = e.target.result as string;\n\t\t\ttry {\n\t\t\t\tawait this.bpmnTool.importXML( xml );\n\t\t\t\tthis.centerViewport();\n\t\t\t} catch ( err ) {\n\t\t\t\tconsole.error( 'Failed to import BPMN:', err );\n\t\t\t}\n\t\t};\n\t\treader.readAsText( file );\n\t}\n}\n\nnew CpdModeler(\n\tmw.config.get( \"cpdProcess\" ) as string,\n\tdocument.querySelector( \"[data-process]\" ),\n\tmw.config.get( \"cpdEnableLinting\" ) as boolean,\n);\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/CpdTool.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'CpdXml' is defined but never used.","line":2,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":2,"endColumn":14},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'bpmnTool' is forbidden.","line":10,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":10,"endColumn":20},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'dom' is forbidden.","line":12,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":12,"endColumn":15},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'api' is forbidden.","line":14,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":14,"endColumn":15},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'xml' is forbidden.","line":16,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":16,"endColumn":15},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'elementFactory' is forbidden.","line":18,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":18,"endColumn":26},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'diagramPage' is forbidden.","line":20,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":20,"endColumn":23},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'canvas' is forbidden.","line":22,"column":12,"nodeType":"Identifier","messageId":"forbidden","endLine":22,"endColumn":18}],"suppressedMessages":[],"errorCount":7,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import CpdDom from \"./helper/CpdDom\";\nimport CpdXml from \"./helper/CpdXml\";\nimport CpdApi from \"./helper/CpdApi\";\nimport { CpdElementFactory } from \"./helper/CpdElementFactory\";\nimport BaseViewer from \"bpmn-js/lib/BaseViewer\";\nimport Canvas from \"diagram-js/lib/core/Canvas\";\nimport Modeler from \"bpmn-js/lib/Modeler\";\n\nexport abstract class CpdTool {\n\tprotected bpmnTool: BaseViewer | Modeler;\n\n\tprotected dom: CpdDom;\n\n\tprotected api: CpdApi;\n\n\tprotected xml: string;\n\n\tprotected elementFactory: CpdElementFactory;\n\n\tprotected diagramPage: mw.Title;\n\n\tprotected canvas: Canvas;\n\n\tprotected constructor( process: string, container: HTMLElement, bpmnTool: BaseViewer ) {\n\t\tif ( !process ) {\n\t\t\tthrow new Error( mw.message( \"cpd-error-message-missing-config\", \"process\" ).text() );\n\t\t}\n\t\tif ( !container ) {\n\t\t\tthrow new Error( mw.message( \"cpd-error-message-missing-config\", \"container\" ).text() );\n\t\t}\n\n\t\tconst processNamespace = mw.config.get( \"cpdProcessNamespace\" ) as number;\n\t\tif ( !processNamespace ) {\n\t\t\tthrow new Error( mw.message( \"cpd-error-message-missing-config\", \"cpdProcessNamespace\" ).text() );\n\t\t}\n\n\t\tthis.bpmnTool = bpmnTool;\n\t\tthis.diagramPage = mw.Title.makeTitle( processNamespace, process );\n\n\t\tthis.dom = new CpdDom( container, this.diagramPage );\n\t\tthis.dom.on( \"centerViewport\", this.centerViewport.bind( this ) );\n\t\tthis.dom.on( \"exportDiagram\", this.onExportDiagram.bind( this ) );\n\n\t\tthis.api = new CpdApi( process );\n\t\tthis.api.on( CpdApi.STATUS_REQUEST_STARTED, this.requestStarted.bind( this ) );\n\t\tthis.api.on( CpdApi.STATUS_REQUEST_FINISHED, this.requestFinished.bind( this ) );\n\t\tthis.api.on( CpdApi.STATUS_REQUEST_FAILED, this.requestFailed.bind( this ) );\n\n\t\tthis.elementFactory = new CpdElementFactory( this.bpmnTool.get( \"elementRegistry\" ) );\n\t}\n\n\tprotected async attachToCanvas(): Promise<void> {\n\t\tthis.bpmnTool.attachTo( this.dom.getCanvas() );\n\n\t\ttry {\n\t\t\tawait this.bpmnTool.importXML( this.xml );\n\t\t} catch ( e ) {\n\t\t\tthis.dom.showError( e );\n\t\t}\n\n\t\tthis.canvas = this.bpmnTool.get( \"canvas\" ) as Canvas;\n\t\tthis.centerViewport();\n\t}\n\n\tprotected centerViewport(): void {\n\t\tthis.canvas.zoom( \"fit-viewport\", {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t} );\n\t}\n\n\tprotected throwError( message: string ): void {\n\t\tthis.dom.showError( message );\n\t\tthrow new Error( message );\n\t}\n\n\tprivate requestStarted(): void {\n\t\tthis.dom.setLoading( true );\n\t}\n\n\tprivate requestFinished( message: string = null ): void {\n\t\tif ( message ) {\n\t\t\tthis.dom.showSuccess( message );\n\t\t}\n\t\tthis.dom.setLoading( false );\n\t}\n\n\tprivate requestFailed( message: string ): void {\n\t\tthis.dom.setLoading( false );\n\t\tthis.throwError( message );\n\t}\n\n\tprivate onExportDiagram(): void {\n\t\tthis.bpmnTool.saveXML( { format: true } ).then( ( { xml } ) => {\n\t\t\tconst blob = new Blob( [ xml ], { type: 'application/bpmn20-xml' } );\n\t\t\tconst filename = this.diagramPage.getPrefixedText() + '.bpmn';\n\t\t\tconst url = URL.createObjectURL( blob );\n\t\t\tconst a = document.createElement( 'a' );\n\t\t\ta.href = url;\n\t\t\ta.download = filename;\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL( url );\n\t\t} );\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/CpdViewer.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'config' is defined but never used.","line":3,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":3,"endColumn":14},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'hook' is defined but never used.","line":5,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":5,"endColumn":12},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'eventBus' is forbidden.","line":23,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":23,"endColumn":18},{"ruleId":"default-param-last","severity":1,"message":"Default parameters should be last.","line":103,"column":62,"nodeType":"AssignmentPattern","messageId":"shouldBeLast","endLine":103,"endColumn":88}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { ModdleElement } from \"bpmn-js/lib/model/Types\";\n\nimport config from \"types-mediawiki/mw/config\";\n\nimport hook from \"types-mediawiki/mw/hook\";\nimport EventBus from \"diagram-js/lib/core/EventBus\";\nimport { CpdTool } from \"./CpdTool\";\nimport NavigatedViewer from \"bpmn-js/lib/NavigatedViewer\";\nimport CpdElementsRenderer from \"./renderer/CpdElementsRenderer\";\nimport CpdElement from \"./model/CpdElement\";\nimport { LoadDiagramResult } from \"./helper/CpdApi\";\nimport { CpdElementJson } from \"./helper/CpdElementFactory\";\nimport CpdXml from \"./helper/CpdXml\";\n\ninterface InternalEvent {\n\telement: ModdleElement;\n\tgfx: SVGElement;\n\toriginalEvent: Event;\n\ttype: string;\n}\n\nexport default class CpdViewer extends CpdTool {\n\tprivate eventBus: EventBus;\n\n\tpublic constructor( process: string, container: HTMLElement, revision: number | null = null ) {\n\t\tconst bpmnViewer = new NavigatedViewer( {\n\t\t\tadditionalModules: [\n\t\t\t\t{\n\t\t\t\t\t__init__: [ \"customRenderer\" ],\n\t\t\t\t\tcustomRenderer: [ \"type\", CpdElementsRenderer ],\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\t\tsuper( process, container, bpmnViewer );\n\n\t\tthis.dom.initDomElements( false );\n\t\tthis.dom.on( \"showXml\", this.onShowXml.bind( this ) );\n\n\t\tthis.eventBus = this.bpmnTool.get( \"eventBus\" );\n\n\t\tthis.renderDiagram( process, revision );\n\t}\n\n\tprivate async renderDiagram( process: string, revision: number | null = null ): Promise<void> {\n\t\tconst pageContent: LoadDiagramResult = await this.api.fetchPageContent( revision );\n\n\t\tpageContent.loadWarnings.forEach( ( warning: string ): void => {\n\t\t\tthis.dom.showWarning( warning );\n\t\t} );\n\n\t\tthis.xml = pageContent.xml;\n\n\t\tif ( !this.xml ) {\n\t\t\tthis.handleNotInitializedDiagram( process );\n\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.attachToCanvas();\n\n\t\tthis.dom.setSvgLink( pageContent.svgFile );\n\t\tthis.updateDescriptionPageElements( pageContent.elements, pageContent.revId );\n\t}\n\n\tprivate updateDescriptionPageElements( initialElements: CpdElementJson[], revId: number|null ): void {\n\t\tconst cpdElements = this.elementFactory.createDescriptionPageEligibleElements();\n\n\t\tconst findDescriptionPage = ( id: string ): string | null => {\n\t\t\tconst initialElement = initialElements.find(\n\t\t\t\t( element: CpdElementJson ): boolean => element.id === id,\n\t\t\t);\n\n\t\t\tif ( !initialElement ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( !initialElement.descriptionPage ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn initialElement.descriptionPage;\n\t\t};\n\n\t\tthis.eventBus.on( \"element.click\", ( e: InternalEvent ) => {\n\t\t\tconst descriptionPage = findDescriptionPage( e.element.id );\n\t\t\tif ( !descriptionPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.open( this.createDescriptionPageLink( descriptionPage, mw.config.get( \"wgPageName\" ), revId ), \"_blank\" );\n\t\t} );\n\n\t\tcpdElements.forEach( ( element: CpdElement ): void => {\n\t\t\tif ( !findDescriptionPage( element.id ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst visual = this.elementFactory.getSVGElement( element );\n\t\t\tthis.eventBus.fire( \"render.shape\", { gfx: visual, element } );\n\t\t} );\n\t}\n\n\tprivate createDescriptionPageLink( descriptionPage: string, returnToParam: string = \"\", revId: number|null ): string {\n\t\tconst params = {};\n\t\tif ( returnToParam !== \"\" ) {\n\t\t\tparams[ mw.config.get( \"cpdReturnToQueryParam\" ) as string ] = returnToParam;\n\t\t}\n\n\t\tif ( revId ) {\n\t\t\tparams[ mw.config.get( \"cpdRevisionQueryParam\" ) as string ] = revId;\n\t\t}\n\n\t\treturn mw.util.getUrl( descriptionPage, params );\n\t}\n\n\tprivate async onShowXml(): Promise<void> {\n\t\tconst syntaxHighlightedXml = await this.api.fetchSyntaxHighlightedXml( this.xml );\n\t\tthis.dom.showXml( syntaxHighlightedXml );\n\t\tCpdXml.insertPreToClipButton( this.xml );\n\t}\n\n\tprivate handleNotInitializedDiagram( process: string ): void {\n\t\tthis.dom.disableButtons();\n\n\t\tconst currentPage = mw.Title.newFromText( mw.config.get( \"wgPageName\" ) );\n\n\t\tif ( currentPage.getPrefixedDb() !== this.diagramPage.getPrefixedDb() ) {\n\t\t\tthis.dom.showWarning( mw.message(\n\t\t\t\t\"cpd-warning-message-diagram-not-initialized\",\n\t\t\t\tprocess.replace( /_/g, \" \" ),\n\t\t\t\tthis.diagramPage.getUrl( { action: 'edit' } ) ).text(),\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dom.showWarning( mw.message(\n\t\t\t\"cpd-warning-message-diagram-not-initialized-create-it\",\n\t\t\tthis.diagramPage.getUrl( { action: 'edit' } ) ).text(),\n\t\t);\n\t}\n}\n\nObject.keys( mw.config.get( \"cpdProcesses\" ) ).forEach( ( process: string ): void => {\n\tdocument.querySelectorAll( `[data-process=\"${ process }\"]` ).forEach( ( container: HTMLElement ): void => {\n\t\tconst revision = container.getAttribute( \"data-revision\" );\n\t\tnew CpdViewer( process, container, revision ? Number( revision ) : null );\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/CustomPaletteProvider.ts","messages":[{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition getPaletteEntries.","line":5,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":5,"endColumn":19,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[148,148],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[148,148],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[148,148],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":5,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":5,"endColumn":19},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":5,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":5,"endColumn":19}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import PaletteProvider from \"bpmn-js/lib/features/palette/PaletteProvider\";\n\nexport default class CustomPaletteProvider extends PaletteProvider {\n\n\tgetPaletteEntries() {\n\t\tconst originalEntries = super.getPaletteEntries();\n\n\t\t// ERM41167 Remove sub-processes from the palette\n\t\tdelete originalEntries[ \"create.subprocess-expanded\" ];\n\n\t\treturn originalEntries;\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/CustomReplaceMenuProvider.ts","messages":[{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition getPopupMenuEntries.","line":4,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":4,"endColumn":21,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[162,162],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[162,162],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[162,162],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":4,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":4,"endColumn":21},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":4,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":4,"endColumn":21},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Argument 'target' should be typed.","line":4,"column":23,"nodeType":"Identifier","messageId":"missingArgType","endLine":4,"endColumn":29}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import ReplaceMenuProvider from \"bpmn-js/lib/features/popup-menu/ReplaceMenuProvider\";\n\nexport default class CustomPaletteProvider extends ReplaceMenuProvider {\n\tgetPopupMenuEntries( target ) {\n\t\tconst entries = super.getPopupMenuEntries( target );\n\t\tdelete entries[ \"replace-with-collapsed-ad-hoc-subprocess\" ];\n\t\tdelete entries[ \"replace-with-expanded-subprocess\" ];\n\t\tdelete entries[ \"replace-with-ad-hoc-subprocess\" ];\n\t\tdelete entries[ \"replace-with-collapsed-subprocess\" ];\n\n\t\treturn entries;\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdApi.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'user' is defined but never used.","line":1,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":1,"endColumn":12},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'message' is defined but never used.","line":3,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":3,"endColumn":15},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'Api' is defined but never used.","line":5,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":5,"endColumn":11},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'STATUS_REQUEST_STARTED' is forbidden.","line":27,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":27,"endColumn":47},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'STATUS_REQUEST_FINISHED' is forbidden.","line":29,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":29,"endColumn":48},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'STATUS_REQUEST_FAILED' is forbidden.","line":31,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":31,"endColumn":46},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'process' is forbidden.","line":33,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":33,"endColumn":26},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'api' is forbidden.","line":35,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":35,"endColumn":22},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .fail","line":55,"column":10,"nodeType":"CallExpression","endLine":67,"endColumn":6},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":55,"column":47,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":55,"endColumn":50,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1461,1464],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1461,1464],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":62,"column":41,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":62,"endColumn":44,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1774,1777],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1774,1777],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .fail","line":77,"column":10,"nodeType":"CallExpression","endLine":110,"endColumn":6},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":84,"column":23,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":84,"endColumn":26,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[2395,2398],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[2395,2398],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":98,"column":41,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":98,"endColumn":44,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[2939,2942],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[2939,2942],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .fail","line":116,"column":10,"nodeType":"CallExpression","endLine":124,"endColumn":6},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":122,"column":41,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":122,"endColumn":44,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3741,3744],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3741,3744],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":127,"column":53,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":127,"endColumn":56,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3903,3906],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3903,3906],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]}],"suppressedMessages":[],"errorCount":5,"fatalErrorCount":0,"warningCount":12,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import user from \"types-mediawiki/mw/user\";\n\nimport message from \"types-mediawiki/mw/message\";\n\nimport Api from \"types-mediawiki/mw/Api\";\nimport EventEmitter from \"events\";\nimport { SaveSVGResult } from \"bpmn-js/lib/BaseViewer\";\nimport { CpdElementJson } from \"./CpdElementFactory\";\n\nexport interface SaveDiagramResult {\n\tdiagramPage: string;\n\tdescriptionPages: string[];\n\tsvgFile: string;\n\tsaveWarnings: string[];\n}\n\nexport interface LoadDiagramResult {\n\txml: string | null;\n\telements: CpdElementJson[];\n\tdescriptionPages: string[];\n\tsvgFile: string | null;\n\trevId: number | null;\n\tloadWarnings: string[];\n}\n\nexport default class CpdApi extends EventEmitter {\n\tpublic static readonly STATUS_REQUEST_STARTED: string = \"requestStarted\";\n\n\tpublic static readonly STATUS_REQUEST_FINISHED: string = \"requestFinished\";\n\n\tpublic static readonly STATUS_REQUEST_FAILED: string = \"requestFailed\";\n\n\tprivate readonly process: string;\n\n\tprivate readonly api: mw.Api;\n\n\tpublic constructor( process: string ) {\n\t\tsuper();\n\t\tthis.api = new mw.Api();\n\t\tthis.process = process;\n\t}\n\n\tpublic async fetchPageContent( revision: number | null = null ): Promise<LoadDiagramResult> {\n\t\tthis.emit( CpdApi.STATUS_REQUEST_STARTED );\n\n\t\tconst data = {\n\t\t\taction: \"cpd-load-diagram\",\n\t\t\tprocess: this.process,\n\t\t} as { action: string; process: string; token: string; revision?: number };\n\n\t\tif ( revision ) {\n\t\t\tdata.revision = revision;\n\t\t}\n\n\t\treturn this.api.get( data ).then( ( result: any ): LoadDiagramResult => {\n\t\t\tthis.emit( CpdApi.STATUS_REQUEST_FINISHED );\n\n\t\t\tresult.elements = result.elements.map( ( element ): CpdElementJson => JSON.parse( element ) );\n\t\t\tresult.descriptionPages = this.gatherDescriptionPages( result.elements );\n\n\t\t\treturn result;\n\t\t} ).fail( ( errorCode: string, error: any ) => {\n\t\t\tthis.emit(\n\t\t\t\tCpdApi.STATUS_REQUEST_FAILED,\n\t\t\t\tmw.message( \"cpd-api-load-diagram-error-message\", this.getErrorMessage( errorCode, error ) ).text(),\n\t\t\t);\n\t\t} );\n\t}\n\n\tpublic async saveDiagram(\n\t\txml: string,\n\t\tsvg: SaveSVGResult,\n\t\twithDescriptionPages: boolean,\n\t): Promise<SaveDiagramResult> {\n\t\tthis.emit( CpdApi.STATUS_REQUEST_STARTED );\n\n\t\treturn this.api.post( {\n\t\t\taction: \"cpd-save-diagram\",\n\t\t\tprocess: this.process,\n\t\t\txml: JSON.stringify( xml ),\n\t\t\tsvg: JSON.stringify( svg.svg ),\n\t\t\tsavedescriptionpages: withDescriptionPages,\n\t\t\ttoken: mw.user.tokens.get( \"csrfToken\" ),\n\t\t} ).then( ( result: any ): SaveDiagramResult => {\n\t\t\tconst elements = result.elements.map( ( element ): CpdElementJson => JSON.parse( element ) );\n\t\t\tresult.descriptionPages = this.gatherDescriptionPages( elements );\n\n\t\t\tif ( withDescriptionPages ) {\n\t\t\t\tthis.emit(\n\t\t\t\t\tCpdApi.STATUS_REQUEST_FINISHED,\n\t\t\t\t\tmw.message( \"cpd-api-save-description-pages-success-message\", result.descriptionPages.length ).text(),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.emit( CpdApi.STATUS_REQUEST_FINISHED );\n\t\t\t}\n\n\t\t\treturn result as SaveDiagramResult;\n\t\t} ).fail( ( errorCode: string, error: any ) => {\n\t\t\tif ( withDescriptionPages ) {\n\t\t\t\tthis.emit(\n\t\t\t\t\tCpdApi.STATUS_REQUEST_FAILED,\n\t\t\t\t\tmw.message( \"cpd-api-save-description-pages-error-message\", this.getErrorMessage( errorCode, error ) ).text(),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.emit(\n\t\t\t\t\tCpdApi.STATUS_REQUEST_FAILED,\n\t\t\t\t\tmw.message( \"cpd-api-save-diagram-error-message\", this.getErrorMessage( errorCode, error ) ).text(),\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\tpublic async fetchSyntaxHighlightedXml( xml: string ): Promise<string> {\n\t\tthis.emit( CpdApi.STATUS_REQUEST_STARTED );\n\n\t\treturn this.api.post( {\n\t\t\taction: \"cpd-syntax-highlight-xml\",\n\t\t\txml: JSON.stringify( xml ),\n\t\t} ).then( ( result: { highlightedXml: string } ) => {\n\t\t\tthis.emit( CpdApi.STATUS_REQUEST_FINISHED );\n\t\t\treturn result.highlightedXml;\n\t\t} ).fail( ( errorCode: string, error: any ) => {\n\t\t\tthis.emit( CpdApi.STATUS_REQUEST_FAILED, this.getErrorMessage( errorCode, error ) );\n\t\t} );\n\t}\n\n\tprivate getErrorMessage( errorCode: string, error: any ): string {\n\t\tif ( error?.error?.info ) {\n\t\t\treturn error.error.info;\n\t\t}\n\t\treturn errorCode === \"unknown\" ? error.error : errorCode;\n\t}\n\n\tprivate gatherDescriptionPages( elements: CpdElementJson[] ): string[] {\n\t\treturn elements\n\t\t\t.filter( ( element: CpdElementJson ): boolean => !!element.descriptionPage )\n\t\t\t.map( ( element: CpdElementJson ): string => element.descriptionPage );\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdChangeLogger.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'ELEMENT_CREATE' is forbidden.","line":18,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":18,"endColumn":40},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'ELEMENT_DELETE' is forbidden.","line":20,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":20,"endColumn":40},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'ELEMENT_RENAME' is forbidden.","line":22,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":22,"endColumn":40},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'DIAGRAM_CHANGED' is forbidden.","line":24,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":24,"endColumn":41},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'deletions' is forbidden.","line":26,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":26,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'creations' is forbidden.","line":28,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":28,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'renames' is forbidden.","line":30,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":30,"endColumn":17},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'factory' is forbidden.","line":32,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":32,"endColumn":17},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'svgRenderer' is forbidden.","line":34,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":34,"endColumn":21}],"suppressedMessages":[],"errorCount":9,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import EventBus from \"diagram-js/lib/core/EventBus\";\nimport CpdElement from \"../model/CpdElement\";\nimport EventEmitter from \"events\";\nimport { CpdElementFactory } from \"./CpdElementFactory\";\nimport CpdInlineSvgRenderer from \"./CpdInlineSvgRenderer\";\nimport { Shape } from \"bpmn-js/lib/model/Types\";\n\nexport interface MessageObject {\n\tmessage: string;\n\tonlyWithPages: boolean;\n}\n\nexport type ChangeLogMessages = {\n\t[ id: string ]: MessageObject[];\n};\n\nexport default class CpdChangeLogger extends EventEmitter {\n\tprivate static readonly ELEMENT_CREATE: string = \"commandStack.elements.create.postExecute\";\n\n\tprivate static readonly ELEMENT_DELETE: string = \"commandStack.elements.delete.preExecute\";\n\n\tprivate static readonly ELEMENT_RENAME: string = \"commandStack.element.updateLabel.executed\";\n\n\tprivate static readonly DIAGRAM_CHANGED: string = \"commandStack.changed\";\n\n\tprivate deletions: ChangeLogMessages;\n\n\tprivate creations: ChangeLogMessages;\n\n\tprivate renames: ChangeLogMessages;\n\n\tprivate factory: CpdElementFactory;\n\n\tprivate svgRenderer: CpdInlineSvgRenderer;\n\n\tpublic constructor(\n\t\teventBus: EventBus,\n\t\tfactory: CpdElementFactory,\n\t\tsvgRenderer: CpdInlineSvgRenderer,\n\t) {\n\t\tsuper();\n\n\t\teventBus.on( CpdChangeLogger.ELEMENT_CREATE, this.onElementsChanged.bind(\n\t\t\tthis,\n\t\t\tCpdChangeLogger.ELEMENT_CREATE,\n\t\t) );\n\t\teventBus.on( CpdChangeLogger.ELEMENT_DELETE, this.onElementsChanged.bind(\n\t\t\tthis,\n\t\t\tCpdChangeLogger.ELEMENT_DELETE,\n\t\t) );\n\t\teventBus.on( CpdChangeLogger.ELEMENT_RENAME, this.onElementChanged.bind(\n\t\t\tthis,\n\t\t\tCpdChangeLogger.ELEMENT_RENAME,\n\t\t) );\n\t\teventBus.on( CpdChangeLogger.DIAGRAM_CHANGED, this.onDiagramChanged.bind( this ) );\n\n\t\tthis.svgRenderer = svgRenderer;\n\t\tthis.factory = factory;\n\n\t\tthis.reset();\n\t}\n\n\tpublic reset(): void {\n\t\tthis.deletions = {};\n\t\tthis.creations = {};\n\t\tthis.renames = {};\n\t}\n\n\tpublic getMessages(): ChangeLogMessages {\n\t\tthis.sanitizeMessages();\n\t\treturn this.mergeMessages( this.creations, this.deletions, this.renames );\n\t}\n\n\tprivate onElementChanged( type: string, event: Event ): void {\n\t\tconst shape = event.context.element;\n\n\t\tif ( !shape ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst element = this.factory.createCpdElement( shape );\n\n\t\tif ( type === CpdChangeLogger.ELEMENT_RENAME ) {\n\t\t\tthis.onElementRenamed( element, event );\n\t\t}\n\t}\n\n\tprivate onElementsChanged( type: string, event: Event ): void {\n\t\tconst shapes = event.context.elements;\n\n\t\tif ( !shapes ) {\n\t\t\treturn;\n\t\t}\n\n\t\tshapes.forEach( ( shape: Shape ) => {\n\t\t\tconst element = this.factory.createCpdElement( shape );\n\n\t\t\tif ( type === CpdChangeLogger.ELEMENT_DELETE ) {\n\t\t\t\tthis.onElementDeleted( element );\n\t\t\t}\n\n\t\t\tif ( type === CpdChangeLogger.ELEMENT_CREATE ) {\n\t\t\t\tthis.onElementCreated( element );\n\t\t\t}\n\t\t} );\n\t}\n\n\tprivate onElementCreated( element: CpdElement ): void {\n\t\t// Dont add the element if it has been already added\n\t\tif ( this.includes( element, this.creations ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.appendMessage(\n\t\t\tthis.creations,\n\t\t\telement,\n\t\t\tmw.message( \"cpd-shape-creation-message\", this.svgRenderer.getSVGFromElement( element ) ).plain(),\n\t\t);\n\t}\n\n\tprivate onElementDeleted( element: CpdElement ): void {\n\t\t// Dont add the element if it was created in the same session\n\t\tif ( this.includes( element, this.creations ) ) {\n\t\t\tdelete this.creations[ element.id ];\n\t\t\treturn;\n\t\t}\n\n\t\t// Dont add the element if it already added\n\t\tif ( this.includes( element, this.deletions ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.appendMessage( this.deletions, element, mw.message( \"cpd-shape-deletion-message\", this.svgRenderer.getSVGFromElement( element ) ).plain() );\n\t}\n\n\tprivate onElementRenamed( element: CpdElement, event: Event ): void {\n\t\tif ( this.includes( element, this.deletions ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newLabel = event.context.newLabel;\n\n\t\tif ( !newLabel ) {\n\t\t\tthis.appendMessage(\n\t\t\t\tthis.renames,\n\t\t\t\telement,\n\t\t\t\tmw.message( \"cpd-shape-remove-label-message\", this.svgRenderer.getSVGFromElement( element ) ).plain(),\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.appendMessage( this.renames, element, mw.message( \"cpd-shape-rename-message\", this.svgRenderer.getSVGFromElement( element ), newLabel ).plain() );\n\t}\n\n\tprivate appendMessage(\n\t\tmessages: ChangeLogMessages,\n\t\telement: CpdElement,\n\t\tmessage: string,\n\t\tonlyWithPages: boolean = false,\n\t): void {\n\t\tif ( !messages[ element.id ] ) {\n\t\t\tmessages[ element.id ] = [];\n\t\t}\n\n\t\tmessages[ element.id ].push( {\n\t\t\tmessage: message,\n\t\t\tonlyWithPages: onlyWithPages,\n\t\t} );\n\t}\n\n\tprivate onDiagramChanged(): void {\n\t\tthis.emit( \"diagramChanged\" );\n\t}\n\n\tprivate includes( element: CpdElement, list: ChangeLogMessages ): boolean {\n\t\treturn list[ element.id ] !== undefined;\n\t}\n\n\tprivate mergeMessages( ...messages: ChangeLogMessages[] ): ChangeLogMessages {\n\t\tconst mergedMessages: ChangeLogMessages = {};\n\n\t\tmessages.forEach( ( obj ) => {\n\t\t\tObject.keys( obj ).forEach( ( elementId ) => {\n\t\t\t\tif ( !mergedMessages[ elementId ] ) {\n\t\t\t\t\tmergedMessages[ elementId ] = [];\n\t\t\t\t}\n\n\t\t\t\tmergedMessages[ elementId ] = mergedMessages[ elementId ].concat(\n\t\t\t\t\tobj[ elementId ],\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\n\t\treturn mergedMessages;\n\t}\n\n\tprivate sanitizeMessages(): void {\n\t\t// If element has been deleted, it should not be in creations and renames\n\t\tObject.keys( this.deletions ).forEach( ( key ) => {\n\t\t\tdelete this.creations[ key ];\n\t\t\tdelete this.renames[ key ];\n\t\t} );\n\n\t\t// Remove duplicates\n\t\tObject.keys( this.creations ).forEach( ( key ) => {\n\t\t\tthis.creations[ key ] = this.creations[ key ].filter( ( message, index, self ) => self.findIndex( ( m ) => m.message === message.message ) === index );\n\t\t} );\n\n\t\tObject.keys( this.deletions ).forEach( ( key ) => {\n\t\t\tthis.deletions[ key ] = this.deletions[ key ].filter( ( message, index, self ) => self.findIndex( ( m ) => m.message === message.message ) === index );\n\t\t} );\n\n\t\tObject.keys( this.renames ).forEach( ( key ) => {\n\t\t\tthis.renames[ key ] = this.renames[ key ].filter( ( message, index, self ) => self.findIndex( ( m ) => m.message === message.message ) === index );\n\t\t} );\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdDom.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'util' is defined but never used.","line":3,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":3,"endColumn":12},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'Title' is defined but never used.","line":5,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":5,"endColumn":13},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'container' is forbidden.","line":39,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":39,"endColumn":28},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'diagramPage' is forbidden.","line":41,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":41,"endColumn":30},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'messageBox' is forbidden.","line":43,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":43,"endColumn":20},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'saveDialog' is forbidden.","line":45,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":45,"endColumn":20},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'openDialogBtn' is forbidden.","line":47,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":47,"endColumn":23},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'cancelBtn' is forbidden.","line":49,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":49,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'showXmlBtn' is forbidden.","line":51,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":51,"endColumn":20},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'showDiagramBtn' is forbidden.","line":53,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":53,"endColumn":24},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'centerViewportBtn' is forbidden.","line":55,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":55,"endColumn":27},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'exportBtn' is forbidden.","line":57,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":57,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'importBtn' is forbidden.","line":59,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":59,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'groupToolBtn' is forbidden.","line":61,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":61,"endColumn":22},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'fileInput' is forbidden.","line":63,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":63,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'svgFileLink' is forbidden.","line":65,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":65,"endColumn":21},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'diagramPageLink' is forbidden.","line":67,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":67,"endColumn":25},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'canvas' is forbidden.","line":69,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":69,"endColumn":16},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'xmlContainer' is forbidden.","line":71,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":71,"endColumn":22},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'loadingAnimation' is forbidden.","line":73,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":73,"endColumn":26},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'viewMode' is forbidden.","line":75,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":75,"endColumn":18},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'isEdit' is forbidden.","line":77,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":77,"endColumn":16},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'openDialogOptions' is forbidden.","line":79,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":79,"endColumn":27},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":452,"column":5,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":452,"endColumn":18,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[11886,11899],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]},{"ruleId":"no-shadow","severity":2,"message":"'item' is already declared in the upper scope on line 408 column 16.","line":453,"column":47,"nodeType":"Identifier","messageId":"noShadow","endLine":453,"endColumn":63},{"ruleId":"mediawiki/class-doc","severity":1,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":481,"column":47,"nodeType":"CallExpression","endLine":481,"endColumn":81},{"ruleId":"mediawiki/class-doc","severity":1,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":482,"column":50,"nodeType":"CallExpression","endLine":482,"endColumn":87}],"suppressedMessages":[],"errorCount":22,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import EventEmitter from \"events\";\n// noinspection ES6UnusedImports\nimport util from \"types-mediawiki/mw/util\";\n// noinspection ES6UnusedImports\nimport Title from \"types-mediawiki/mw/Title\";\nimport CpdSaveDialog, { OpenDialogOptions } from \"./CpdSaveDialog\";\nimport Button from \"../oojs-ui/Button\";\nimport ShowXmlButton from \"../oojs-ui/ShowXmlButton\";\nimport LinkButton from \"../oojs-ui/LinkButton\";\nimport OpenDialogButton from \"../oojs-ui/OpenDialogButton\";\nimport CancelButton from \"../oojs-ui/CancelButton\";\nimport DiagramPageLinkButton from \"../oojs-ui/DiagramPageLinkButton\";\nimport SvgFileLinkButton from \"../oojs-ui/SvgFileLinkButton\";\nimport { ChangeLogMessages } from \"./CpdChangeLogger\";\nimport CenterViewportButton from \"../oojs-ui/CenterViewportButton\";\nimport { MessageType } from \"../oojs-ui/SaveDialog\";\nimport ShowDiagramButton from \"../oojs-ui/ShowDiagramButton\";\nimport ExportButton from \"../oojs-ui/ExportButton\";\nimport ImportButton from \"../oojs-ui/ImportButton\";\nimport GroupTool from \"../oojs-ui/GroupTool\";\nimport ToolGroupSetupMap = OO.ui.Toolbar.ToolGroupSetupMap;\nimport HtmlSnippet = OO.ui.HtmlSnippet;\n\ninterface HtmlElement extends HTMLElement {\n\thide: () => void;\n\tshow: () => void;\n\taddClass: ( className: string ) => void;\n\tremoveClass: ( className: string ) => void;\n}\n\nenum ViewModes {\n\tModeler,\n\tXml,\n}\n\nconst NARROW_WIDTH = 300;\n\nexport default class CpdDom extends EventEmitter {\n\tprivate readonly container: HTMLElement;\n\n\tprivate readonly diagramPage: mw.Title;\n\n\tprivate messageBox: HtmlElement;\n\n\tprivate saveDialog: CpdSaveDialog | undefined;\n\n\tprivate openDialogBtn: Button | undefined;\n\n\tprivate cancelBtn: Button | undefined;\n\n\tprivate showXmlBtn: ShowXmlButton;\n\n\tprivate showDiagramBtn: ShowDiagramButton;\n\n\tprivate centerViewportBtn: CenterViewportButton;\n\n\tprivate exportBtn: ExportButton;\n\n\tprivate importBtn: ImportButton;\n\n\tprivate groupToolBtn: GroupTool;\n\n\tprivate fileInput: HTMLInputElement | undefined;\n\n\tprivate svgFileLink: LinkButton;\n\n\tprivate diagramPageLink: LinkButton | undefined;\n\n\tprivate canvas: HtmlElement;\n\n\tprivate xmlContainer: HtmlElement;\n\n\tprivate loadingAnimation: HtmlElement;\n\n\tprivate viewMode: ViewModes;\n\n\tprivate isEdit: boolean = false;\n\n\tprivate openDialogOptions: OpenDialogOptions = null;\n\n\tpublic constructor( container: HTMLElement, diagramPage: mw.Title ) {\n\t\tsuper();\n\t\tthis.container = container;\n\t\tthis.diagramPage = diagramPage;\n\t}\n\n\tpublic onSave( withDescriptionPages: boolean = false ): void {\n\t\tthis.emit( \"save\", withDescriptionPages );\n\t}\n\n\tpublic onSaveDone(): void {\n\t\tthis.emit( \"saveDone\" );\n\t}\n\n\tpublic onCancel(): void {\n\t\tthis.emit( \"cancel\" );\n\t}\n\n\tpublic onEdit(): void {\n\t\tthis.emit( \"edit\" );\n\t}\n\n\tpublic onOpenDialog(): void {\n\t\tthis.focusOnCanvas();\n\t\tthis.emit( \"openDialog\" );\n\t\tthis.saveDialog?.open( this.openDialogOptions );\n\t}\n\n\tpublic toggleView(): void {\n\t\tif ( this.viewMode === ViewModes.Modeler ) {\n\t\t\tthis.viewMode = ViewModes.Xml;\n\t\t\tthis.emit( \"showXml\" );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.showCanvas();\n\t\tthis.viewMode = ViewModes.Modeler;\n\t}\n\n\tpublic showXml( xml: string ): void {\n\t\tthis.container.classList.add( \"cpd-xml\" );\n\t\tthis.xmlContainer.innerHTML = xml;\n\t\tthis.xmlContainer.show();\n\t\tthis.canvas.hide();\n\t\tthis.showXmlBtn?.setActive( true );\n\t\tthis.showDiagramBtn?.setActive( false );\n\t\tthis.centerViewportBtn?.setDisabled( true );\n\t}\n\n\tprivate showCanvas(): void {\n\t\tthis.container.classList.remove( \"cpd-xml\" );\n\t\tthis.xmlContainer.hide();\n\t\tthis.canvas.show();\n\t\tthis.showXmlBtn?.setActive( false );\n\t\tthis.showDiagramBtn?.setActive( true );\n\t\tthis.centerViewportBtn?.setDisabled( false );\n\t}\n\n\tprivate centerViewport(): void {\n\t\tthis.emit( \"centerViewport\" );\n\t}\n\n\tprivate exportDiagram(): void {\n\t\tthis.emit( \"exportDiagram\" );\n\t}\n\n\tprivate importDiagram(): void {\n\t\tthis.fileInput?.click();\n\t}\n\n\tpublic setLoading( loading: boolean ): void {\n\t\tif ( loading ) {\n\t\t\tthis.saveDialog?.pushPending();\n\t\t\tthis.disableButtons();\n\t\t\tthis.loadingAnimation?.show();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.saveDialog?.popPending();\n\t\tthis.enableButtons();\n\t\tthis.showDiagramBtn?.setActive( true );\n\t\tthis.loadingAnimation?.hide();\n\t}\n\n\tpublic getCanvas(): HTMLElement {\n\t\treturn this.canvas;\n\t}\n\n\tpublic setSvgLink( svgFile: string | null ): void {\n\t\tthis.svgFileLink?.setLink( svgFile );\n\t}\n\n\tpublic setOpenDialogOptions( options: OpenDialogOptions ): void {\n\t\tthis.openDialogOptions = options;\n\t}\n\n\tpublic enableButtons(): void {\n\t\tthis.openDialogBtn?.setDisabled( false );\n\t\tthis.cancelBtn?.setDisabled( false );\n\t\tthis.showXmlBtn?.setDisabled( false );\n\t\tthis.showDiagramBtn?.setDisabled( false );\n\t\tthis.centerViewportBtn?.setDisabled( false );\n\t\tthis.exportBtn?.setDisabled( false );\n\t\tthis.importBtn?.setDisabled( false );\n\t\tthis.groupToolBtn?.setDisabled( false );\n\t}\n\n\tpublic disableButtons(): void {\n\t\tthis.openDialogBtn?.setDisabled( true );\n\t\tthis.cancelBtn?.setDisabled( true );\n\t\tthis.showXmlBtn?.setDisabled( true );\n\t\tthis.showDiagramBtn?.setDisabled( true );\n\t\tthis.centerViewportBtn?.setDisabled( true );\n\t\tthis.exportBtn?.setDisabled( true );\n\t\tthis.importBtn?.setDisabled( true );\n\t\tthis.groupToolBtn?.setDisabled( true );\n\t}\n\n\tpublic disableSaveButton( isValid: boolean ): void {\n\t\tthis.openDialogBtn?.setDisabled( !isValid );\n\t}\n\n\tpublic setDialogChangelog( messages: ChangeLogMessages ): void {\n\t\tthis.saveDialog?.setChangelog( messages );\n\t}\n\n\tpublic showDialogChangesPanel(): void {\n\t\tconst saveDialog = this.saveDialog;\n\n\t\tif ( !saveDialog ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !saveDialog.hasChanges() ) {\n\t\t\tthis.saveDialog.close();\n\n\t\t\treturn;\n\t\t}\n\n\t\tsaveDialog.showChanges();\n\t}\n\n\tpublic showMessage( message: string | null, type: MessageType = MessageType.MESSAGE ): void {\n\t\tif ( !message ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.isEdit ) {\n\t\t\tif ( this.saveDialog?.isOpened() ) {\n\t\t\t\tthis.saveDialog?.addPostSaveMessage( message, type );\n\t\t\t\tthis.showDialogChangesPanel();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst messageWidget = new OO.ui.MessageWidget( {\n\t\t\ttype: type,\n\t\t\tinline: true,\n\t\t\tlabel: new HtmlSnippet( message ),\n\t\t} );\n\n\t\tthis.messageBox.append( messageWidget.$element.get( 0 ) );\n\t\tthis.messageBox.show();\n\t}\n\n\tpublic showSuccess( message: string ): void {\n\t\tthis.showMessage( message, MessageType.MESSAGE );\n\t}\n\n\tpublic showWarning( message: string ): void {\n\t\tthis.showMessage( message, MessageType.WARNING );\n\t}\n\n\tpublic showError( message: string ): void {\n\t\tthis.diagramPageLink?.setDisabled( true );\n\t\tthis.disableButtons();\n\n\t\tif ( this.isEdit ) {\n\t\t\tif ( this.saveDialog?.isOpened() ) {\n\t\t\t\tthis.saveDialog?.addError( message );\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst messageWidget = new OO.ui.MessageWidget( {\n\t\t\ttype: 'error',\n\t\t\tinline: true,\n\t\t\tlabel: new HtmlSnippet( message ),\n\t\t} );\n\n\t\tthis.messageBox.append( messageWidget.$element.get( 0 ) );\n\t\tthis.messageBox.show();\n\t}\n\n\tpublic initDomElements( isEdit: boolean ): void {\n\t\tthis.isEdit = isEdit;\n\n\t\tthis.messageBox = document.createElement( \"div\" ) as unknown as HtmlElement;\n\t\tthis.declareMethods( this.messageBox );\n\t\tthis.messageBox.addClass( \"cpd-message-box\" );\n\t\tthis.messageBox.hide();\n\n\t\tthis.canvas = document.createElement( \"div\" ) as unknown as HtmlElement;\n\t\tthis.declareMethods( this.canvas );\n\t\tthis.canvas.addClass( \"cpd-canvas\" );\n\n\t\tthis.xmlContainer = document.createElement( \"div\" ) as unknown as HtmlElement;\n\t\tthis.declareMethods( this.xmlContainer );\n\n\t\tthis.loadingAnimation = document.getElementById( 'cpd-loading' ) as unknown as HtmlElement;\n\t\tthis.declareMethods( this.loadingAnimation );\n\n\t\t// Reset container if it was already initialized\n\t\tthis.container.textContent = \"\";\n\t\tconst showToolbar = this.container.dataset.toolbar;\n\t\tif ( showToolbar ) {\n\t\t\tconst toolbar = this.createToolbar();\n\t\t\tthis.container.append( toolbar );\n\t\t}\n\n\t\tthis.container.append(\n\t\t\tthis.loadingAnimation,\n\t\t\tthis.messageBox,\n\t\t\tthis.canvas,\n\t\t\tthis.xmlContainer,\n\t\t);\n\n\t\tif ( this.isEdit ) {\n\t\t\t// Create hidden file input for import\n\t\t\tthis.fileInput = this.createFileInput();\n\t\t\tthis.container.append( this.fileInput );\n\t\t}\n\n\t\tthis.viewMode = ViewModes.Modeler;\n\t}\n\n\tprivate createFileInput(): HTMLInputElement {\n\t\tconst fileInput = document.createElement( \"input\" );\n\t\tfileInput.type = \"file\";\n\t\tfileInput.accept = \".bpmn\";\n\t\tfileInput.style.display = \"none\";\n\n\t\tfileInput.addEventListener( 'change', ( event ) => {\n\t\t\tconst input = event.target as HTMLInputElement;\n\t\t\tconst file: File | undefined = input.files?.[ 0 ];\n\n\t\t\tif ( !file ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.emit( \"importFile\", file );\n\t\t} );\n\n\t\treturn fileInput;\n\t}\n\n\tprivate createToolbar(): HtmlElement {\n\t\tconst toolFactory = new OO.ui.ToolFactory();\n\t\tconst toolGroupFactory = new OO.ui.ToolGroupFactory();\n\t\tconst toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );\n\n\t\tconst primaryBarConfig = {\n\t\t\tname: \"primary\",\n\t\t\ttype: \"bar\",\n\t\t\tinclude: [\n\t\t\t\tOpenDialogButton.static.name,\n\t\t\t],\n\t\t\talign: \"after\",\n\t\t};\n\n\t\tconst secondaryBarConfig = {\n\t\t\tname: \"secondary\",\n\t\t\ticon: \"ellipsis\",\n\t\t\ttype: \"\",\n\t\t\talign: \"\",\n\t\t\tinclude: [\n\t\t\t\tCancelButton.static.name,\n\t\t\t\tDiagramPageLinkButton.static.name,\n\t\t\t\tSvgFileLinkButton.static.name,\n\t\t\t\tCenterViewportButton.static.name,\n\t\t\t\tShowXmlButton.static.name,\n\t\t\t\tShowDiagramButton.static.name,\n\t\t\t],\n\t\t};\n\n\t\ttoolFactory.register( CenterViewportButton );\n\t\ttoolFactory.register( ExportButton );\n\n\t\tif ( !this.isEdit ) {\n\t\t\ttoolFactory.register( SvgFileLinkButton );\n\t\t\ttoolFactory.register( ShowXmlButton );\n\t\t\ttoolFactory.register( ShowDiagramButton );\n\n\t\t\tconst withDiagramPageLink = mw.config.get( \"wgPageName\" ) !== this.diagramPage.getPrefixedDb();\n\t\t\tif ( withDiagramPageLink ) {\n\t\t\t\ttoolFactory.register( DiagramPageLinkButton );\n\t\t\t}\n\n\t\t\tsecondaryBarConfig.type = \"list\";\n\t\t\tsecondaryBarConfig.align = \"after\";\n\t\t\tsecondaryBarConfig.include.unshift( ExportButton.static.name );\n\t\t}\n\n\t\tif ( this.isEdit ) {\n\t\t\tthis.saveDialog = new CpdSaveDialog();\n\t\t\tthis.saveDialog.on( \"save\", this.onSave.bind( this ) );\n\t\t\tthis.saveDialog.on( \"saveDone\", this.onSaveDone.bind( this ) );\n\n\t\t\ttoolFactory.register( OpenDialogButton );\n\t\t\ttoolFactory.register( CancelButton );\n\t\t\ttoolFactory.register( ImportButton );\n\t\t\ttoolFactory.register( GroupTool );\n\n\t\t\tsecondaryBarConfig.type = \"bar\";\n\t\t\tsecondaryBarConfig.align = \"before\";\n\t\t\tsecondaryBarConfig.include.push( GroupTool.static.name );\n\t\t}\n\n\t\ttoolbar.setup( [ primaryBarConfig as ToolGroupSetupMap, secondaryBarConfig as ToolGroupSetupMap ] );\n\n\t\t[\n\t\t\t...toolbar.getToolGroupByName( \"primary\" ).getItems(),\n\t\t\t...toolbar.getToolGroupByName( \"secondary\" ).getItems(),\n\t\t].forEach( ( item: OO.ui.Tool ): void => {\n\t\t\tif ( item.constructor === OpenDialogButton ) {\n\t\t\t\tthis.openDialogBtn = item;\n\t\t\t\tthis.openDialogBtn.onSelect = this.onOpenDialog.bind( this );\n\t\t\t\tthis.openDialogBtn.setDisabled( true );\n\t\t\t}\n\n\t\t\tif ( item.constructor === CancelButton ) {\n\t\t\t\tthis.cancelBtn = item;\n\t\t\t\tthis.cancelBtn.onSelect = this.onCancel.bind( this );\n\t\t\t}\n\n\t\t\tif ( item.constructor === ShowXmlButton ) {\n\t\t\t\tthis.showXmlBtn = item;\n\t\t\t\tthis.showXmlBtn.onSelect = this.toggleView.bind( this );\n\t\t\t}\n\n\t\t\tif ( item.constructor === ShowDiagramButton ) {\n\t\t\t\tthis.showDiagramBtn = item;\n\t\t\t\tthis.showDiagramBtn.onSelect = this.toggleView.bind( this );\n\t\t\t}\n\n\t\t\tif ( item.constructor === CenterViewportButton ) {\n\t\t\t\tthis.centerViewportBtn = item;\n\t\t\t\tthis.centerViewportBtn.onSelect = this.centerViewport.bind( this );\n\t\t\t}\n\n\t\t\tif ( item.constructor === DiagramPageLinkButton ) {\n\t\t\t\tthis.diagramPageLink = item;\n\t\t\t\tthis.diagramPageLink.setLink( this.diagramPage.getUrl( {} ) );\n\t\t\t}\n\n\t\t\tif ( item.constructor === SvgFileLinkButton ) {\n\t\t\t\tthis.svgFileLink = item;\n\t\t\t\tthis.svgFileLink.setDisabled( true );\n\t\t\t}\n\n\t\t\tif ( item.constructor === ExportButton ) {\n\t\t\t\tthis.exportBtn = item;\n\t\t\t\tthis.exportBtn.onSelect = this.exportDiagram.bind( this );\n\t\t\t}\n\n\t\t\tif ( item.constructor === GroupTool ) {\n\t\t\t\tthis.groupToolBtn = item;\n\t\t\t\t// @ts-ignore\n\t\t\t\titem.innerToolGroup.getItems().forEach( ( item: OO.ui.Tool ): void => {\n\t\t\t\t\tif ( item.constructor === ExportButton ) {\n\t\t\t\t\t\tthis.exportBtn = item;\n\t\t\t\t\t\tthis.exportBtn.onSelect = this.exportDiagram.bind( this );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( item.constructor === ImportButton ) {\n\t\t\t\t\t\tthis.importBtn = item;\n\t\t\t\t\t\tthis.importBtn.onSelect = this.importDiagram.bind( this );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\ttoolbar.initialize();\n\n\t\tif ( this.container.clientWidth < NARROW_WIDTH ) {\n\t\t\ttoolbar.setNarrow( true );\n\t\t} else {\n\t\t\ttoolbar.setNarrow( false );\n\t\t}\n\n\t\treturn toolbar.$element.get( 0 ) as HtmlElement;\n\t}\n\n\tprivate declareMethods( element: HtmlElement ): void {\n\t\telement.hide = () => element.classList.add( \"hidden\" );\n\t\telement.show = () => element.classList.remove( \"hidden\" );\n\t\telement.addClass = ( className: string ) => element.classList.add( className );\n\t\telement.removeClass = ( className: string ) => element.classList.remove( className );\n\t}\n\n\tprivate focusOnCanvas(): void {\n\t\tif ( this.canvas ) {\n\t\t\tconst svg = this.canvas.querySelector( ':scope svg' );\n\t\t\tif ( svg instanceof SVGElement ) {\n\t\t\t\tsvg.dispatchEvent( new MouseEvent( 'click', { bubbles: true, cancelable: true } ) );\n\t\t\t}\n\t\t}\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdElementFactory.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'subpageTypes' is forbidden.","line":16,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":16,"endColumn":31},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'elementRegistry' is forbidden.","line":18,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":18,"endColumn":25}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import ElementRegistry, {\n\tElementRegistryFilterCallback,\n} from \"diagram-js/lib/core/ElementRegistry\";\nimport { ElementLike } from \"diagram-js/lib/core/Types\";\nimport { Element, Shape } from \"bpmn-js/lib/model/Types\";\nimport CpdElement from \"../model/CpdElement\";\n\nexport interface CpdElementJson {\n\tid: string;\n\ttype: string;\n\tlabel: string;\n\tdescriptionPage?: string;\n}\n\nexport class CpdElementFactory {\n\tprivate readonly subpageTypes: string[];\n\n\tprivate elementRegistry: ElementRegistry;\n\n\tpublic constructor( elementRegistry: ElementRegistry ) {\n\t\tthis.elementRegistry = elementRegistry;\n\t\tthis.subpageTypes = Object.keys( mw.config.get( \"cpdDedicatedSubpageTypes\" ) ) as string[];\n\n\t\tif ( !this.subpageTypes ) {\n\t\t\tthrow new Error( mw.message(\n\t\t\t\t\"cpd-error-message-missing-config\",\n\t\t\t\t\"cpdDedicatedSubpageTypes\" ).text(),\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic createCpdElement( data: Shape | Element ): CpdElement {\n\t\treturn CpdElement.init( data );\n\t}\n\n\tpublic createDescriptionPageEligibleElements(): CpdElement[] {\n\t\treturn this.findDescriptionPageEligibleElements( this.subpageTypes ).map(\n\t\t\t( element: Element ): CpdElement => this.createCpdElement( element ) );\n\t}\n\n\tpublic getSVGElement( element: CpdElement ): SVGElement {\n\t\treturn this.elementRegistry.getGraphics( element.bpmnElement );\n\t}\n\n\tprivate findDescriptionPageEligibleElements( types: string[] ): Element[] {\n\t\tconst filter: ElementRegistryFilterCallback = ( element: ElementLike ) => types.includes( element.type );\n\t\treturn this.elementRegistry.filter( filter ) as unknown as Element[];\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdInlineSvgRenderer.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'elementRegistry' is forbidden.","line":6,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":6,"endColumn":25},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'largeTypes' is forbidden.","line":8,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":8,"endColumn":20}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import ElementRegistry from \"diagram-js/lib/core/ElementRegistry\";\nimport CpdElement from \"../model/CpdElement\";\n\nexport default class CpdInlineSvgRenderer {\n\n\tprivate elementRegistry: ElementRegistry;\n\n\tprivate largeTypes: string[] = [ \"bpmn:Participant\", \"bpmn:SubProcess\" ];\n\n\tpublic constructor( elementRegistry: ElementRegistry ) {\n\t\tthis.elementRegistry = elementRegistry;\n\t}\n\n\tpublic getSVGFromElement( element: CpdElement ): string {\n\t\tconst svgElement = this.elementRegistry.getGraphics( element.bpmnElement );\n\n\t\tif ( !svgElement ) {\n\t\t\treturn element.id;\n\t\t}\n\n\t\tconst svgElements = svgElement.getElementsByClassName( \"djs-visual\" )[ 0 ];\n\t\tlet width = 0;\n\t\tlet height = 0;\n\t\tlet result = \"\";\n\t\tfor ( let i = 0; i < svgElements.children.length; i++ ) {\n\t\t\tconst el = svgElements.children[ i ];\n\t\t\tconst boundingClientRect = el.getBoundingClientRect();\n\t\t\twidth = Math.max( width, boundingClientRect.width );\n\t\t\theight = Math.max( height, boundingClientRect.height );\n\t\t\tconst clone = el.cloneNode( true ) as SVGElement;\n\t\t\tresult += clone.outerHTML;\n\t\t}\n\n\t\t// Add spacing\n\t\twidth += 15;\n\t\theight += 15;\n\n\t\t// ERM39844 remove the \"bpmn:\" prefix from the type\n\t\tconst type = element.type.replace( \"bpmn:\", \"\" );\n\n\t\tconst largeCls = this.largeTypes.includes( type ) ? \"large\" : \"\";\n\n\t\treturn `<span class=\"cpd-inline-svg ${ largeCls }\" title=\"${ type + \" \" + element.id }\">${ type } <svg viewBox=\"-5 -5 ${ width } ${ height }\">${ result }</svg></span>`;\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdLinker.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdSaveDialog.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'dialog' is forbidden.","line":10,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":10,"endColumn":25},{"ruleId":"es-x/no-nullish-coalescing-operators","severity":1,"message":"ES2020 nullish coalescing operators are forbidden.","line":48,"column":74,"nodeType":"Punctuator","messageId":"forbidden","endLine":48,"endColumn":76},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":73,"column":3,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":73,"endColumn":16,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[1975,1988],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import EventEmitter from \"events\";\nimport SaveDialog, { MessageType, Mode } from \"../oojs-ui/SaveDialog\";\nimport { ChangeLogMessages } from \"./CpdChangeLogger\";\n\nexport interface OpenDialogOptions {\n\tsavePagesCheckboxState: boolean;\n}\n\nexport default class CpdSaveDialog extends EventEmitter {\n\tprivate readonly dialog: SaveDialog;\n\n\tpublic constructor() {\n\t\tsuper();\n\n\t\tthis.dialog = new SaveDialog();\n\t\tthis.dialog.getActionProcess = ( action?: string ): OO.ui.Process => {\n\t\t\tif ( action === \"save\" ) {\n\t\t\t\treturn new OO.ui.Process( this.onSave.bind( this ) );\n\t\t\t}\n\t\t\tif ( action === \"close\" ) {\n\t\t\t\treturn new OO.ui.Process( this.close.bind( this ) );\n\t\t\t}\n\t\t\tif ( action === \"review\" ) {\n\t\t\t\treturn new OO.ui.Process( this.onReview.bind( this ) );\n\t\t\t}\n\t\t\tif ( action === \"back\" ) {\n\t\t\t\treturn new OO.ui.Process( this.onBack.bind( this ) );\n\t\t\t}\n\t\t\tif ( action === \"saveDone\" ) {\n\t\t\t\treturn new OO.ui.Process( this.onSaveDone.bind( this ) );\n\t\t\t}\n\n\t\t\tthrow new Error( \"Dialog action not implemented\" );\n\t\t};\n\n\t\tconst windowManager = new OO.ui.WindowManager();\n\t\twindowManager.addWindows( [ this.dialog ] );\n\t\tdocument.body.appendChild( windowManager.$element.get( 0 ) );\n\t}\n\n\tpublic close(): void {\n\t\tthis.dialog.clearPostSaveMessages();\n\t\tthis.dialog.close();\n\t}\n\n\tpublic open( options?: OpenDialogOptions ): void {\n\t\tthis.dialog.open();\n\t\tthis.dialog.setSavePagesCheckboxState( options?.savePagesCheckboxState ?? false );\n\t}\n\n\tpublic isOpened(): boolean {\n\t\treturn this.dialog.isOpened();\n\t}\n\n\tpublic showChanges(): void {\n\t\tthis.dialog.setMode( Mode.CHANGES );\n\t}\n\n\tpublic hasChanges(): boolean {\n\t\treturn this.dialog.hasPostSaveMessages();\n\t}\n\n\tpublic addPostSaveMessage( message: string, type: MessageType ): void {\n\t\tconst messageDiv = document.createElement( \"div\" );\n\t\tmessageDiv.innerHTML = message;\n\n\t\tthis.dialog.addPostSaveMessage( messageDiv, type );\n\t}\n\n\tpublic addError( message: string ): void {\n\t\tconst error = new OO.ui.Error( message as string );\n\n\t\t// @ts-ignore\n\t\tthis.dialog.showErrors( error );\n\t}\n\n\tpublic setChangelog( messages: ChangeLogMessages ): void {\n\t\tthis.dialog.setChangelogMessages( messages );\n\t}\n\n\tpublic pushPending(): void {\n\t\tthis.dialog.pushPending();\n\t}\n\n\tpublic popPending(): void {\n\t\tthis.dialog.popPending();\n\t}\n\n\tprivate onSave(): void {\n\t\tthis.emit( \"save\", this.dialog.withSavePages() );\n\t}\n\n\tprivate onSaveDone(): void {\n\t\tthis.emit( \"saveDone\" );\n\t}\n\n\tprivate onReview(): void {\n\t\tthis.dialog.setMode( Mode.REVIEW );\n\t}\n\n\tprivate onBack(): void {\n\t\tthis.dialog.setMode( Mode.SAVE );\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdTranslator.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'translations' is forbidden.","line":6,"column":19,"nodeType":"Identifier","messageId":"forbidden","endLine":6,"endColumn":31},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":6,"column":48,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":6,"endColumn":51,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[217,220],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[217,220],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":19,"column":55,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":19,"endColumn":58,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[531,534],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[531,534],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":27,"column":69,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":27,"endColumn":72,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[811,814],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[811,814],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import * as de from \"../../../../node_modules/bpmn-js-i18n/translations/de.js\";\nimport * as deCustom from \"../translations/de.js\";\n\nexport default class CpdTranslator {\n\n\tprivate readonly translations: Record<string, any>;\n\n\tpublic constructor( language: string ) {\n\t\tswitch ( language.toLowerCase() ) {\n\t\t\tcase \"de\":\n\t\t\t\tthis.translations = { ...de.default, ...deCustom.default };\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.translations = null; // Fallback to English\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tpublic translate( text: string, args: Record<string, any> ): string {\n\t\tif ( !this.translations || !this.translations[ text ] ) {\n\t\t\treturn this.replaceTemplateStrings( text, args );\n\t\t}\n\n\t\treturn this.replaceTemplateStrings( this.translations[ text ], args );\n\t}\n\n\tprivate replaceTemplateStrings( text: string, args: Record<string, any> ): string {\n\t\treturn text.replace( /\\{(\\w+)\\}/g, ( match, key ) => args[ key ] || match );\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdValidator.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'ElementRegistry' is defined but never used.","line":3,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":3,"endColumn":23},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'VALIDATION_EVENT' is forbidden.","line":19,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":19,"endColumn":41}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import EventBus from \"diagram-js/lib/core/EventBus\";\nimport EventEmitter from \"events\";\nimport ElementRegistry from \"diagram-js/lib/core/ElementRegistry\";\n\ninterface LinterEvent {\n\tissues: {\n\t\t[ element: string ]: LinterIssue[];\n\t};\n}\n\ninterface LinterIssue {\n\tid: string;\n\tmessage: string;\n\tcategory: string;\n\trule: string;\n}\n\nexport default class CpdValidator extends EventEmitter {\n\tpublic static readonly VALIDATION_EVENT: string = \"validation\";\n\n\tpublic constructor( eventBus: EventBus ) {\n\t\tsuper();\n\n\t\teventBus.on( \"linting.completed\", ( event: LinterEvent ) => {\n\t\t\tconst isValid = this.getValidation( Object.values( event.issues ) );\n\t\t\tthis.emit( CpdValidator.VALIDATION_EVENT, isValid );\n\t\t} );\n\t}\n\n\tprivate getValidation( issues: LinterIssue[][] ): boolean {\n\t\tif ( issues.length === 0 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn issues.every( ( elementIssues: LinterIssue[] ) => elementIssues.every(\n\t\t\t( issue: LinterIssue ) => issue.category !== \"error\" ),\n\t\t);\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/helper/CpdXml.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'notify' is defined but never used.","line":1,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":1,"endColumn":14},{"ruleId":"jsdoc/require-param-type","severity":1,"message":"Missing JSDoc @param \"xml\" type.","line":22,"column":1,"nodeType":"Block","endLine":22,"endColumn":1},{"ruleId":"mediawiki/no-unlabeled-buttonwidget","severity":2,"message":"OO.ui.ButtonWidget has no label. Even icon-only buttons should set a label with invisibleLabel set to true.","line":37,"column":22,"nodeType":"NewExpression","messageId":"noLabel","endLine":41,"endColumn":6},{"ruleId":"compat/compat","severity":1,"message":"navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":44,"column":4,"nodeType":"MemberExpression","endLine":44,"endColumn":23}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import notify from \"types-mediawiki/mw/notification\";\n\nexport default class CpdXml {\n\n\tpublic static validate( xml: string | null ): void {\n\t\tconst domParser = new DOMParser();\n\t\tlet isValid = false;\n\t\tif ( xml ) {\n\t\t\tconst dom = domParser.parseFromString( xml, \"text/xml\" );\n\t\t\tisValid = dom.documentElement.nodeName !== \"parsererror\";\n\t\t}\n\n\t\tif ( !isValid ) {\n\t\t\tthrow new Error( mw.message( \"cpd-error-message-invalid-xml\" ).text() );\n\t\t}\n\t}\n\n\t/**\n\t * Extension SyntaxHighlight creates a <pre> element with the class mw-highlight\n\t * Append a copy button to it\n\t *\n\t * @param xml\n\t */\n\tpublic static insertPreToClipButton( xml: string ): void {\n\t\tconst xmlHighlightElement = document.querySelector( \".mw-highlight\" );\n\n\t\tif ( !xmlHighlightElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst preElement = xmlHighlightElement.querySelector( \"pre\" );\n\n\t\tif ( !preElement.getAttribute( 'tabindex' ) ) {\n\t\t\tpreElement.setAttribute( 'tabindex', '0' );\n\t\t}\n\n\t\tconst copyButton = new OO.ui.ButtonWidget( {\n\t\t\ticon: 'copy',\n\t\t\tclasses: [ 'pretoclip-copy-button' ],\n\t\t\ttitle: mw.message( 'cpd-pretoclip-button-tooltip' ).text(),\n\t\t} );\n\n\t\tcopyButton.on( 'click', () => {\n\t\t\tnavigator.clipboard.writeText( xml );\n\t\t\tmw.notify( mw.message( 'cpd-pretoclip-button-notification-text' ).text() );\n\t\t}, [], copyButton );\n\n\t\tpreElement.prepend( copyButton.$element[ 0 ] );\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/model/CpdElement.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'bpmnElement' is forbidden.","line":4,"column":18,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":29},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on get property accessor id.","line":14,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":14,"endColumn":8,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[314,314],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[314,314],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[314,314],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on get property accessor type.","line":18,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":18,"endColumn":10,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[368,368],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[368,368],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[368,368],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on get property accessor label.","line":22,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":22,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[426,426],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[426,426],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[426,426],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on set property accessor label.","line":34,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":34,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[683,683],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[683,683],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[683,683],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { Element } from \"bpmn-js/lib/model/Types\";\n\nexport default class CpdElement {\n\tpublic readonly bpmnElement: Element;\n\n\tprivate constructor( bpmnElement: Element ) {\n\t\tthis.bpmnElement = bpmnElement;\n\t}\n\n\tpublic static init( bpmnElement: Element ): CpdElement {\n\t\treturn new CpdElement( bpmnElement );\n\t}\n\n\tget id(): string {\n\t\treturn this.bpmnElement.id;\n\t}\n\n\tget type(): string {\n\t\treturn this.bpmnElement.type;\n\t}\n\n\tget label(): string | null {\n\t\tlet label = this.bpmnElement?.businessObject?.name;\n\n\t\tif ( label === undefined || label === null ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Replace all newlines (\\n) with spaces\n\t\tlabel = label.replace( /\\n/g, ' ' );\n\t\treturn label;\n\t}\n\n\tset label( label: string ) {\n\t\tthis.bpmnElement.businessObject.name = label;\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/Button.ts","messages":[{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on class property static.","line":2,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":2,"endColumn":24,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[59,59],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[59,59],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[59,59],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":2,"column":18,"nodeType":"Identifier","messageId":"forbidden","endLine":2,"endColumn":24},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition onUpdateState.","line":8,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":8,"endColumn":15,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[160,160],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[160,160],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[160,160],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":8,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":8,"endColumn":15},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":8,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":8,"endColumn":15},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty method 'onUpdateState'.","line":8,"column":18,"nodeType":"FunctionExpression","messageId":"unexpected","endLine":9,"endColumn":3},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setLabel.","line":11,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":11,"endColumn":10,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[183,183],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[183,183],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[183,183],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":11,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":11,"endColumn":10},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":11,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":11,"endColumn":10},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition getTagName.","line":15,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":15,"endColumn":12,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[242,242],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[242,242],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[242,242],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":"export default abstract class Button extends OO.ui.Tool {\n\tstatic readonly static = {\n\t\t...OO.ui.Tool.static, ...{\n\t\t\tdisplayBothIconAndLabel: true,\n\t\t},\n\t};\n\n\tonUpdateState() {\n\t}\n\n\tsetLabel( label: string ) {\n\t\tthis.setTitle( label );\n\t}\n\n\tgetTagName(): string {\n\t\treturn \"span\";\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/CancelButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class CancelButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"cancel\",\n\t\t\tlabel: mw.msg( \"cpd-button-cancel-title\" ),\n\t\t\ttitle: mw.msg( \"cpd-button-cancel-title\" ),\n\t\t\tdisplayBothIconAndLabel: false,\n\t\t\ticon: \"close\",\n\t\t\tflags: [],\n\t\t},\n\t};\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/CenterViewportButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setActive.","line":14,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":14,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[348,348],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[348,348],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[348,348],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":11},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":11},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty method 'setActive'.","line":14,"column":14,"nodeType":"FunctionExpression","messageId":"unexpected","endLine":15,"endColumn":3}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class CenterViewportButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"centerViewport\",\n\t\t\tlabel: mw.msg( \"cpd-button-center-viewport\" ),\n\t\t\ttitle: mw.msg( \"cpd-button-center-viewport\" ),\n\t\t\ticon: \"alignCenter\",\n\t\t\tdisplayBothIconAndLabel: false,\n\t\t},\n\t};\n\n\tsetActive() {\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/DiagramPageLinkButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setActive.","line":13,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":13,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[329,329],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[329,329],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[329,329],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":13,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":13,"endColumn":11},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":13,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":13,"endColumn":11},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty method 'setActive'.","line":13,"column":14,"nodeType":"FunctionExpression","messageId":"unexpected","endLine":14,"endColumn":3}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import LinkButton from \"./LinkButton\";\n\nexport default class DiagramPageLinkButton extends LinkButton {\n\tpublic static readonly static = {\n\t\t...LinkButton.static, ...{\n\t\t\tname: \"diagramPageLink\",\n\t\t\tlabel: mw.msg( \"cpd-link-diagram-page-title\" ),\n\t\t\ttitle: mw.msg( \"cpd-link-diagram-page-title\" ),\n\t\t\ticon: \"sandbox\",\n\t\t},\n\t};\n\n\tsetActive() {\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/ExportButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setActive.","line":14,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":14,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[311,311],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[311,311],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[311,311],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":11},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":11},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty method 'setActive'.","line":14,"column":14,"nodeType":"FunctionExpression","messageId":"unexpected","endLine":15,"endColumn":3}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class ExportButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"export\",\n\t\t\tlabel: mw.msg( \"cpd-button-export\" ),\n\t\t\ttitle: mw.msg( \"cpd-button-export\" ),\n\t\t\ticon: \"download\",\n\t\t\tdisplayBothIconAndLabel: false,\n\t\t},\n\t};\n\n\tsetActive() {\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/GroupTool.ts","messages":[{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on class property static.","line":5,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":5,"endColumn":24,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[149,149],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[149,149],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[149,149],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":5,"column":18,"nodeType":"Identifier","messageId":"forbidden","endLine":5,"endColumn":24}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import ImportButton from \"./ImportButton\";\nimport ExportButton from \"./ExportButton\";\n\nexport default class GroupTool extends OO.ui.ToolGroupTool {\n\tstatic readonly static = {\n\t\t...OO.ui.ToolGroupTool.static, ...{\n\t\t\tname: 'groupTool',\n\t\t\tgroupConfig: {\n\t\t\t\ticon: 'folderPlaceholder',\n\t\t\t\tinclude: [\n\t\t\t\t\tExportButton.static.name,\n\t\t\t\t\tImportButton.static.name,\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t};\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/ImportButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setActive.","line":14,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":14,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[309,309],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[309,309],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[309,309],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":11},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":11},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty method 'setActive'.","line":14,"column":14,"nodeType":"FunctionExpression","messageId":"unexpected","endLine":15,"endColumn":3}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class ImportButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"import\",\n\t\t\tlabel: mw.msg( \"cpd-button-import\" ),\n\t\t\ttitle: mw.msg( \"cpd-button-import\" ),\n\t\t\ticon: \"upload\",\n\t\t\tdisplayBothIconAndLabel: false,\n\t\t},\n\t};\n\n\tsetActive() {\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/LinkButton.ts","messages":[{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setLink.","line":4,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":4,"endColumn":9,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[91,91],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[91,91],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[91,91],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition onSelect.","line":14,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":14,"endColumn":10,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[275,275],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[275,275],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[275,275],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":10},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":14,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":10}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default abstract class LinkButton extends Button {\n\tsetLink( path: string ): void {\n\t\tif ( !path || path.length === 0 ) {\n\t\t\tthis.setDisabled( true );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$link.attr( \"href\", path );\n\t\tthis.setDisabled( false );\n\t}\n\n\tonSelect() {\n\t\tif ( this.isDisabled() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$link[ 0 ].click();\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/OpenDialogButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class OpenDialogButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"openDialog\",\n\t\t\tlabel: mw.msg( \"cpd-dialog-save-changes-button-title\" ),\n\t\t\ttitle: mw.msg( \"cpd-dialog-save-changes-button-label\" ),\n\t\t\tflags: [ \"primary\", \"progressive\" ],\n\t\t},\n\t};\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/SaveDialog.ts","messages":[{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'panels' is forbidden.","line":16,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":16,"endColumn":16},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'savePanel' is forbidden.","line":18,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":18,"endColumn":19},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'reviewPanel' is forbidden.","line":20,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":20,"endColumn":21},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'reviewContent' is forbidden.","line":22,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":22,"endColumn":23},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'changesPanel' is forbidden.","line":25,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":25,"endColumn":22},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'postSaveMessages' is forbidden.","line":27,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":27,"endColumn":26},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'postSaveWarnings' is forbidden.","line":29,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":29,"endColumn":26},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'savePagesCheckbox' is forbidden.","line":31,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":31,"endColumn":27},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'changeLogMessages' is forbidden.","line":33,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":33,"endColumn":27},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'saveWithPages' is forbidden.","line":35,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":35,"endColumn":23},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on class property static.","line":37,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":37,"endColumn":24,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[805,805],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[805,805],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[805,805],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":37,"column":18,"nodeType":"Identifier","messageId":"forbidden","endLine":37,"endColumn":24},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":89,"column":3,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":89,"endColumn":16,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[2141,2154],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":107,"column":3,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":107,"endColumn":16,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[2485,2498],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Argument 'data' should be typed with a non-any type.","line":128,"column":26,"nodeType":"Identifier","messageId":"anyTypedArg","endLine":128,"endColumn":35},{"ruleId":"@typescript-eslint/no-explicit-any","severity":1,"message":"Unexpected any. Specify a different type.","line":128,"column":32,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":128,"endColumn":35,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3007,3010],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3007,3010],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}]},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":166,"column":3,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":166,"endColumn":16,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[4017,4030],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]},{"ruleId":"@typescript-eslint/ban-ts-comment","severity":1,"message":"Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.","line":172,"column":3,"nodeType":"Line","messageId":"tsIgnoreInsteadOfExpectError","endLine":172,"endColumn":16,"suggestions":[{"messageId":"replaceTsIgnoreWithTsExpectError","fix":{"range":[4165,4178],"text":"// @ts-expect-error"},"desc":"Replace \"@ts-ignore\" with \"@ts-expect-error\"."}]},{"ruleId":"mediawiki/msg-doc","severity":1,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":189,"column":18,"nodeType":"CallExpression","endLine":189,"endColumn":60}],"suppressedMessages":[],"errorCount":11,"fatalErrorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { ChangeLogMessages, MessageObject } from \"../helper/CpdChangeLogger\";\nimport HtmlSnippet = OO.ui.HtmlSnippet;\n\nexport enum Mode {\n\tSAVE = \"save\",\n\tREVIEW = \"review\",\n\tCHANGES = \"changes\"\n}\n\nexport enum MessageType {\n\tMESSAGE = \"notice\",\n\tWARNING = \"warning\"\n}\n\nexport default class SaveDialog extends OO.ui.ProcessDialog {\n\tprivate panels: OO.ui.StackLayout;\n\n\tprivate savePanel: OO.ui.PanelLayout;\n\n\tprivate reviewPanel: OO.ui.PanelLayout;\n\n\tprivate reviewContent: HTMLUListElement;\n\n\t// Displays changes after saving\n\tprivate changesPanel: OO.ui.PanelLayout;\n\n\tprivate postSaveMessages: HTMLDivElement;\n\n\tprivate postSaveWarnings: HTMLDivElement;\n\n\tprivate savePagesCheckbox: OO.ui.CheckboxInputWidget;\n\n\tprivate changeLogMessages: ChangeLogMessages;\n\n\tprivate saveWithPages: boolean = false;\n\n\tstatic readonly static = {\n\t\t...OO.ui.ProcessDialog.static, ...{\n\t\t\tname: \"saveDialog\",\n\t\t\ttitle: mw.msg( \"cpd-dialog-save-label-save\" ),\n\t\t\tactions: [\n\t\t\t\t{\n\t\t\t\t\taction: \"saveDone\",\n\t\t\t\t\tlabel: mw.msg( \"cpd-dialog-save-label-done\" ),\n\t\t\t\t\tflags: [ \"primary\", \"progressive\" ],\n\t\t\t\t\tmodes: [ Mode.CHANGES ],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\taction: \"save\",\n\t\t\t\t\tlabel: mw.msg( \"savechanges\" ),\n\t\t\t\t\tflags: [ \"primary\", \"progressive\" ],\n\t\t\t\t\tmodes: [ Mode.SAVE, Mode.REVIEW ],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\taction: \"close\",\n\t\t\t\t\tlabel: mw.msg( \"cpd-dialog-save-label-resume-editing\" ),\n\t\t\t\t\tflags: [ \"safe\", \"close\" ],\n\t\t\t\t\tmodes: [ Mode.SAVE, Mode.CHANGES ],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\taction: \"back\",\n\t\t\t\t\tlabel: mw.msg( \"cpd-dialog-save-label-resume-editing\" ),\n\t\t\t\t\tflags: [ \"safe\", \"back\" ],\n\t\t\t\t\tmodes: [ Mode.REVIEW ],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\taction: \"review\",\n\t\t\t\t\tlabel: mw.msg( \"cpd-dialog-save-label-review\" ),\n\t\t\t\t\tmodes: [ Mode.SAVE ],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t};\n\n\tpublic initialize(): this {\n\t\tsuper.initialize();\n\n\t\tthis.setSize( \"medium\" );\n\n\t\tthis.getActions().setMode( Mode.SAVE );\n\t\tthis.panels = new OO.ui.StackLayout( { scrollable: false } );\n\n\t\tthis.savePanel = this.initSavePanel();\n\t\tthis.reviewPanel = this.initReviewPanel();\n\t\tthis.changesPanel = this.initChangesPanel();\n\n\t\tthis.panels.addItems( [ this.savePanel, this.reviewPanel, this.changesPanel ] );\n\n\t\t// @ts-ignore\n\t\tthis.$body.append( this.panels.$element );\n\n\t\treturn this;\n\t}\n\n\tpublic withSavePages(): boolean {\n\t\treturn this.saveWithPages;\n\t}\n\n\tpublic setMode( mode: Mode ): void {\n\t\tconst actions = this.getActions();\n\t\tactions.setMode( mode );\n\t\tthis.popPending();\n\t\tthis.swapPanel( mode );\n\t}\n\n\tpublic setTitle( title: string ): void {\n\t\t// @ts-ignore\n\t\tthis.title.setLabel( title );\n\t}\n\n\tpublic pushPending(): this {\n\t\tthis.getActions().setAbilities( { review: false, save: false } );\n\t\treturn super.pushPending.call( this );\n\t}\n\n\tpublic popPending(): this {\n\t\tconst parent = super.popPending.call( this );\n\t\tif ( !this.isPending() ) {\n\t\t\tthis.getActions().setAbilities( { review: true, save: true } );\n\t\t}\n\t\treturn parent;\n\t}\n\n\tpublic getBodyHeight(): number {\n\t\treturn this.panels.getCurrentItem().$element.height() + 30;\n\t}\n\n\tpublic getSetupProcess( data: any ): OO.ui.Process {\n\t\tdata = data || {};\n\t\treturn super.getSetupProcess.call( this, data ).next( this.onSetup.bind( this ) );\n\t}\n\n\tpublic setChangelogMessages( messages: ChangeLogMessages ): void {\n\t\tthis.changeLogMessages = messages;\n\t}\n\n\tpublic addPostSaveMessage( message: HTMLDivElement, type: MessageType ): void {\n\t\tif ( type === MessageType.WARNING ) {\n\t\t\tconst warningWidget = new OO.ui.MessageWidget( {\n\t\t\t\ttype: \"warning\",\n\t\t\t\tlabel: new HtmlSnippet( message.innerText ),\n\t\t\t} );\n\t\t\tthis.postSaveWarnings.append( warningWidget.$element.get( 0 ) );\n\t\t}\n\n\t\tif ( type === MessageType.MESSAGE ) {\n\t\t\tthis.postSaveMessages.append( message );\n\t\t}\n\n\t\tthis.updateSize();\n\t}\n\n\tpublic clearPostSaveMessages(): void {\n\t\tthis.postSaveMessages.innerHTML = \"\";\n\t\tthis.postSaveWarnings.innerHTML = \"\";\n\n\t\tthis.updateSize();\n\t}\n\n\tpublic hasPostSaveMessages(): boolean {\n\t\treturn this.postSaveMessages.children.length > 0 ||\n\t\t\tthis.postSaveWarnings.children.length > 0;\n\t}\n\n\tpublic onRetryButtonClick(): void {\n\t\t// @ts-ignore\n\t\tsuper.onRetryButtonClick();\n\t\tthis.clearPostSaveMessages();\n\t}\n\n\tpublic showErrors( errors: OO.ui.Error[] | OO.ui.Error ): void {\n\t\t// @ts-ignore\n\t\tsuper.showErrors( errors );\n\n\t\tthis.setTitle( mw.msg( \"cpd-dialog-save-label-changes-with-error\" ) );\n\t\tthis.updateSize();\n\t}\n\n\tpublic setSavePagesCheckboxState( state: boolean ): void {\n\t\tthis.savePagesCheckbox.setSelected( state );\n\t}\n\n\tprivate onSetup(): void {\n\t\tthis.updateReviewContent();\n\t\tthis.setMode( Mode.SAVE );\n\t}\n\n\tprivate swapPanel( panel: Mode ): void {\n\t\tthis.setTitle( mw.msg( \"cpd-dialog-save-label-\" + panel ) );\n\n\t\tif ( panel === Mode.SAVE ) {\n\t\t\tthis.panels.setItem( this.savePanel );\n\t\t}\n\n\t\tif ( panel === Mode.REVIEW ) {\n\t\t\tthis.panels.setItem( this.reviewPanel );\n\t\t}\n\n\t\tif ( panel === Mode.CHANGES ) {\n\t\t\tthis.panels.setItem( this.changesPanel );\n\t\t}\n\n\t\tthis.setSize( \"medium\" );\n\t}\n\n\tprivate initSavePanel(): OO.ui.PanelLayout {\n\t\tconst panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n\n\t\tthis.savePagesCheckbox = new OO.ui.CheckboxInputWidget( {\n\t\t\tvalue: \"save-with-description-pages\",\n\t\t} );\n\t\tthis.savePagesCheckbox.connect( this, { change: this.onSavePagesCheckboxChange } );\n\t\tconst fieldLayout = new OO.ui.FieldLayout( this.savePagesCheckbox, {\n\t\t\talign: \"inline\",\n\t\t\tlabel: mw.msg( \"cpd-dialog-save-label-description-pages-checkbox\" ),\n\t\t} );\n\n\t\tpanel.$element.append( fieldLayout.$element );\n\n\t\treturn panel;\n\t}\n\n\tprivate initReviewPanel(): OO.ui.PanelLayout {\n\t\tconst panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n\n\t\tthis.reviewContent = document.createElement( \"ul\" );\n\t\tpanel.$element.append( this.reviewContent );\n\n\t\treturn panel;\n\t}\n\n\tprivate initChangesPanel(): OO.ui.PanelLayout {\n\t\tconst panel = new OO.ui.PanelLayout( { padded: true, expanded: false, scrollable: true } );\n\n\t\tthis.postSaveWarnings = document.createElement( \"div\" );\n\t\tthis.postSaveWarnings.classList.add( \"warnings-box\" );\n\t\tpanel.$element.append( this.postSaveWarnings );\n\n\t\tthis.postSaveMessages = document.createElement( \"div\" );\n\t\tpanel.$element.append( this.postSaveMessages );\n\n\t\treturn panel;\n\t}\n\n\tprivate updateReviewContent(): void {\n\t\tthis.reviewContent.innerHTML = \"\";\n\t\tconst changeLogMessages = [];\n\t\tObject.values( this.changeLogMessages ).forEach( ( messages: MessageObject[] ) => {\n\t\t\tconst filtered = messages.filter( ( message: MessageObject ) => {\n\t\t\t\tif ( this.saveWithPages ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn !message.onlyWithPages;\n\t\t\t} );\n\n\t\t\t// Merge messages\n\t\t\tchangeLogMessages.push( ...filtered );\n\t\t} );\n\n\t\tif ( changeLogMessages.length === 0 ) {\n\t\t\tthis.reviewContent.innerHTML = mw.message( \"cpd-log-no-changes\" ).plain();\n\t\t\treturn;\n\t\t}\n\n\t\tchangeLogMessages.forEach( ( message: MessageObject ) => {\n\t\t\tthis.reviewContent.innerHTML += `<li>${ message.message }</li>`;\n\t\t} );\n\t}\n\n\tprivate onSavePagesCheckboxChange( selected: boolean ): void {\n\t\tthis.saveWithPages = selected;\n\t\tthis.updateReviewContent();\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/ShowDiagramButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class ShowDiagramButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"showDiagram\",\n\t\t\tlabel: mw.msg( 'cpd-button-show-diagram' ),\n\t\t\ttitle: mw.msg( 'cpd-button-show-diagram' ),\n\t\t\ticon: \"imageLayoutFrame\",\n\t\t},\n\t};\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/ShowXmlButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Button from \"./Button\";\n\nexport default class ShowXmlButton extends Button {\n\tpublic static readonly static = {\n\t\t...Button.static, ...{\n\t\t\tname: \"showXml\",\n\t\t\tlabel: mw.msg( \"cpd-button-show-xml\" ),\n\t\t\ttitle: mw.msg( \"cpd-button-show-xml\" ),\n\t\t\ticon: \"eye\",\n\t\t},\n\t};\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/oojs-ui/SvgFileLinkButton.ts","messages":[{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'static' is forbidden.","line":4,"column":25,"nodeType":"Identifier","messageId":"forbidden","endLine":4,"endColumn":31},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setDisabled.","line":13,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":13,"endColumn":13,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[301,301],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[301,301],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[301,301],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setLink.","line":23,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":23,"endColumn":9,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[483,483],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[483,483],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[483,483],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition setActive.","line":28,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":28,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[586,586],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[586,586],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[586,586],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":28,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":28,"endColumn":11},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Missing return type on function.","line":28,"column":2,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":28,"endColumn":11},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty method 'setActive'.","line":28,"column":14,"nodeType":"FunctionExpression","messageId":"unexpected","endLine":29,"endColumn":3}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import LinkButton from \"./LinkButton\";\n\nexport default class SvgFileLinkButton extends LinkButton {\n\tpublic static readonly static = {\n\t\t...LinkButton.static, ...{\n\t\t\tname: \"svgFileLink\",\n\t\t\tlabel: mw.msg( \"cpd-link-svg-title\" ),\n\t\t\ttitle: mw.msg( \"cpd-link-svg-title\" ),\n\t\t\ticon: \"image\",\n\t\t},\n\t};\n\n\tsetDisabled( disabled: boolean ): this {\n\t\tif ( disabled ) {\n\t\t\tthis.setIcon( \"imageLock\" );\n\t\t} else {\n\t\t\tthis.setIcon( \"image\" );\n\t\t}\n\n\t\treturn super.setDisabled( disabled );\n\t}\n\n\tsetLink( path: string ): void {\n\t\tsuper.setLink( path );\n\t\tthis.$link.attr( \"target\", \"_blank\" );\n\t}\n\n\tsetActive() {\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/renderer/CpdElementsRenderer.ts","messages":[{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on class property $inject.","line":9,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":9,"endColumn":16,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[430,430],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[430,430],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[430,430],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field '$inject' is forbidden.","line":9,"column":9,"nodeType":"Identifier","messageId":"forbidden","endLine":9,"endColumn":16},{"ruleId":"es-x/no-class-static-fields","severity":2,"message":"ES2022 static field 'HIGHLIGHT_COLOR' is forbidden.","line":11,"column":26,"nodeType":"Identifier","messageId":"forbidden","endLine":11,"endColumn":41},{"ruleId":"es-x/no-class-instance-fields","severity":2,"message":"ES2022 instance field 'bpmnRenderer' is forbidden.","line":13,"column":10,"nodeType":"Identifier","messageId":"forbidden","endLine":13,"endColumn":22},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition constructor.","line":15,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":15,"endColumn":13,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[571,571],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[571,571],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[571,571],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Argument 'eventBus' should be typed.","line":15,"column":15,"nodeType":"Identifier","messageId":"missingArgType","endLine":15,"endColumn":23},{"ruleId":"@typescript-eslint/explicit-module-boundary-types","severity":1,"message":"Argument 'bpmnRenderer' should be typed.","line":15,"column":25,"nodeType":"Identifier","messageId":"missingArgType","endLine":15,"endColumn":37},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition canRender.","line":20,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":20,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[679,679],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[679,679],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[679,679],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]},{"ruleId":"@typescript-eslint/explicit-member-accessibility","severity":1,"message":"Missing accessibility modifier on method definition drawShape.","line":24,"column":2,"nodeType":null,"messageId":"missingAccessibility","endLine":24,"endColumn":11,"suggestions":[{"messageId":"addExplicitAccessibility","data":{"type":"public"},"fix":{"range":[778,778],"text":"public "},"desc":"Add 'public' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"private"},"fix":{"range":[778,778],"text":"private "},"desc":"Add 'private' accessibility modifier"},{"messageId":"addExplicitAccessibility","data":{"type":"protected"},"fix":{"range":[778,778],"text":"protected "},"desc":"Add 'protected' accessibility modifier"}]}],"suppressedMessages":[],"errorCount":3,"fatalErrorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import BaseRenderer from \"diagram-js/lib/draw/BaseRenderer\";\nimport BpmnRenderer from \"bpmn-js/lib/draw/BpmnRenderer\";\nimport CpdElement from \"../model/CpdElement\";\nimport { Shape } from \"bpmn-js/lib/model/Types\";\nimport { ShapeLike } from \"bpmn-js/lib/draw/BpmnRenderUtil\";\n\nexport default class CpdElementsRenderer extends BaseRenderer {\n\t// Need to inject due to webpack failing to resolve the dependencies on production mode\n\tstatic $inject = [ 'eventBus', 'bpmnRenderer' ];\n\n\tprivate static readonly HIGHLIGHT_COLOR = \"#36c\";\n\n\tprivate bpmnRenderer: BpmnRenderer;\n\n\tconstructor( eventBus, bpmnRenderer ) {\n\t\tsuper( eventBus, 1500 );\n\t\tthis.bpmnRenderer = bpmnRenderer;\n\t}\n\n\tcanRender( element: CpdElement | Element ): boolean {\n\t\treturn element instanceof CpdElement;\n\t}\n\n\tdrawShape( parentNode: SVGElement, element: CpdElement | ShapeLike ): SVGElement {\n\t\tif ( !( element instanceof CpdElement ) ) {\n\t\t\treturn this.bpmnRenderer.drawShape( parentNode, element );\n\t\t}\n\n\t\tconst shape = this.bpmnRenderer.drawShape( parentNode, element.bpmnElement as Shape );\n\t\tshape.style.cursor = \"pointer\";\n\t\tshape.style.stroke = CpdElementsRenderer.HIGHLIGHT_COLOR;\n\n\t\treturn shape;\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/cpd/translations/de.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ext.cpd.DiagramUsageInformationPage.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":1,"column":10,"nodeType":"ArrowFunctionExpression","messageId":"missingReturnType","endLine":1,"endColumn":12},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":7,"column":45,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":7,"endColumn":81},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":13,"column":72,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":13,"endColumn":81},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":21,"column":61,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":21,"endColumn":70},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":25,"column":73,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":25,"endColumn":88},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":60,"column":79,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":60,"endColumn":88}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( ( mw ) => {\n\twindow.ext = window.ext || {};\n\n\text.cpd = ext.cpd || {};\n\text.cpd.info = ext.cpd.info || {};\n\n\text.cpd.info.DiagramUsageInformationPage = function DiagramUsageInformationPage( name, config ) {\n\t\text.cpd.info.DiagramUsageInformationPage.super.call( this, name, config );\n\t};\n\n\tOO.inheritClass( ext.cpd.info.DiagramUsageInformationPage, StandardDialogs.ui.BasePage );\n\n\text.cpd.info.DiagramUsageInformationPage.prototype.setupOutlineItem = function () {\n\t\text.cpd.info.DiagramUsageInformationPage.super.prototype.setupOutlineItem.apply( this, arguments );\n\n\t\tif ( this.outlineItem ) {\n\t\t\tthis.outlineItem.setLabel( mw.message( 'bs-cpd-info-dialog' ).plain() );\n\t\t}\n\t};\n\n\text.cpd.info.DiagramUsageInformationPage.prototype.setup = function () {\n\t\tthis.$diagramUsageHtml = null;\n\t};\n\n\text.cpd.info.DiagramUsageInformationPage.prototype.onInfoPanelSelect = async function () {\n\t\tif ( !this.$diagramUsageHtml ) {\n\t\t\tthis.$diagramUsageHtml = $( '<div>' );\n\t\t\tconst api = new mw.Api();\n\t\t\tapi.get( {\n\t\t\t\taction: 'cpd-diagram-usage',\n\t\t\t\tpage: this.pageName\n\t\t\t} ).then( ( data ) => {\n\t\t\t\tif ( !data.links ) {\n\t\t\t\t\tthis.$diagramUsageHtml.text( mw.message( 'cpd-process-usage-undocumented-error' ).plain() + '.' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tObject.entries( data.links ).forEach( ( link ) => {\n\t\t\t\t\tconst [ process, processLinks ] = link;\n\t\t\t\t\tthis.addDiagramUsageLinkList( process, processLinks );\n\t\t\t\t} );\n\t\t\t}, ( errorType, errorData ) => {\n\t\t\t\tif ( errorData.error === 'isSpecial' ) {\n\t\t\t\t\tthis.$diagramUsageHtml.text( mw.message( 'cpd-process-usage-special-page-description' ).plain() + '.' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( errorData.error === 'noProcess' ) {\n\t\t\t\t\tthis.$diagramUsageHtml.text( mw.message( 'cpd-process-usage-not-embedded-description' ).plain() + '.' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.$diagramUsageHtml.text( mw.message( 'cpd-process-usage-undocumented-error' ).plain() + '.' );\n\t\t\t} );\n\n\t\t\tthis.$element.append( this.$diagramUsageHtml );\n\t\t}\n\t};\n\n\text.cpd.info.DiagramUsageInformationPage.prototype.addDiagramUsageLinkList = function ( process, links ) {\n\t\tif ( !this.$diagramUsageHtml ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst $container = $( '<div>' );\n\t\tthis.$diagramUsageHtml.append( $container );\n\n\t\tconst $description = $( '<p>' );\n\t\t$container.append( $description );\n\n\t\tif ( links.length === 0 ) {\n\t\t\t$description.text( mw.message( 'cpd-process-usage-no-pages-description', process ).plain() + '.' );\n\t\t\treturn;\n\t\t}\n\n\t\t$description.text( mw.message( 'cpd-process-usage-description', process ).plain() + ':' );\n\n\t\tconst $linkList = $( '<ul>' );\n\t\t$container.append( $linkList );\n\n\t\tlinks.forEach( ( link ) => $linkList.append( $( '<li>' ).append( link ) ) );\n\t};\n\n\tregistryPageInformation.register( 'diagram_usage_infos', ext.cpd.info.DiagramUsageInformationPage );\n\n} )( mediaWiki );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ext.cpd.NewProcessDialog.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":3,"column":28,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":3,"endColumn":53},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":14,"column":59,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":14,"endColumn":68},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":32,"column":51,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":32,"endColumn":60},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":52,"column":60,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":52,"endColumn":69},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty arrow function.","line":54,"column":36,"nodeType":"ArrowFunctionExpression","messageId":"unexpected","endLine":54,"endColumn":38},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":57,"column":61,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":57,"endColumn":70},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":61,"column":54,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":61,"endColumn":63},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":68,"column":49,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":68,"endColumn":58},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":82,"column":54,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":82,"endColumn":63},{"ruleId":"@typescript-eslint/no-empty-function","severity":1,"message":"Unexpected empty arrow function.","line":86,"column":34,"nodeType":"ArrowFunctionExpression","messageId":"unexpected","endLine":86,"endColumn":36},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":89,"column":43,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":89,"endColumn":52},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":101,"column":52,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":101,"endColumn":61},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":109,"column":55,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":109,"endColumn":64},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":118,"column":51,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":118,"endColumn":60},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":125,"column":66,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":125,"endColumn":75},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":129,"column":52,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":129,"endColumn":61},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":138,"column":60,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":138,"endColumn":69},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .done","line":145,"column":2,"nodeType":"CallExpression","endLine":170,"endColumn":5},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .fail","line":145,"column":2,"nodeType":"CallExpression","endLine":173,"endColumn":5},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":176,"column":47,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":176,"endColumn":56},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":184,"column":49,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":184,"endColumn":58},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":190,"column":54,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":190,"endColumn":63}],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":102,"column":8,"nodeType":"CallExpression","endLine":102,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-prototype-builtins","severity":2,"message":"Do not access Object.prototype method 'hasOwnProperty' from target object.","line":160,"column":32,"nodeType":"CallExpression","messageId":"prototypeBuildIn","endLine":160,"endColumn":46,"suggestions":[{"messageId":"callObjectPrototype","data":{"prop":"hasOwnProperty"},"fix":{"range":[4858,4896],"text":"Object.prototype.hasOwnProperty.call(data.query.pages[ -1 ], "},"desc":"Call Object.prototype.hasOwnProperty explicitly."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":22,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext.cpd = window.ext.cpd || {};\n\next.cpd.NewProcessDialog = function NewProcessDialog( config ) {\n\text.cpd.NewProcessDialog.super.call( this, config );\n\tthis.namespace = config.namespace;\n\tthis.pageName = config.pageName;\n\tthis.mainInput = null;\n};\nOO.inheritClass( ext.cpd.NewProcessDialog, OO.ui.ProcessDialog );\n\next.cpd.NewProcessDialog.static.name = 'ext-cpd-new-process-dialog';\next.cpd.NewProcessDialog.static.title = mw.message( 'bs-cpd-actionmenuentry-new-process' ).text();\n\next.cpd.NewProcessDialog.prototype.makeSetupProcessData = function () {\n\treturn {\n\t\tactions: [\n\t\t\t{\n\t\t\t\taction: 'done',\n\t\t\t\tlabel: mw.message( 'cpd-dialog-action-label-create' ).plain(),\n\t\t\t\tflags: [ 'primary', 'progressive' ],\n\t\t\t\tid: this.elementId + '-btn-done'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: mw.message( 'cpd-button-cancel-title' ).plain(),\n\t\t\t\tflags: [ 'safe', 'close' ],\n\t\t\t\tid: this.elementId + '-btn-cancel'\n\t\t\t}\n\t\t]\n\t};\n};\n\next.cpd.NewProcessDialog.prototype.getFormItems = function () {\n\tthis.mainInput = new OOJSPlus.ui.widget.TitleInputWidget( {\n\t\tid: this.elementId + '-tf-target',\n\t\t$overlay: this.$overlay,\n\t\tmustExist: false,\n\t\tcontentPagesOnly: false,\n\t\tnamespaces: [ 1530 ]\n\t} );\n\n\tthis.mainInput.connect( this, {\n\t\tchange: 'onTitleChange'\n\t} );\n\tthis.mainFieldset = new OO.ui.FieldLayout( this.mainInput, {\n\t\tlabel: mw.message( 'bs-cpd-actionmenuentry-new-process-input-label' ).plain(),\n\t\talign: 'top'\n\t} );\n\n\treturn [ this.mainFieldset ];\n};\n\next.cpd.NewProcessDialog.prototype.makeDoneActionProcess = function () {\n\tthis.newTitle = mw.Title.makeTitle( this.namespace, this.mainInput.getValue() );\n\treturn new OO.ui.Process( ( () => {} ), this );\n};\n\next.cpd.NewProcessDialog.prototype.getDialogTitlePageName = function () {\n\treturn this.pageName.replace( '_', ' ' );\n};\n\next.cpd.NewProcessDialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\tconst additionalData = this.makeSetupProcessData();\n\tdata = Object.assign( data, additionalData );\n\treturn ext.cpd.NewProcessDialog.super.prototype.getSetupProcess.call( this, data );\n};\n\next.cpd.NewProcessDialog.prototype.initialize = function () {\n\text.cpd.NewProcessDialog.parent.prototype.initialize.call( this );\n\n\tthis.content = new OO.ui.PanelLayout( {\n\t\tpadded: true,\n\t\texpanded: true\n\t} );\n\tconst formItems = this.getFormItems();\n\tthis.content.$element.append(\n\t\tformItems.map( ( item ) => item.$element )\n\t);\n\tthis.$body.append( this.content.$element );\n};\n\next.cpd.NewProcessDialog.prototype.getReadyProcess = function () {\n\tif ( this.mainInput.focus ) {\n\t\tthis.mainInput.focus();\n\t}\n\treturn new OO.ui.Process( () => {} );\n};\n\next.cpd.NewProcessDialog.prototype.show = function () {\n\tif ( !this.windowManager ) {\n\t\tthis.windowManager = new OO.ui.WindowManager( {\n\t\t\tmodal: true\n\t\t} );\n\t\t$( document.body ).append( this.windowManager.$element );\n\t\tthis.windowManager.addWindows( [ this ] );\n\t}\n\n\tthis.windowManager.openWindow( this );\n};\n\next.cpd.NewProcessDialog.prototype.getBodyHeight = function () {\n\tif ( !this.$errors.hasClass( 'oo-ui-element-hidden' ) ) { // eslint-disable-line no-jquery/no-class-state\n\t\treturn this.$element.find( '.oo-ui-processDialog-errors' )[ 0 ].scrollHeight;\n\t}\n\n\treturn this.$element.find( '.oo-ui-window-body' )[ 0 ].scrollHeight + 10;\n};\n\next.cpd.NewProcessDialog.prototype.getActionProcess = function ( action ) {\n\tif ( action === 'done' ) {\n\t\tconst doneActionProcess = this.makeDoneActionProcess();\n\t\tdoneActionProcess.next( this.onActionDone, this );\n\t\treturn doneActionProcess;\n\t}\n\treturn ext.cpd.NewProcessDialog.super.prototype.getActionProcess.call( this, action );\n};\n\next.cpd.NewProcessDialog.prototype.onActionDone = function ( action ) {\n\tlet args = [ 'actioncompleted' ];\n\targs = args.concat( this.getActionCompletedEventArgs() );\n\tthis.emit.apply( this, args );\n\tthis.close( { action: action } );\n};\n\next.cpd.NewProcessDialog.prototype.getActionCompletedEventArgs = function () {\n\treturn [ this.newTitle ];\n};\n\next.cpd.NewProcessDialog.prototype.onTitleChange = function ( value ) {\n\tif ( this.typeTimeout ) {\n\t\tclearTimeout( this.typeTimeout );\n\t}\n\tthis.typeTimeout = setTimeout( () => {\n\t\tthis.validateTitleNotExist( value );\n\t}, 500 );\n};\n\next.cpd.NewProcessDialog.prototype.validateTitleNotExist = function ( value ) {\n\tthis.clearError();\n\tif ( !value ) {\n\t\tthis.actions.setAbilities( { done: false } );\n\t\treturn;\n\t}\n\tconst newTitle = mw.Title.makeTitle( this.namespace, value );\n\tnew mw.Api().get( {\n\t\taction: 'query',\n\t\tprop: 'pageprops',\n\t\ttitles: newTitle.getPrefixedText()\n\t} ).done( ( data ) => {\n\t\t// Check if there is data.query.pages.-1\n\t\tif ( !data.query ) {\n\t\t\tthis.actions.setAbilities( { done: false } );\n\t\t\tthis.setError( mw.message( 'permissionserrors' ).text() );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( data.query && data.query.pages && data.query.pages[ -1 ] ) {\n\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\tif ( data.query.pages[ -1 ].hasOwnProperty( 'invalid' ) ) {\n\t\t\t\tthis.actions.setAbilities( { done: false } );\n\t\t\t\tthis.setError( data.query.pages[ -1 ].invalidreason );\n\t\t\t} else {\n\t\t\t\tthis.actions.setAbilities( { done: true } );\n\t\t\t}\n\t\t} else {\n\t\t\tthis.actions.setAbilities( { done: false } );\n\t\t\tthis.setExistWarning();\n\t\t}\n\t} ).fail( () => {\n\t\t// Something went wrong, let user go to the page and deal with it there\n\t\tthis.actions.setAbilities( { done: true } );\n\t} );\n};\n\next.cpd.NewProcessDialog.prototype.setError = function ( error ) {\n\tthis.mainFieldset.setErrors( [ error ] );\n\tif ( this.mainInput.lookupMenu ) {\n\t\tthis.mainInput.lookupMenu.toggle( false );\n\t}\n\tthis.updateSize();\n};\n\next.cpd.NewProcessDialog.prototype.clearError = function () {\n\tthis.mainFieldset.setWarnings( [] );\n\tthis.mainFieldset.setErrors( [] );\n\tthis.updateSize();\n};\n\next.cpd.NewProcessDialog.prototype.setExistWarning = function () {\n\tif ( this.mainFieldset ) {\n\t\tthis.mainFieldset.setWarnings( [ mw.message( 'cpd-dialog-validation-page-exist-info-label' ).text() ] );\n\t}\n\tthis.updateSize();\n};\n\n$( document ).on( 'click', '#ca-cpd-create-process, #ca-cpd-create-new-process, .cpd-create-new-process', ( e ) => {\n\tconst diag = new ext.cpd.NewProcessDialog( {\n\t\tnamespace: 1530\n\t} );\n\tdiag.on( 'actioncompleted', ( newTitle ) => {\n\t\twindow.location.href = newTitle.getUrl( { action: 'edit' } );\n\t} );\n\tdiag.show();\n\n\te.defaultPrevented = true;\n\treturn false;\n} );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ext.cpd.special.OrphanedDescriptionPagesGrid.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":5,"column":13,"nodeType":"ArrowFunctionExpression","messageId":"missingReturnType","endLine":5,"endColumn":15},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":6,"column":48,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":6,"endColumn":57}],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":36,"column":2,"nodeType":"CallExpression","endLine":36,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext = window.ext || {};\nwindow.ext.cpd = window.ext.cpd || {};\nwindow.ext.cpd.special = window.ext.cpd.special || {};\n\n( ( mw, $ ) => {\n\text.cpd.special.OrphanedDescriptionPageGrid = function () {\n\t\tconst store = new OOJSPlus.ui.data.store.RemoteStore( {\n\t\t\taction: 'cpd-orphaned-description-pages-store'\n\t\t} );\n\n\t\text.cpd.special.OrphanedDescriptionPageGrid.parent.call( this, {\n\t\t\tstore,\n\t\t\tcolumns: {\n\t\t\t\ttitle: {\n\t\t\t\t\theaderText: mw.message( 'cpd-orphaned-description-pages-column-dbkey-title' ).text(),\n\t\t\t\t\tsortable: true,\n\t\t\t\t\ttype: 'url',\n\t\t\t\t\turlProperty: 'title_url'\n\t\t\t\t},\n\t\t\t\tprocess: {\n\t\t\t\t\theaderText: mw.message( 'cpd-orphaned-description-pages-column-process-title' ).text(),\n\t\t\t\t\tfilterable: true,\n\t\t\t\t\ttype: 'url',\n\t\t\t\t\turlProperty: 'process_url',\n\t\t\t\t\tfilter: {\n\t\t\t\t\t\ttype: 'text'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t};\n\n\tOO.inheritClass( ext.cpd.special.OrphanedDescriptionPageGrid, OOJSPlus.ui.data.GridWidget );\n\n\tconst grid = new ext.cpd.special.OrphanedDescriptionPageGrid();\n\t$( '#cpd-special-orphaned-pages' ).html( grid.$element ); // eslint-disable-line no-jquery/no-global-selector\n} )( mediaWiki, $ );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ui/ProcessInputWidget.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":6,"column":33,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":6,"endColumn":42},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":20,"column":72,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":20,"endColumn":81}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext = window.ext || {};\n\next.cpd = ext.cpd || {};\next.cpd.ui = ext.cpd.ui || {};\n\next.cpd.ui.ProcessInputWidget = function ( cfg ) {\n\tcfg = cfg || {};\n\tcfg.namespace = 1530;\n\tcfg.icon = 'search';\n\tcfg.required = true;\n\tcfg.$overlay = true;\n\text.cpd.ui.ProcessInputWidget.super.call( this, cfg );\n};\n\nOO.inheritClass( ext.cpd.ui.ProcessInputWidget, mw.widgets.TitleInputWidget );\n\n/**\n * @inheritdoc OO.ui.mixin.LookupElement\n */\next.cpd.ui.ProcessInputWidget.prototype.getLookupMenuOptionsFromData = function ( response ) {\n\n\t// Filter pages without contentmodel cpd from the response\n\tconst filteredPages = {};\n\n\tfor ( const key in response.pages ) {\n\t\tif ( response.pages[ key ].contentmodel === 'CPD' ) {\n\t\t\tfilteredPages[ key ] = response.pages[ key ];\n\t\t}\n\t}\n\n\tresponse.pages = filteredPages;\n\n\treturn this.getOptionsFromData( response );\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ve/ce/CPDProcessNode.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":7,"column":32,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":7,"endColumn":41}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext = window.ext || {};\n\next.cpd = ext.cpd || {};\next.cpd.ve = ext.cpd.ve || {};\next.cpd.ve.ce = ext.cpd.ve.ce || {};\n\next.cpd.ve.ce.CPDProcessNode = function () {\n\text.cpd.ve.ce.CPDProcessNode.super.apply( this, arguments );\n};\n\nOO.inheritClass( ext.cpd.ve.ce.CPDProcessNode, ve.ce.MWExtensionNode );\n\next.cpd.ve.ce.CPDProcessNode.static.name = 'bpmn';\n\next.cpd.ve.ce.CPDProcessNode.static.primaryCommandName = 'bpmnCommand';\n\n// If body is empty, tag does not render anything\next.cpd.ve.ce.CPDProcessNode.static.rendersEmpty = false;\n\n/* Registration */\nve.ce.nodeFactory.register( ext.cpd.ve.ce.CPDProcessNode );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ve/dm/CPDProcessNode.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":7,"column":32,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":7,"endColumn":41}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext = window.ext || {};\n\next.cpd = ext.cpd || {};\next.cpd.ve = ext.cpd.ve || {};\next.cpd.ve.dm = ext.cpd.ve.dm || {};\n\next.cpd.ve.dm.CPDProcessNode = function () {\n\text.cpd.ve.dm.CPDProcessNode.super.apply( this, arguments );\n};\n\nOO.inheritClass( ext.cpd.ve.dm.CPDProcessNode, ve.dm.MWExtensionNode );\n\next.cpd.ve.dm.CPDProcessNode.static.name = 'bpmn';\n\next.cpd.ve.dm.CPDProcessNode.static.tagName = 'div';\n\n// Name of the parser tag\next.cpd.ve.dm.CPDProcessNode.static.extensionName = 'bpmn';\n\n// This tag renders without content\next.cpd.ve.dm.CPDProcessNode.static.childNodeTypes = [];\next.cpd.ve.dm.CPDProcessNode.static.isContent = false;\n\nve.dm.modelRegistry.register( ext.cpd.ve.dm.CPDProcessNode );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ve/ui/CPDProcessNodeInspector.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":7,"column":41,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":7,"endColumn":50},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":33,"column":62,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":33,"endColumn":71},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":62,"column":64,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":62,"endColumn":73},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":73,"column":62,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":73,"endColumn":71},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":97,"column":67,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":97,"endColumn":76},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":114,"column":62,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":114,"endColumn":71},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":121,"column":64,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":121,"endColumn":73},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":144,"column":80,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":144,"endColumn":89},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":148,"column":65,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":148,"endColumn":74}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext = window.ext || {};\n\next.cpd = ext.cpd || {};\next.cpd.ve = ext.cpd.ve || {};\next.cpd.ve.ui = ext.cpd.ve.ui || {};\n\next.cpd.ve.ui.CPDProcessNodeInspector = function ( config ) {\n\t// Parent constructor\n\text.cpd.ve.ui.CPDProcessNodeInspector.super.call(\n\t\tthis, ve.extendObject( { padded: true }, config )\n\t);\n};\n\n/* Inheritance */\n\nOO.inheritClass( ext.cpd.ve.ui.CPDProcessNodeInspector, ve.ui.MWLiveExtensionInspector );\n\n/* Static properties */\n\next.cpd.ve.ui.CPDProcessNodeInspector.static.name = 'cpdProcessInspector';\n\next.cpd.ve.ui.CPDProcessNodeInspector.static.title = mw.message( 'cpd-droplet-name' ).plain();\n\next.cpd.ve.ui.CPDProcessNodeInspector.static.modelClasses =\n\t[ ext.cpd.ve.dm.CPDProcessNode ];\n\next.cpd.ve.ui.CPDProcessNodeInspector.static.dir = 'ltr';\n\n// This tag does not have any content\next.cpd.ve.ui.CPDProcessNodeInspector.static.allowedEmpty = true;\next.cpd.ve.ui.CPDProcessNodeInspector.static.selfCloseEmptyBody = true;\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.initialize = function () {\n\text.cpd.ve.ui.CPDProcessNodeInspector.super.prototype.initialize.call( this );\n\n\t// remove input field with links in it\n\tthis.input.$element.remove();\n\n\tthis.indexLayout = new OO.ui.PanelLayout( {\n\t\texpanded: false,\n\t\tpadded: true\n\t} );\n\n\tthis.createFields();\n\n\tthis.setLayouts();\n\n\t// Initialization\n\tthis.$content.addClass( 'cpd-process-inspector-body' );\n\n\tthis.indexLayout.$element.append(\n\t\tthis.processTitleLayout.$element,\n\t\tthis.widthLayout.$element,\n\t\tthis.heightLayout.$element,\n\t\tthis.toolbarLayout.$element\n\t);\n\tthis.form.$element.append(\n\t\tthis.indexLayout.$element\n\t);\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.createFields = function () {\n\tthis.processTitleInput = new ext.cpd.ui.ProcessInputWidget();\n\tthis.width = new OO.ui.NumberInputWidget();\n\tthis.height = new OO.ui.NumberInputWidget( {\n\t\trequired: true\n\t} );\n\tthis.toolbar = new OO.ui.ToggleSwitchWidget( {\n\t\tvalue: true\n\t} );\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.setLayouts = function () {\n\tthis.processTitleLayout = new OO.ui.FieldLayout( this.processTitleInput, {\n\t\talign: 'top',\n\t\tlabel: ve.msg( 'cpd-droplet-process-field-label' ),\n\t\thelp: ve.msg( 'cpd-droplet-process-field-label-help' )\n\t} );\n\n\tthis.widthLayout = new OO.ui.FieldLayout( this.width, {\n\t\talign: 'top',\n\t\tlabel: ve.msg( 'cpd-droplet-width-field-label' ),\n\t\thelp: ve.msg( 'cpd-droplet-width-field-label-help' )\n\t} );\n\tthis.heightLayout = new OO.ui.FieldLayout( this.height, {\n\t\talign: 'top',\n\t\tlabel: ve.msg( 'cpd-droplet-height-field-label' ),\n\t\thelp: ve.msg( 'cpd-droplet-height-field-label-help' )\n\t} );\n\tthis.toolbarLayout = new OO.ui.FieldLayout( this.toolbar, {\n\t\talign: 'left',\n\t\tlabel: ve.msg( 'cpd-droplet-show-toolbar-field-label' ),\n\t\thelp: ve.msg( 'cpd-droplet-show-toolbar-field-label-help' )\n\t} );\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.getSetupProcess = function ( data ) {\n\treturn ext.cpd.ve.ui.CPDProcessNodeInspector.super.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tconst attributes = this.selectedNode.getAttribute( 'mw' ).attrs;\n\n\t\t\tthis.processTitleInput.setValue( attributes.process || '' );\n\t\t\tthis.width.setValue( attributes.width || '' );\n\t\t\tthis.height.setValue( attributes.height || mw.config.get( 'cpdCanvasDefaultHeight' ) );\n\n\t\t\tif ( attributes.toolbar ) {\n\t\t\t\tthis.toolbar.setValue( attributes.toolbar );\n\t\t\t}\n\n\t\t\tthis.actions.setAbilities( { done: true } );\n\t\t}, this );\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.wireEvents = function () {\n\tthis.processTitleInput.on( 'change', this.onChangeHandler );\n\tthis.width.on( 'change', this.onChangeHandler );\n\tthis.height.on( 'change', this.onChangeHandler );\n\tthis.toolbar.on( 'change', this.onChangeHandler );\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.updateMwData = function ( mwData ) {\n\text.cpd.ve.ui.CPDProcessNodeInspector.super.prototype.updateMwData.call( this, mwData );\n\n\tif ( this.processTitleInput.getValue() !== '' ) {\n\t\tmwData.attrs.process = this.processTitleInput.getValue();\n\t}\n\tif ( this.width.getValue() !== '' ) {\n\t\tmwData.attrs.width = this.width.getValue();\n\t} else {\n\t\tdelete ( mwData.attrs.width );\n\t}\n\tif ( this.height.getValue() !== '' ) {\n\t\tmwData.attrs.height = this.height.getValue();\n\t} else {\n\t\tdelete ( mwData.attrs.height );\n\t}\n\tif ( this.toolbar.getValue() ) {\n\t\tmwData.attrs.toolbar = 'true';\n\t} else {\n\t\tdelete ( mwData.attrs.toolbar );\n\t}\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.formatGeneratedContentsError = function ( $element ) {\n\treturn $element.text().trim();\n};\n\next.cpd.ve.ui.CPDProcessNodeInspector.prototype.onTabPanelSet = function () {\n\tthis.indexLayout.getCurrentTabPanel().$element.append( this.generatedContentsError.$element );\n};\n\nve.ui.windowFactory.register( ext.cpd.ve.ui.CPDProcessNodeInspector );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ve/ui/CPDProcessNodeInspectorTool.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":7,"column":45,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":7,"endColumn":54}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"window.ext = window.ext || {};\n\next.cpd = ext.cpd || {};\next.cpd.ve = ext.cpd.ve || {};\next.cpd.ve.ui = ext.cpd.ve.ui || {};\n\next.cpd.ve.ui.CPDProcessNodeInspectorTool = function ( config ) {\n\t// Parent constructor\n\text.cpd.ve.ui.CPDProcessNodeInspectorTool.super.call(\n\t\tthis, ve.extendObject( { padded: true }, config )\n\t);\n};\n\n/* Inheritance */\n\nOO.inheritClass( ext.cpd.ve.ui.CPDProcessNodeInspectorTool, ve.ui.FragmentInspectorTool );\n\n/* Static properties */\n\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.name = 'cpdProcessInspectorTool';\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.group = 'none';\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.title = mw.message( 'cpd-droplet-name' ).plain();\n\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.autoAddToCatchall = false;\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.autoAddToGroup = false;\n\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.modelClasses = [ ext.cpd.ve.dm.CPDProcessNode ];\next.cpd.ve.ui.CPDProcessNodeInspectorTool.static.commandName = 'bpmnCommand';\n\nve.ui.toolFactory.register( ext.cpd.ve.ui.CPDProcessNodeInspectorTool );\n\nve.ui.commandRegistry.register(\n\tnew ve.ui.Command(\n\t\t'bpmnCommand', 'window', 'open',\n\t\t{ args: [ 'cpdProcessInspector' ], supportedSelections: [ 'linear' ] }\n\t)\n);\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/js/ve/ve.ui.DiffElement.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":1,"column":21,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":1,"endColumn":45}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"ve.ui.DiffElement = function VeUiDiffElement( visualDiff, config ) {\n\tconst module = require( 'ext.cpd.cpddiffer' );\n\tconst bpmnDiffer = new module.CpdBpmnDiffer(\n\t\tmw.config.get( \"cpdProcess\" ),\n\t\tmw.config.get( \"cpdDiffContainerHeight\" )\n\t);\n\n\tve.ui.DiffElement.super.call( this, config );\n\tthis.$document = $( '<div>' ).addClass( 've-ui-diffElement-document' );\n\n\tbpmnDiffer.createDiff( mw.config.get( \"wgDiffOldId\" ), mw.config.get( \"wgDiffNewId\" ) ).then(\n\t\t( diff ) => this.$element.append( $( diff ) )\n\t);\n};\nOO.inheritClass( ve.ui.DiffElement, OO.ui.Element );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/vue/init.js","messages":[{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":1,"column":3,"nodeType":"FunctionExpression","messageId":"missingReturnType","endLine":1,"endColumn":12},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":5,"column":2,"nodeType":"FunctionDeclaration","messageId":"missingReturnType","endLine":5,"endColumn":17},{"ruleId":"@typescript-eslint/explicit-function-return-type","severity":1,"message":"Missing return type on function.","line":26,"column":2,"nodeType":"FunctionDeclaration","messageId":"missingReturnType","endLine":26,"endColumn":23}],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":20,"column":4,"nodeType":"CallExpression","endLine":20,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":36,"column":6,"nodeType":"MemberExpression","messageId":"unexpected","endLine":36,"endColumn":19,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[893,937],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function ( mw, $ ) {\n\tconst Vue = require( 'vue' );\n\tconst App = require( './components/App.vue' );\n\n\tfunction render() {\n\t\tconst deferred = $.Deferred();\n\t\tconst dfdList = getStoreData();\n\t\tconst h = Vue.h;\n\n\t\tdfdList.then( ( items ) => {\n\t\t\tconst vm = Vue.createMwApp( {\n\t\t\t\tmounted: function () {\n\t\t\t\t\tdeferred.resolve( this.$el );\n\t\t\t\t}, render: function () {\n\t\t\t\t\treturn h( App, { items } );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tvm.mount( '#bs-cpd-wrapper' );\n\t\t\t$( '#bs-cpd-wrapper' ).removeClass( 'loading' ); // eslint-disable-line no-jquery/no-global-selector\n\t\t} );\n\n\t\treturn deferred;\n\t}\n\n\tfunction getStoreData() {\n\t\tconst dfd = $.Deferred();\n\n\t\tmw.loader.using( 'mediawiki.api' ).then( () => {\n\t\t\tconst api = new mw.Api();\n\t\t\tapi.abort();\n\t\t\tapi.get( { action: 'cpd-process-overview-store' } )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tdfd.resolve( JSON.parse( response.results ) );\n\t\t\t\t}, ( () => {\n\t\t\t\t\tconsole.error( 'loading processes failed' ); // eslint-disable-line no-console\n\t\t\t\t\tdfd.reject();\n\t\t\t\t} ) );\n\t\t} );\n\n\t\treturn dfd.promise();\n\t}\n\n\trender();\n}( mediaWiki, jQuery, document ) );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/CpdLinker.test.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'CpdChangeLogger' is defined but never used.","line":1,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":1,"endColumn":23},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'EventBus' is defined but never used.","line":2,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":2,"endColumn":16},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'ElementRegistry' is defined but never used.","line":3,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":3,"endColumn":23},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'CpdElementFactory' is defined but never used.","line":4,"column":10,"nodeType":null,"messageId":"unusedVar","endLine":4,"endColumn":27},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'CpdInlineSvgRenderer' is defined but never used.","line":5,"column":8,"nodeType":null,"messageId":"unusedVar","endLine":5,"endColumn":28}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import CpdChangeLogger from \"../../resources/js/cpd/helper/CpdChangeLogger\";\nimport EventBus from \"diagram-js/lib/core/EventBus\";\nimport ElementRegistry from \"diagram-js/lib/core/ElementRegistry\";\nimport { CpdElementFactory } from \"../../resources/js/cpd/helper/CpdElementFactory\";\nimport CpdInlineSvgRenderer from \"../../resources/js/cpd/helper/CpdInlineSvgRenderer\";\nimport CpdLinker from \"../../resources/js/cpd/helper/CpdLinker\";\n\ndescribe( \"createLinkFromDbKey\", () => {\n\ttest.each( [\n\t\t[ \"Process:Foo/Parent_1/task_1\", '<a target=\"_blank\" href=\"/jest/index.php?title=Process:Foo/Parent_1/task_1\">Parent 1/task 1</a>' ],\n\t\t[ \"Process:Foo/Parent_1/Parent_2/Parent_3/task_1\", '<a target=\"_blank\" href=\"/jest/index.php?title=Process:Foo/Parent_1/Parent_2/Parent_3/task_1\">Parent 1/Parent 2/Parent 3/task 1</a>' ],\n\t\t[ \"Process:Foo/task_1\", '<a target=\"_blank\" href=\"/jest/index.php?title=Process:Foo/task_1\">task 1</a>' ],\n\t\t[ \"Parent_1/task_1\", null ],\n\t\t[ \"task_1\", null ],\n\t\t[ \"\", null ],\n\t\t[ null, null ],\n\t] )( \"createLinkFromDbKey\", ( dbKey: string, expectLink: string ) => {\n\t\tconst link = CpdLinker.createLinkFromDbKey( dbKey );\n\t\texpect( link ).toEqual( expectLink );\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/CpdXml.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"@typescript-eslint/no-empty-interface","replacedBy":["@typescript-eslint/no-empty-object-type"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/webpack.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]
--- end ---
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'no-console' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'no-shadow' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'mediawiki/no-unlabeled-buttonwidget' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-static-fields' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'es-x/no-class-instance-fields' (broken in .eslintrc.json) on .eslintrc.json
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated lodash.get@4.4.2: This package is deprecated. Use the optional chaining (?.) operator instead.
npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated sinon@12.0.1: 16.1.1
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
> cognitive-process-designer@4.0.0 postinstall
> cp -R resources/js/cpd/bpmnlint-plugin-mediawiki-cpd node_modules && npx bpmnlint-pack-config -c .bpmnlintrc -o bpmn-lint.config.js -t es && cp node_modules/bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css resources/styles/ext && cp node_modules/bpmn-js/dist/assets/bpmn-js.css resources/styles/ext && cp node_modules/bpmn-js/dist/assets/diagram-js.css resources/styles/ext && cp node_modules/bpmn-js-color-picker/colors/color-picker.css resources/styles/ext && cp node_modules/bpmn-js-bpmnlint/dist/assets/css/bpmn-js-bpmnlint.css resources/styles/ext
added 1202 packages, and audited 1203 packages in 31s
176 packages are looking for funding
run `npm fund` for details
21 moderate severity vulnerabilities
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/CpdLinker.test.ts
PASS tests/jest/CpdXml.test.ts
Test Suites: 2 passed, 2 total
Tests: 10 passed, 10 total
Snapshots: 0 total
Time: 5.648 s
Ran all test suites.
--- stdout ---
> cognitive-process-designer@4.0.0 test
> jest && grunt test
Running "eslint:all" (eslint) task
/src/repo/Gruntfile.js
2:18 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/jest.setup.js
3:31 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:3 warning Missing return type on function @typescript-eslint/explicit-function-return-type
10:25 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
28:39 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/cpd/CpdBpmnDiffer.ts
25:26 warning ES2022 static field 'VIEWBOX_CHANGE_END_EVENT' is forbidden es-x/no-class-static-fields
27:26 warning ES2022 static field 'VIEWBOX_CHANGE_START_EVENT' is forbidden es-x/no-class-static-fields
29:26 warning ES2022 static field 'DIFF_CONTAINER_ID' is forbidden es-x/no-class-static-fields
31:26 warning ES2022 static field 'NO_DIFF_TYPES' is forbidden es-x/no-class-static-fields
33:19 warning ES2022 instance field 'process' is forbidden es-x/no-class-instance-fields
35:19 warning ES2022 instance field 'containerHeight' is forbidden es-x/no-class-instance-fields
37:10 warning ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
39:10 warning ES2022 instance field 'syncState' is forbidden es-x/no-class-instance-fields
105:4 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
150:32 warning Unexpected dangling '_' in '_layoutChanged' no-underscore-dangle
151:26 warning Unexpected dangling '_' in '_changed' no-underscore-dangle
152:26 warning Unexpected dangling '_' in '_removed' no-underscore-dangle
153:24 warning Unexpected dangling '_' in '_added' no-underscore-dangle
/src/repo/resources/js/cpd/CpdModeler.ts
21:10 warning ES2022 instance field 'changeLogger' is forbidden es-x/no-class-instance-fields
98:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
126:3 warning Prefer .then to .done no-jquery/no-done-fail
203:5 warning Unexpected console statement no-console
/src/repo/resources/js/cpd/CpdTool.ts
2:8 warning 'CpdXml' is defined but never used @typescript-eslint/no-unused-vars
10:12 warning ES2022 instance field 'bpmnTool' is forbidden es-x/no-class-instance-fields
12:12 warning ES2022 instance field 'dom' is forbidden es-x/no-class-instance-fields
14:12 warning ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
16:12 warning ES2022 instance field 'xml' is forbidden es-x/no-class-instance-fields
18:12 warning ES2022 instance field 'elementFactory' is forbidden es-x/no-class-instance-fields
20:12 warning ES2022 instance field 'diagramPage' is forbidden es-x/no-class-instance-fields
22:12 warning ES2022 instance field 'canvas' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/CpdViewer.ts
3:8 warning 'config' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'hook' is defined but never used @typescript-eslint/no-unused-vars
23:10 warning ES2022 instance field 'eventBus' is forbidden es-x/no-class-instance-fields
103:62 warning Default parameters should be last default-param-last
/src/repo/resources/js/cpd/CustomPaletteProvider.ts
5:2 warning Missing accessibility modifier on method definition getPaletteEntries @typescript-eslint/explicit-member-accessibility
5:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/CustomReplaceMenuProvider.ts
4:2 warning Missing accessibility modifier on method definition getPopupMenuEntries @typescript-eslint/explicit-member-accessibility
4:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
4:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
4:23 warning Argument 'target' should be typed @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/helper/CpdApi.ts
1:8 warning 'user' is defined but never used @typescript-eslint/no-unused-vars
3:8 warning 'message' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'Api' is defined but never used @typescript-eslint/no-unused-vars
27:25 warning ES2022 static field 'STATUS_REQUEST_STARTED' is forbidden es-x/no-class-static-fields
29:25 warning ES2022 static field 'STATUS_REQUEST_FINISHED' is forbidden es-x/no-class-static-fields
31:25 warning ES2022 static field 'STATUS_REQUEST_FAILED' is forbidden es-x/no-class-static-fields
33:19 warning ES2022 instance field 'process' is forbidden es-x/no-class-instance-fields
35:19 warning ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
55:10 warning Prefer .then to .fail no-jquery/no-done-fail
55:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
62:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
77:10 warning Prefer .then to .fail no-jquery/no-done-fail
84:23 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
98:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
116:10 warning Prefer .then to .fail no-jquery/no-done-fail
122:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
127:53 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
/src/repo/resources/js/cpd/helper/CpdChangeLogger.ts
18:26 warning ES2022 static field 'ELEMENT_CREATE' is forbidden es-x/no-class-static-fields
20:26 warning ES2022 static field 'ELEMENT_DELETE' is forbidden es-x/no-class-static-fields
22:26 warning ES2022 static field 'ELEMENT_RENAME' is forbidden es-x/no-class-static-fields
24:26 warning ES2022 static field 'DIAGRAM_CHANGED' is forbidden es-x/no-class-static-fields
26:10 warning ES2022 instance field 'deletions' is forbidden es-x/no-class-instance-fields
28:10 warning ES2022 instance field 'creations' is forbidden es-x/no-class-instance-fields
30:10 warning ES2022 instance field 'renames' is forbidden es-x/no-class-instance-fields
32:10 warning ES2022 instance field 'factory' is forbidden es-x/no-class-instance-fields
34:10 warning ES2022 instance field 'svgRenderer' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdDom.ts
3:8 warning 'util' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'Title' is defined but never used @typescript-eslint/no-unused-vars
39:19 warning ES2022 instance field 'container' is forbidden es-x/no-class-instance-fields
41:19 warning ES2022 instance field 'diagramPage' is forbidden es-x/no-class-instance-fields
43:10 warning ES2022 instance field 'messageBox' is forbidden es-x/no-class-instance-fields
45:10 warning ES2022 instance field 'saveDialog' is forbidden es-x/no-class-instance-fields
47:10 warning ES2022 instance field 'openDialogBtn' is forbidden es-x/no-class-instance-fields
49:10 warning ES2022 instance field 'cancelBtn' is forbidden es-x/no-class-instance-fields
51:10 warning ES2022 instance field 'showXmlBtn' is forbidden es-x/no-class-instance-fields
53:10 warning ES2022 instance field 'showDiagramBtn' is forbidden es-x/no-class-instance-fields
55:10 warning ES2022 instance field 'centerViewportBtn' is forbidden es-x/no-class-instance-fields
57:10 warning ES2022 instance field 'exportBtn' is forbidden es-x/no-class-instance-fields
59:10 warning ES2022 instance field 'importBtn' is forbidden es-x/no-class-instance-fields
61:10 warning ES2022 instance field 'groupToolBtn' is forbidden es-x/no-class-instance-fields
63:10 warning ES2022 instance field 'fileInput' is forbidden es-x/no-class-instance-fields
65:10 warning ES2022 instance field 'svgFileLink' is forbidden es-x/no-class-instance-fields
67:10 warning ES2022 instance field 'diagramPageLink' is forbidden es-x/no-class-instance-fields
69:10 warning ES2022 instance field 'canvas' is forbidden es-x/no-class-instance-fields
71:10 warning ES2022 instance field 'xmlContainer' is forbidden es-x/no-class-instance-fields
73:10 warning ES2022 instance field 'loadingAnimation' is forbidden es-x/no-class-instance-fields
75:10 warning ES2022 instance field 'viewMode' is forbidden es-x/no-class-instance-fields
77:10 warning ES2022 instance field 'isEdit' is forbidden es-x/no-class-instance-fields
79:10 warning ES2022 instance field 'openDialogOptions' is forbidden es-x/no-class-instance-fields
452:5 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
453:47 warning 'item' is already declared in the upper scope on line 408 column 16 no-shadow
481:47 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
482:50 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
/src/repo/resources/js/cpd/helper/CpdElementFactory.ts
16:19 warning ES2022 instance field 'subpageTypes' is forbidden es-x/no-class-instance-fields
18:10 warning ES2022 instance field 'elementRegistry' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdInlineSvgRenderer.ts
6:10 warning ES2022 instance field 'elementRegistry' is forbidden es-x/no-class-instance-fields
8:10 warning ES2022 instance field 'largeTypes' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdSaveDialog.ts
10:19 warning ES2022 instance field 'dialog' is forbidden es-x/no-class-instance-fields
48:74 warning ES2020 nullish coalescing operators are forbidden es-x/no-nullish-coalescing-operators
73:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
/src/repo/resources/js/cpd/helper/CpdTranslator.ts
6:19 warning ES2022 instance field 'translations' is forbidden es-x/no-class-instance-fields
6:48 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
19:55 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
27:69 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
/src/repo/resources/js/cpd/helper/CpdValidator.ts
3:8 warning 'ElementRegistry' is defined but never used @typescript-eslint/no-unused-vars
19:25 warning ES2022 static field 'VALIDATION_EVENT' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/helper/CpdXml.ts
1:8 warning 'notify' is defined but never used @typescript-eslint/no-unused-vars
22:1 warning Missing JSDoc @param "xml" type jsdoc/require-param-type
37:22 warning OO.ui.ButtonWidget has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
44:4 warning navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
/src/repo/resources/js/cpd/model/CpdElement.ts
4:18 warning ES2022 instance field 'bpmnElement' is forbidden es-x/no-class-instance-fields
14:2 warning Missing accessibility modifier on get property accessor id @typescript-eslint/explicit-member-accessibility
18:2 warning Missing accessibility modifier on get property accessor type @typescript-eslint/explicit-member-accessibility
22:2 warning Missing accessibility modifier on get property accessor label @typescript-eslint/explicit-member-accessibility
34:2 warning Missing accessibility modifier on set property accessor label @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/cpd/oojs-ui/Button.ts
2:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
2:18 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
8:2 warning Missing accessibility modifier on method definition onUpdateState @typescript-eslint/explicit-member-accessibility
8:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
8:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
8:18 warning Unexpected empty method 'onUpdateState' @typescript-eslint/no-empty-function
11:2 warning Missing accessibility modifier on method definition setLabel @typescript-eslint/explicit-member-accessibility
11:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
11:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
15:2 warning Missing accessibility modifier on method definition getTagName @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/cpd/oojs-ui/CancelButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/CenterViewportButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/DiagramPageLinkButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
13:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
13:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
13:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
13:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/ExportButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/GroupTool.ts
5:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
5:18 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/ImportButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/LinkButton.ts
4:2 warning Missing accessibility modifier on method definition setLink @typescript-eslint/explicit-member-accessibility
14:2 warning Missing accessibility modifier on method definition onSelect @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/oojs-ui/OpenDialogButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/SaveDialog.ts
16:10 warning ES2022 instance field 'panels' is forbidden es-x/no-class-instance-fields
18:10 warning ES2022 instance field 'savePanel' is forbidden es-x/no-class-instance-fields
20:10 warning ES2022 instance field 'reviewPanel' is forbidden es-x/no-class-instance-fields
22:10 warning ES2022 instance field 'reviewContent' is forbidden es-x/no-class-instance-fields
25:10 warning ES2022 instance field 'changesPanel' is forbidden es-x/no-class-instance-fields
27:10 warning ES2022 instance field 'postSaveMessages' is forbidden es-x/no-class-instance-fields
29:10 warning ES2022 instance field 'postSaveWarnings' is forbidden es-x/no-class-instance-fields
31:10 warning ES2022 instance field 'savePagesCheckbox' is forbidden es-x/no-class-instance-fields
33:10 warning ES2022 instance field 'changeLogMessages' is forbidden es-x/no-class-instance-fields
35:10 warning ES2022 instance field 'saveWithPages' is forbidden es-x/no-class-instance-fields
37:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
37:18 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
89:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
107:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
128:26 warning Argument 'data' should be typed with a non-any type @typescript-eslint/explicit-module-boundary-types
128:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
166:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
172:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
189:18 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc
/src/repo/resources/js/cpd/oojs-ui/ShowDiagramButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/ShowXmlButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/SvgFileLinkButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
13:2 warning Missing accessibility modifier on method definition setDisabled @typescript-eslint/explicit-member-accessibility
23:2 warning Missing accessibility modifier on method definition setLink @typescript-eslint/explicit-member-accessibility
28:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
28:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
28:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
28:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/renderer/CpdElementsRenderer.ts
9:2 warning Missing accessibility modifier on class property $inject @typescript-eslint/explicit-member-accessibility
9:9 warning ES2022 static field '$inject' is forbidden es-x/no-class-static-fields
11:26 warning ES2022 static field 'HIGHLIGHT_COLOR' is forbidden es-x/no-class-static-fields
13:10 warning ES2022 instance field 'bpmnRenderer' is forbidden es-x/no-class-instance-fields
15:2 warning Missing accessibility modifier on method definition constructor @typescript-eslint/explicit-member-accessibility
15:15 warning Argument 'eventBus' should be typed @typescript-eslint/explicit-module-boundary-types
15:25 warning Argument 'bpmnRenderer' should be typed @typescript-eslint/explicit-module-boundary-types
20:2 warning Missing accessibility modifier on method definition canRender @typescript-eslint/explicit-member-accessibility
24:2 warning Missing accessibility modifier on method definition drawShape @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/ext.cpd.DiagramUsageInformationPage.js
1:10 warning Missing return type on function @typescript-eslint/explicit-function-return-type
7:45 warning Missing return type on function @typescript-eslint/explicit-function-return-type
13:72 warning Missing return type on function @typescript-eslint/explicit-function-return-type
21:61 warning Missing return type on function @typescript-eslint/explicit-function-return-type
25:73 warning Missing return type on function @typescript-eslint/explicit-function-return-type
60:79 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ext.cpd.NewProcessDialog.js
3:28 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:59 warning Missing return type on function @typescript-eslint/explicit-function-return-type
32:51 warning Missing return type on function @typescript-eslint/explicit-function-return-type
52:60 warning Missing return type on function @typescript-eslint/explicit-function-return-type
54:36 warning Unexpected empty arrow function @typescript-eslint/no-empty-function
57:61 warning Missing return type on function @typescript-eslint/explicit-function-return-type
61:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
68:49 warning Missing return type on function @typescript-eslint/explicit-function-return-type
82:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
86:34 warning Unexpected empty arrow function @typescript-eslint/no-empty-function
89:43 warning Missing return type on function @typescript-eslint/explicit-function-return-type
101:52 warning Missing return type on function @typescript-eslint/explicit-function-return-type
109:55 warning Missing return type on function @typescript-eslint/explicit-function-return-type
118:51 warning Missing return type on function @typescript-eslint/explicit-function-return-type
125:66 warning Missing return type on function @typescript-eslint/explicit-function-return-type
129:52 warning Missing return type on function @typescript-eslint/explicit-function-return-type
138:60 warning Missing return type on function @typescript-eslint/explicit-function-return-type
145:2 warning Prefer .then to .done no-jquery/no-done-fail
145:2 warning Prefer .then to .fail no-jquery/no-done-fail
176:47 warning Missing return type on function @typescript-eslint/explicit-function-return-type
184:49 warning Missing return type on function @typescript-eslint/explicit-function-return-type
190:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ext.cpd.special.OrphanedDescriptionPagesGrid.js
5:13 warning Missing return type on function @typescript-eslint/explicit-function-return-type
6:48 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ui/ProcessInputWidget.js
6:33 warning Missing return type on function @typescript-eslint/explicit-function-return-type
20:72 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ce/CPDProcessNode.js
7:32 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/dm/CPDProcessNode.js
7:32 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ui/CPDProcessNodeInspector.js
7:41 warning Missing return type on function @typescript-eslint/explicit-function-return-type
33:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
62:64 warning Missing return type on function @typescript-eslint/explicit-function-return-type
73:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
97:67 warning Missing return type on function @typescript-eslint/explicit-function-return-type
114:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
121:64 warning Missing return type on function @typescript-eslint/explicit-function-return-type
144:80 warning Missing return type on function @typescript-eslint/explicit-function-return-type
148:65 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ui/CPDProcessNodeInspectorTool.js
7:45 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ve.ui.DiffElement.js
1:21 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/vue/init.js
1:3 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
26:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/tests/jest/CpdLinker.test.ts
1:8 warning 'CpdChangeLogger' is defined but never used @typescript-eslint/no-unused-vars
2:8 warning 'EventBus' is defined but never used @typescript-eslint/no-unused-vars
3:8 warning 'ElementRegistry' is defined but never used @typescript-eslint/no-unused-vars
4:10 warning 'CpdElementFactory' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'CpdInlineSvgRenderer' is defined but never used @typescript-eslint/no-unused-vars
✖ 245 problems (0 errors, 245 warnings)
Running "stylelint:all" (stylelint) task
>> Linted 18 files without errors
Running "banana:CognitiveProcessDesigner" (banana) task
>> 1 message directory checked.
Done.
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"@istanbuljs/load-nyc-config": {
"name": "@istanbuljs/load-nyc-config",
"severity": "moderate",
"isDirect": false,
"via": [
"js-yaml"
],
"effects": [
"babel-plugin-istanbul"
],
"range": "*",
"nodes": [
"node_modules/@istanbuljs/load-nyc-config"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/core": {
"name": "@jest/core",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/reporters",
"@jest/transform",
"jest-config",
"jest-resolve-dependencies",
"jest-runner",
"jest-runtime",
"jest-snapshot"
],
"effects": [
"jest",
"jest-cli"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/core"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/expect": {
"name": "@jest/expect",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-snapshot"
],
"effects": [
"@jest/globals",
"jest-circus"
],
"range": "*",
"nodes": [
"node_modules/@jest/expect"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/globals": {
"name": "@jest/globals",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/expect"
],
"effects": [
"jest-runtime"
],
"range": ">=28.0.0-alpha.0",
"nodes": [
"node_modules/@jest/globals"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/reporters": {
"name": "@jest/reporters",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform"
],
"effects": [],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/reporters"
],
"fixAvailable": true
},
"@jest/transform": {
"name": "@jest/transform",
"severity": "moderate",
"isDirect": false,
"via": [
"babel-plugin-istanbul"
],
"effects": [
"@jest/core",
"@jest/reporters",
"jest-runner",
"jest-runtime",
"jest-snapshot",
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/transform"
],
"fixAvailable": {
"name": "ts-jest",
"version": "29.1.2",
"isSemVerMajor": true
}
},
"babel-jest": {
"name": "babel-jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/transform",
"babel-plugin-istanbul"
],
"effects": [
"jest-config",
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/babel-jest"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"babel-plugin-istanbul": {
"name": "babel-plugin-istanbul",
"severity": "moderate",
"isDirect": false,
"via": [
"@istanbuljs/load-nyc-config"
],
"effects": [
"@jest/transform",
"babel-jest"
],
"range": ">=6.0.0-beta.0",
"nodes": [
"node_modules/babel-plugin-istanbul"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"create-jest": {
"name": "create-jest",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-config"
],
"effects": [
"jest-cli"
],
"range": ">=29.7.0",
"nodes": [
"node_modules/create-jest"
],
"fixAvailable": true
},
"grunt": {
"name": "grunt",
"severity": "moderate",
"isDirect": true,
"via": [
"js-yaml"
],
"effects": [
"grunt-eslint"
],
"range": ">=0.4.0-a",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"grunt-eslint": {
"name": "grunt-eslint",
"severity": "moderate",
"isDirect": true,
"via": [
"grunt"
],
"effects": [],
"range": "<=1.0.0 || >=18.1.0",
"nodes": [
"node_modules/grunt-eslint"
],
"fixAvailable": {
"name": "grunt-eslint",
"version": "18.0.0",
"isSemVerMajor": true
}
},
"jest": {
"name": "jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/core",
"jest-cli"
],
"effects": [
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"jest-circus": {
"name": "jest-circus",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/expect",
"jest-runtime",
"jest-snapshot"
],
"effects": [
"jest-config"
],
"range": ">=25.2.4",
"nodes": [
"node_modules/jest-circus"
],
"fixAvailable": true
},
"jest-cli": {
"name": "jest-cli",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/core",
"create-jest",
"jest-config"
],
"effects": [],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-cli"
],
"fixAvailable": true
},
"jest-config": {
"name": "jest-config",
"severity": "moderate",
"isDirect": false,
"via": [
"babel-jest",
"jest-circus",
"jest-runner"
],
"effects": [
"create-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-config"
],
"fixAvailable": true
},
"jest-resolve-dependencies": {
"name": "jest-resolve-dependencies",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-snapshot"
],
"effects": [],
"range": ">=27.0.0-next.0",
"nodes": [
"node_modules/jest-resolve-dependencies"
],
"fixAvailable": true
},
"jest-runner": {
"name": "jest-runner",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform",
"jest-runtime"
],
"effects": [
"@jest/core",
"jest-config"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-runner"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"jest-runtime": {
"name": "jest-runtime",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/globals",
"@jest/transform",
"jest-snapshot"
],
"effects": [
"jest-circus",
"jest-runner"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-runtime"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"jest-snapshot": {
"name": "jest-snapshot",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform"
],
"effects": [
"@jest/expect",
"jest-circus",
"jest-resolve-dependencies",
"jest-runtime"
],
"range": ">=27.0.0-next.0",
"nodes": [
"node_modules/jest-snapshot"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"js-yaml": {
"name": "js-yaml",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1109754,
"name": "js-yaml",
"dependency": "js-yaml",
"title": "js-yaml has prototype pollution in merge (<<)",
"url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
"severity": "moderate",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<4.1.1"
}
],
"effects": [
"@istanbuljs/load-nyc-config",
"grunt"
],
"range": "<4.1.1",
"nodes": [
"node_modules/@eslint/eslintrc/node_modules/js-yaml",
"node_modules/cosmiconfig/node_modules/js-yaml",
"node_modules/eslint/node_modules/js-yaml",
"node_modules/js-yaml"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"ts-jest": {
"name": "ts-jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/transform",
"babel-jest",
"jest"
],
"effects": [],
"range": ">=25.10.0-alpha.1",
"nodes": [
"node_modules/ts-jest"
],
"fixAvailable": {
"name": "ts-jest",
"version": "29.1.2",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 21,
"high": 0,
"critical": 0,
"total": 21
},
"dependencies": {
"prod": 40,
"dev": 1164,
"optional": 2,
"peer": 0,
"peerOptional": 0,
"total": 1203
}
}
}
--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
--- stdout ---
{
"added": 5,
"removed": 8,
"changed": 6,
"audited": 1201,
"funding": 177,
"audit": {
"auditReportVersion": 2,
"vulnerabilities": {
"@istanbuljs/load-nyc-config": {
"name": "@istanbuljs/load-nyc-config",
"severity": "moderate",
"isDirect": false,
"via": [
"js-yaml"
],
"effects": [
"babel-plugin-istanbul"
],
"range": "*",
"nodes": [
"node_modules/@istanbuljs/load-nyc-config"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/core": {
"name": "@jest/core",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/reporters",
"@jest/transform",
"jest-config",
"jest-resolve-dependencies",
"jest-runner",
"jest-runtime",
"jest-snapshot"
],
"effects": [
"jest",
"jest-cli"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/core"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"@jest/expect": {
"name": "@jest/expect",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-snapshot"
],
"effects": [
"@jest/globals",
"jest-circus"
],
"range": "*",
"nodes": [
"node_modules/@jest/expect"
],
"fixAvailable": true
},
"@jest/globals": {
"name": "@jest/globals",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/expect"
],
"effects": [
"jest-runtime"
],
"range": ">=28.0.0-alpha.0",
"nodes": [
"node_modules/@jest/globals"
],
"fixAvailable": true
},
"@jest/reporters": {
"name": "@jest/reporters",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform"
],
"effects": [],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/reporters"
],
"fixAvailable": true
},
"@jest/transform": {
"name": "@jest/transform",
"severity": "moderate",
"isDirect": false,
"via": [
"babel-plugin-istanbul"
],
"effects": [
"@jest/core",
"@jest/reporters",
"jest-runner",
"jest-runtime",
"jest-snapshot",
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/@jest/transform"
],
"fixAvailable": {
"name": "ts-jest",
"version": "29.1.2",
"isSemVerMajor": true
}
},
"babel-jest": {
"name": "babel-jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/transform",
"babel-plugin-istanbul"
],
"effects": [
"jest-config",
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/babel-jest"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"babel-plugin-istanbul": {
"name": "babel-plugin-istanbul",
"severity": "moderate",
"isDirect": false,
"via": [
"@istanbuljs/load-nyc-config"
],
"effects": [
"@jest/transform",
"babel-jest"
],
"range": ">=6.0.0-beta.0",
"nodes": [
"node_modules/babel-plugin-istanbul"
],
"fixAvailable": {
"name": "babel-jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"create-jest": {
"name": "create-jest",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-config"
],
"effects": [
"jest-cli"
],
"range": ">=29.7.0",
"nodes": [
"node_modules/create-jest"
],
"fixAvailable": true
},
"grunt": {
"name": "grunt",
"severity": "moderate",
"isDirect": true,
"via": [
"js-yaml"
],
"effects": [
"grunt-eslint"
],
"range": ">=0.4.0-a",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"grunt-eslint": {
"name": "grunt-eslint",
"severity": "moderate",
"isDirect": true,
"via": [
"grunt"
],
"effects": [],
"range": "<=1.0.0 || >=18.1.0",
"nodes": [
"node_modules/grunt-eslint"
],
"fixAvailable": {
"name": "grunt-eslint",
"version": "18.0.0",
"isSemVerMajor": true
}
},
"jest": {
"name": "jest",
"severity": "moderate",
"isDirect": true,
"via": [
"@jest/core",
"jest-cli"
],
"effects": [
"ts-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"jest-circus": {
"name": "jest-circus",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/expect",
"jest-runtime",
"jest-snapshot"
],
"effects": [
"jest-config"
],
"range": ">=25.2.4",
"nodes": [
"node_modules/jest-circus"
],
"fixAvailable": true
},
"jest-cli": {
"name": "jest-cli",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/core",
"create-jest",
"jest-config"
],
"effects": [],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-cli"
],
"fixAvailable": true
},
"jest-config": {
"name": "jest-config",
"severity": "moderate",
"isDirect": false,
"via": [
"babel-jest",
"jest-circus",
"jest-runner"
],
"effects": [
"create-jest"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-config"
],
"fixAvailable": true
},
"jest-resolve-dependencies": {
"name": "jest-resolve-dependencies",
"severity": "moderate",
"isDirect": false,
"via": [
"jest-snapshot"
],
"effects": [],
"range": ">=27.0.0-next.0",
"nodes": [
"node_modules/jest-resolve-dependencies"
],
"fixAvailable": true
},
"jest-runner": {
"name": "jest-runner",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform",
"jest-runtime"
],
"effects": [
"jest-config"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-runner"
],
"fixAvailable": true
},
"jest-runtime": {
"name": "jest-runtime",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/globals",
"@jest/transform",
"jest-snapshot"
],
"effects": [
"jest-circus",
"jest-runner"
],
"range": ">=25.1.0",
"nodes": [
"node_modules/jest-runtime"
],
"fixAvailable": true
},
"jest-snapshot": {
"name": "jest-snapshot",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform"
],
"effects": [
"@jest/core",
"@jest/expect",
"jest-circus",
"jest-resolve-dependencies",
"jest-runtime"
],
"range": ">=27.0.0-next.0",
"nodes": [
"node_modules/jest-snapshot"
],
"fixAvailable": {
"name": "jest",
"version": "25.0.0",
"isSemVerMajor": true
}
},
"js-yaml": {
"name": "js-yaml",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1109754,
"name": "js-yaml",
"dependency": "js-yaml",
"title": "js-yaml has prototype pollution in merge (<<)",
"url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
"severity": "moderate",
"cwe": [
"CWE-1321"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<4.1.1"
}
],
"effects": [
"@istanbuljs/load-nyc-config",
"grunt"
],
"range": "<4.1.1",
"nodes": [
"",
"",
"",
"",
"node_modules/js-yaml"
],
"fixAvailable": {
"name": "grunt",
"version": "0.3.17",
"isSemVerMajor": true
}
},
"ts-jest": {
"name": "ts-jest",
"severity": "moderate",
"isDirect": false,
"via": [
"@jest/transform",
"babel-jest",
"jest"
],
"effects": [],
"range": ">=25.10.0-alpha.1",
"nodes": [
""
],
"fixAvailable": {
"name": "ts-jest",
"version": "29.1.2",
"isSemVerMajor": true
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 21,
"high": 0,
"critical": 0,
"total": 21
},
"dependencies": {
"prod": 40,
"dev": 1161,
"optional": 3,
"peer": 0,
"peerOptional": 0,
"total": 1200
}
}
}
}
--- end ---
{"added": 5, "removed": 8, "changed": 6, "audited": 1201, "funding": 177, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@istanbuljs/load-nyc-config": {"name": "@istanbuljs/load-nyc-config", "severity": "moderate", "isDirect": false, "via": ["js-yaml"], "effects": ["babel-plugin-istanbul"], "range": "*", "nodes": ["node_modules/@istanbuljs/load-nyc-config"], "fixAvailable": {"name": "babel-jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/core": {"name": "@jest/core", "severity": "moderate", "isDirect": false, "via": ["@jest/reporters", "@jest/transform", "jest-config", "jest-resolve-dependencies", "jest-runner", "jest-runtime", "jest-snapshot"], "effects": ["jest", "jest-cli"], "range": ">=25.1.0", "nodes": ["node_modules/@jest/core"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "@jest/expect": {"name": "@jest/expect", "severity": "moderate", "isDirect": false, "via": ["jest-snapshot"], "effects": ["@jest/globals", "jest-circus"], "range": "*", "nodes": ["node_modules/@jest/expect"], "fixAvailable": true}, "@jest/globals": {"name": "@jest/globals", "severity": "moderate", "isDirect": false, "via": ["@jest/expect"], "effects": ["jest-runtime"], "range": ">=28.0.0-alpha.0", "nodes": ["node_modules/@jest/globals"], "fixAvailable": true}, "@jest/reporters": {"name": "@jest/reporters", "severity": "moderate", "isDirect": false, "via": ["@jest/transform"], "effects": [], "range": ">=25.1.0", "nodes": ["node_modules/@jest/reporters"], "fixAvailable": true}, "@jest/transform": {"name": "@jest/transform", "severity": "moderate", "isDirect": false, "via": ["babel-plugin-istanbul"], "effects": ["@jest/core", "@jest/reporters", "jest-runner", "jest-runtime", "jest-snapshot", "ts-jest"], "range": ">=25.1.0", "nodes": ["node_modules/@jest/transform"], "fixAvailable": {"name": "ts-jest", "version": "29.1.2", "isSemVerMajor": true}}, "babel-jest": {"name": "babel-jest", "severity": "moderate", "isDirect": true, "via": ["@jest/transform", "babel-plugin-istanbul"], "effects": ["jest-config", "ts-jest"], "range": ">=25.1.0", "nodes": ["node_modules/babel-jest"], "fixAvailable": {"name": "babel-jest", "version": "25.0.0", "isSemVerMajor": true}}, "babel-plugin-istanbul": {"name": "babel-plugin-istanbul", "severity": "moderate", "isDirect": false, "via": ["@istanbuljs/load-nyc-config"], "effects": ["@jest/transform", "babel-jest"], "range": ">=6.0.0-beta.0", "nodes": ["node_modules/babel-plugin-istanbul"], "fixAvailable": {"name": "babel-jest", "version": "25.0.0", "isSemVerMajor": true}}, "create-jest": {"name": "create-jest", "severity": "moderate", "isDirect": false, "via": ["jest-config"], "effects": ["jest-cli"], "range": ">=29.7.0", "nodes": ["node_modules/create-jest"], "fixAvailable": true}, "grunt": {"name": "grunt", "severity": "moderate", "isDirect": true, "via": ["js-yaml"], "effects": ["grunt-eslint"], "range": ">=0.4.0-a", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "grunt-eslint": {"name": "grunt-eslint", "severity": "moderate", "isDirect": true, "via": ["grunt"], "effects": [], "range": "<=1.0.0 || >=18.1.0", "nodes": ["node_modules/grunt-eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "jest": {"name": "jest", "severity": "moderate", "isDirect": true, "via": ["@jest/core", "jest-cli"], "effects": ["ts-jest"], "range": ">=25.1.0", "nodes": ["node_modules/jest"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "jest-circus": {"name": "jest-circus", "severity": "moderate", "isDirect": false, "via": ["@jest/expect", "jest-runtime", "jest-snapshot"], "effects": ["jest-config"], "range": ">=25.2.4", "nodes": ["node_modules/jest-circus"], "fixAvailable": true}, "jest-cli": {"name": "jest-cli", "severity": "moderate", "isDirect": false, "via": ["@jest/core", "create-jest", "jest-config"], "effects": [], "range": ">=25.1.0", "nodes": ["node_modules/jest-cli"], "fixAvailable": true}, "jest-config": {"name": "jest-config", "severity": "moderate", "isDirect": false, "via": ["babel-jest", "jest-circus", "jest-runner"], "effects": ["create-jest"], "range": ">=25.1.0", "nodes": ["node_modules/jest-config"], "fixAvailable": true}, "jest-resolve-dependencies": {"name": "jest-resolve-dependencies", "severity": "moderate", "isDirect": false, "via": ["jest-snapshot"], "effects": [], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-resolve-dependencies"], "fixAvailable": true}, "jest-runner": {"name": "jest-runner", "severity": "moderate", "isDirect": false, "via": ["@jest/transform", "jest-runtime"], "effects": ["jest-config"], "range": ">=25.1.0", "nodes": ["node_modules/jest-runner"], "fixAvailable": true}, "jest-runtime": {"name": "jest-runtime", "severity": "moderate", "isDirect": false, "via": ["@jest/globals", "@jest/transform", "jest-snapshot"], "effects": ["jest-circus", "jest-runner"], "range": ">=25.1.0", "nodes": ["node_modules/jest-runtime"], "fixAvailable": true}, "jest-snapshot": {"name": "jest-snapshot", "severity": "moderate", "isDirect": false, "via": ["@jest/transform"], "effects": ["@jest/core", "@jest/expect", "jest-circus", "jest-resolve-dependencies", "jest-runtime"], "range": ">=27.0.0-next.0", "nodes": ["node_modules/jest-snapshot"], "fixAvailable": {"name": "jest", "version": "25.0.0", "isSemVerMajor": true}}, "js-yaml": {"name": "js-yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1109754, "name": "js-yaml", "dependency": "js-yaml", "title": "js-yaml has prototype pollution in merge (<<)", "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<4.1.1"}], "effects": ["@istanbuljs/load-nyc-config", "grunt"], "range": "<4.1.1", "nodes": ["", "", "", "", "node_modules/js-yaml"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "ts-jest": {"name": "ts-jest", "severity": "moderate", "isDirect": false, "via": ["@jest/transform", "babel-jest", "jest"], "effects": [], "range": ">=25.10.0-alpha.1", "nodes": [""], "fixAvailable": {"name": "ts-jest", "version": "29.1.2", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 21, "high": 0, "critical": 0, "total": 21}, "dependencies": {"prod": 40, "dev": 1161, "optional": 3, "peer": 0, "peerOptional": 0, "total": 1200}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
--- stdout ---
added 4 packages, removed 8 packages, changed 6 packages, and audited 1200 packages in 7s
177 packages are looking for funding
run `npm fund` for details
# npm audit report
js-yaml <4.1.1
Severity: moderate
js-yaml has prototype pollution in merge (<<) - https://github.com/advisories/GHSA-mh29-5h37-fv8m
fix available via `npm audit fix --force`
Will install grunt@0.3.17, which is a breaking change
node_modules/js-yaml
@istanbuljs/load-nyc-config *
Depends on vulnerable versions of js-yaml
node_modules/@istanbuljs/load-nyc-config
babel-plugin-istanbul >=6.0.0-beta.0
Depends on vulnerable versions of @istanbuljs/load-nyc-config
node_modules/babel-plugin-istanbul
@jest/transform >=25.1.0
Depends on vulnerable versions of babel-plugin-istanbul
node_modules/@jest/transform
@jest/core >=25.1.0
Depends on vulnerable versions of @jest/reporters
Depends on vulnerable versions of @jest/transform
Depends on vulnerable versions of jest-config
Depends on vulnerable versions of jest-resolve-dependencies
Depends on vulnerable versions of jest-runner
Depends on vulnerable versions of jest-runtime
Depends on vulnerable versions of jest-snapshot
node_modules/@jest/core
jest >=25.1.0
Depends on vulnerable versions of @jest/core
Depends on vulnerable versions of jest-cli
node_modules/jest
ts-jest >=25.10.0-alpha.1
Depends on vulnerable versions of @jest/transform
Depends on vulnerable versions of babel-jest
Depends on vulnerable versions of jest
node_modules/ts-jest
jest-cli >=25.1.0
Depends on vulnerable versions of @jest/core
Depends on vulnerable versions of create-jest
Depends on vulnerable versions of jest-config
node_modules/jest-cli
@jest/reporters >=25.1.0
Depends on vulnerable versions of @jest/transform
node_modules/@jest/reporters
jest-runner >=25.1.0
Depends on vulnerable versions of @jest/transform
Depends on vulnerable versions of jest-runtime
node_modules/jest-runner
jest-config >=25.1.0
Depends on vulnerable versions of babel-jest
Depends on vulnerable versions of jest-circus
Depends on vulnerable versions of jest-runner
node_modules/jest-config
create-jest >=29.7.0
Depends on vulnerable versions of jest-config
node_modules/create-jest
jest-runtime >=25.1.0
Depends on vulnerable versions of @jest/globals
Depends on vulnerable versions of @jest/transform
Depends on vulnerable versions of jest-snapshot
node_modules/jest-runtime
jest-circus >=25.2.4
Depends on vulnerable versions of @jest/expect
Depends on vulnerable versions of jest-runtime
Depends on vulnerable versions of jest-snapshot
node_modules/jest-circus
jest-snapshot >=27.0.0-next.0
Depends on vulnerable versions of @jest/transform
node_modules/jest-snapshot
@jest/expect *
Depends on vulnerable versions of jest-snapshot
node_modules/@jest/expect
@jest/globals >=28.0.0-alpha.0
Depends on vulnerable versions of @jest/expect
node_modules/@jest/globals
jest-resolve-dependencies >=27.0.0-next.0
Depends on vulnerable versions of jest-snapshot
node_modules/jest-resolve-dependencies
babel-jest >=25.1.0
Depends on vulnerable versions of @jest/transform
Depends on vulnerable versions of babel-plugin-istanbul
node_modules/babel-jest
grunt >=0.4.0-a
Depends on vulnerable versions of js-yaml
node_modules/grunt
grunt-eslint <=1.0.0 || >=18.1.0
Depends on vulnerable versions of grunt
node_modules/grunt-eslint
21 moderate severity vulnerabilities
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated lodash.get@4.4.2: This package is deprecated. Use the optional chaining (?.) operator instead.
npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated sinon@12.0.1: 16.1.1
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
> cognitive-process-designer@4.0.0 postinstall
> cp -R resources/js/cpd/bpmnlint-plugin-mediawiki-cpd node_modules && npx bpmnlint-pack-config -c .bpmnlintrc -o bpmn-lint.config.js -t es && cp node_modules/bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css resources/styles/ext && cp node_modules/bpmn-js/dist/assets/bpmn-js.css resources/styles/ext && cp node_modules/bpmn-js/dist/assets/diagram-js.css resources/styles/ext && cp node_modules/bpmn-js-color-picker/colors/color-picker.css resources/styles/ext && cp node_modules/bpmn-js-bpmnlint/dist/assets/css/bpmn-js-bpmnlint.css resources/styles/ext
added 1199 packages, and audited 1200 packages in 21s
177 packages are looking for funding
run `npm fund` for details
21 moderate severity vulnerabilities
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/CpdLinker.test.ts
PASS tests/jest/CpdXml.test.ts
Test Suites: 2 passed, 2 total
Tests: 10 passed, 10 total
Snapshots: 0 total
Time: 2.273 s, estimated 4 s
Ran all test suites.
--- stdout ---
> cognitive-process-designer@4.0.0 test
> jest && grunt test
Running "eslint:all" (eslint) task
/src/repo/Gruntfile.js
2:18 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/jest.setup.js
3:31 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:3 warning Missing return type on function @typescript-eslint/explicit-function-return-type
10:25 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
28:39 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/cpd/CpdBpmnDiffer.ts
25:26 warning ES2022 static field 'VIEWBOX_CHANGE_END_EVENT' is forbidden es-x/no-class-static-fields
27:26 warning ES2022 static field 'VIEWBOX_CHANGE_START_EVENT' is forbidden es-x/no-class-static-fields
29:26 warning ES2022 static field 'DIFF_CONTAINER_ID' is forbidden es-x/no-class-static-fields
31:26 warning ES2022 static field 'NO_DIFF_TYPES' is forbidden es-x/no-class-static-fields
33:19 warning ES2022 instance field 'process' is forbidden es-x/no-class-instance-fields
35:19 warning ES2022 instance field 'containerHeight' is forbidden es-x/no-class-instance-fields
37:10 warning ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
39:10 warning ES2022 instance field 'syncState' is forbidden es-x/no-class-instance-fields
105:4 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
150:32 warning Unexpected dangling '_' in '_layoutChanged' no-underscore-dangle
151:26 warning Unexpected dangling '_' in '_changed' no-underscore-dangle
152:26 warning Unexpected dangling '_' in '_removed' no-underscore-dangle
153:24 warning Unexpected dangling '_' in '_added' no-underscore-dangle
/src/repo/resources/js/cpd/CpdModeler.ts
21:10 warning ES2022 instance field 'changeLogger' is forbidden es-x/no-class-instance-fields
98:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
126:3 warning Prefer .then to .done no-jquery/no-done-fail
203:5 warning Unexpected console statement no-console
/src/repo/resources/js/cpd/CpdTool.ts
2:8 warning 'CpdXml' is defined but never used @typescript-eslint/no-unused-vars
10:12 warning ES2022 instance field 'bpmnTool' is forbidden es-x/no-class-instance-fields
12:12 warning ES2022 instance field 'dom' is forbidden es-x/no-class-instance-fields
14:12 warning ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
16:12 warning ES2022 instance field 'xml' is forbidden es-x/no-class-instance-fields
18:12 warning ES2022 instance field 'elementFactory' is forbidden es-x/no-class-instance-fields
20:12 warning ES2022 instance field 'diagramPage' is forbidden es-x/no-class-instance-fields
22:12 warning ES2022 instance field 'canvas' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/CpdViewer.ts
3:8 warning 'config' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'hook' is defined but never used @typescript-eslint/no-unused-vars
23:10 warning ES2022 instance field 'eventBus' is forbidden es-x/no-class-instance-fields
103:62 warning Default parameters should be last default-param-last
/src/repo/resources/js/cpd/CustomPaletteProvider.ts
5:2 warning Missing accessibility modifier on method definition getPaletteEntries @typescript-eslint/explicit-member-accessibility
5:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/CustomReplaceMenuProvider.ts
4:2 warning Missing accessibility modifier on method definition getPopupMenuEntries @typescript-eslint/explicit-member-accessibility
4:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
4:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
4:23 warning Argument 'target' should be typed @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/helper/CpdApi.ts
1:8 warning 'user' is defined but never used @typescript-eslint/no-unused-vars
3:8 warning 'message' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'Api' is defined but never used @typescript-eslint/no-unused-vars
27:25 warning ES2022 static field 'STATUS_REQUEST_STARTED' is forbidden es-x/no-class-static-fields
29:25 warning ES2022 static field 'STATUS_REQUEST_FINISHED' is forbidden es-x/no-class-static-fields
31:25 warning ES2022 static field 'STATUS_REQUEST_FAILED' is forbidden es-x/no-class-static-fields
33:19 warning ES2022 instance field 'process' is forbidden es-x/no-class-instance-fields
35:19 warning ES2022 instance field 'api' is forbidden es-x/no-class-instance-fields
55:10 warning Prefer .then to .fail no-jquery/no-done-fail
55:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
62:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
77:10 warning Prefer .then to .fail no-jquery/no-done-fail
84:23 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
98:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
116:10 warning Prefer .then to .fail no-jquery/no-done-fail
122:41 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
127:53 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
/src/repo/resources/js/cpd/helper/CpdChangeLogger.ts
18:26 warning ES2022 static field 'ELEMENT_CREATE' is forbidden es-x/no-class-static-fields
20:26 warning ES2022 static field 'ELEMENT_DELETE' is forbidden es-x/no-class-static-fields
22:26 warning ES2022 static field 'ELEMENT_RENAME' is forbidden es-x/no-class-static-fields
24:26 warning ES2022 static field 'DIAGRAM_CHANGED' is forbidden es-x/no-class-static-fields
26:10 warning ES2022 instance field 'deletions' is forbidden es-x/no-class-instance-fields
28:10 warning ES2022 instance field 'creations' is forbidden es-x/no-class-instance-fields
30:10 warning ES2022 instance field 'renames' is forbidden es-x/no-class-instance-fields
32:10 warning ES2022 instance field 'factory' is forbidden es-x/no-class-instance-fields
34:10 warning ES2022 instance field 'svgRenderer' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdDom.ts
3:8 warning 'util' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'Title' is defined but never used @typescript-eslint/no-unused-vars
39:19 warning ES2022 instance field 'container' is forbidden es-x/no-class-instance-fields
41:19 warning ES2022 instance field 'diagramPage' is forbidden es-x/no-class-instance-fields
43:10 warning ES2022 instance field 'messageBox' is forbidden es-x/no-class-instance-fields
45:10 warning ES2022 instance field 'saveDialog' is forbidden es-x/no-class-instance-fields
47:10 warning ES2022 instance field 'openDialogBtn' is forbidden es-x/no-class-instance-fields
49:10 warning ES2022 instance field 'cancelBtn' is forbidden es-x/no-class-instance-fields
51:10 warning ES2022 instance field 'showXmlBtn' is forbidden es-x/no-class-instance-fields
53:10 warning ES2022 instance field 'showDiagramBtn' is forbidden es-x/no-class-instance-fields
55:10 warning ES2022 instance field 'centerViewportBtn' is forbidden es-x/no-class-instance-fields
57:10 warning ES2022 instance field 'exportBtn' is forbidden es-x/no-class-instance-fields
59:10 warning ES2022 instance field 'importBtn' is forbidden es-x/no-class-instance-fields
61:10 warning ES2022 instance field 'groupToolBtn' is forbidden es-x/no-class-instance-fields
63:10 warning ES2022 instance field 'fileInput' is forbidden es-x/no-class-instance-fields
65:10 warning ES2022 instance field 'svgFileLink' is forbidden es-x/no-class-instance-fields
67:10 warning ES2022 instance field 'diagramPageLink' is forbidden es-x/no-class-instance-fields
69:10 warning ES2022 instance field 'canvas' is forbidden es-x/no-class-instance-fields
71:10 warning ES2022 instance field 'xmlContainer' is forbidden es-x/no-class-instance-fields
73:10 warning ES2022 instance field 'loadingAnimation' is forbidden es-x/no-class-instance-fields
75:10 warning ES2022 instance field 'viewMode' is forbidden es-x/no-class-instance-fields
77:10 warning ES2022 instance field 'isEdit' is forbidden es-x/no-class-instance-fields
79:10 warning ES2022 instance field 'openDialogOptions' is forbidden es-x/no-class-instance-fields
452:5 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
453:47 warning 'item' is already declared in the upper scope on line 408 column 16 no-shadow
481:47 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
482:50 warning All possible CSS classes should be documented. See https://w.wiki/PS2 for details mediawiki/class-doc
/src/repo/resources/js/cpd/helper/CpdElementFactory.ts
16:19 warning ES2022 instance field 'subpageTypes' is forbidden es-x/no-class-instance-fields
18:10 warning ES2022 instance field 'elementRegistry' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdInlineSvgRenderer.ts
6:10 warning ES2022 instance field 'elementRegistry' is forbidden es-x/no-class-instance-fields
8:10 warning ES2022 instance field 'largeTypes' is forbidden es-x/no-class-instance-fields
/src/repo/resources/js/cpd/helper/CpdSaveDialog.ts
10:19 warning ES2022 instance field 'dialog' is forbidden es-x/no-class-instance-fields
48:74 warning ES2020 nullish coalescing operators are forbidden es-x/no-nullish-coalescing-operators
73:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
/src/repo/resources/js/cpd/helper/CpdTranslator.ts
6:19 warning ES2022 instance field 'translations' is forbidden es-x/no-class-instance-fields
6:48 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
19:55 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
27:69 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
/src/repo/resources/js/cpd/helper/CpdValidator.ts
3:8 warning 'ElementRegistry' is defined but never used @typescript-eslint/no-unused-vars
19:25 warning ES2022 static field 'VALIDATION_EVENT' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/helper/CpdXml.ts
1:8 warning 'notify' is defined but never used @typescript-eslint/no-unused-vars
22:1 warning Missing JSDoc @param "xml" type jsdoc/require-param-type
37:22 warning OO.ui.ButtonWidget has no label. Even icon-only buttons should set a label with invisibleLabel set to true mediawiki/no-unlabeled-buttonwidget
44:4 warning navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
/src/repo/resources/js/cpd/model/CpdElement.ts
4:18 warning ES2022 instance field 'bpmnElement' is forbidden es-x/no-class-instance-fields
14:2 warning Missing accessibility modifier on get property accessor id @typescript-eslint/explicit-member-accessibility
18:2 warning Missing accessibility modifier on get property accessor type @typescript-eslint/explicit-member-accessibility
22:2 warning Missing accessibility modifier on get property accessor label @typescript-eslint/explicit-member-accessibility
34:2 warning Missing accessibility modifier on set property accessor label @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/cpd/oojs-ui/Button.ts
2:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
2:18 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
8:2 warning Missing accessibility modifier on method definition onUpdateState @typescript-eslint/explicit-member-accessibility
8:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
8:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
8:18 warning Unexpected empty method 'onUpdateState' @typescript-eslint/no-empty-function
11:2 warning Missing accessibility modifier on method definition setLabel @typescript-eslint/explicit-member-accessibility
11:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
11:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
15:2 warning Missing accessibility modifier on method definition getTagName @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/cpd/oojs-ui/CancelButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/CenterViewportButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/DiagramPageLinkButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
13:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
13:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
13:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
13:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/ExportButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/GroupTool.ts
5:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
5:18 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/ImportButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
14:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
14:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/oojs-ui/LinkButton.ts
4:2 warning Missing accessibility modifier on method definition setLink @typescript-eslint/explicit-member-accessibility
14:2 warning Missing accessibility modifier on method definition onSelect @typescript-eslint/explicit-member-accessibility
14:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
/src/repo/resources/js/cpd/oojs-ui/OpenDialogButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/SaveDialog.ts
16:10 warning ES2022 instance field 'panels' is forbidden es-x/no-class-instance-fields
18:10 warning ES2022 instance field 'savePanel' is forbidden es-x/no-class-instance-fields
20:10 warning ES2022 instance field 'reviewPanel' is forbidden es-x/no-class-instance-fields
22:10 warning ES2022 instance field 'reviewContent' is forbidden es-x/no-class-instance-fields
25:10 warning ES2022 instance field 'changesPanel' is forbidden es-x/no-class-instance-fields
27:10 warning ES2022 instance field 'postSaveMessages' is forbidden es-x/no-class-instance-fields
29:10 warning ES2022 instance field 'postSaveWarnings' is forbidden es-x/no-class-instance-fields
31:10 warning ES2022 instance field 'savePagesCheckbox' is forbidden es-x/no-class-instance-fields
33:10 warning ES2022 instance field 'changeLogMessages' is forbidden es-x/no-class-instance-fields
35:10 warning ES2022 instance field 'saveWithPages' is forbidden es-x/no-class-instance-fields
37:2 warning Missing accessibility modifier on class property static @typescript-eslint/explicit-member-accessibility
37:18 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
89:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
107:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
128:26 warning Argument 'data' should be typed with a non-any type @typescript-eslint/explicit-module-boundary-types
128:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
166:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
172:3 warning Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
189:18 warning All possible message keys should be documented. See https://w.wiki/4r9a for details mediawiki/msg-doc
/src/repo/resources/js/cpd/oojs-ui/ShowDiagramButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/ShowXmlButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
/src/repo/resources/js/cpd/oojs-ui/SvgFileLinkButton.ts
4:25 warning ES2022 static field 'static' is forbidden es-x/no-class-static-fields
13:2 warning Missing accessibility modifier on method definition setDisabled @typescript-eslint/explicit-member-accessibility
23:2 warning Missing accessibility modifier on method definition setLink @typescript-eslint/explicit-member-accessibility
28:2 warning Missing accessibility modifier on method definition setActive @typescript-eslint/explicit-member-accessibility
28:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
28:2 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
28:14 warning Unexpected empty method 'setActive' @typescript-eslint/no-empty-function
/src/repo/resources/js/cpd/renderer/CpdElementsRenderer.ts
9:2 warning Missing accessibility modifier on class property $inject @typescript-eslint/explicit-member-accessibility
9:9 warning ES2022 static field '$inject' is forbidden es-x/no-class-static-fields
11:26 warning ES2022 static field 'HIGHLIGHT_COLOR' is forbidden es-x/no-class-static-fields
13:10 warning ES2022 instance field 'bpmnRenderer' is forbidden es-x/no-class-instance-fields
15:2 warning Missing accessibility modifier on method definition constructor @typescript-eslint/explicit-member-accessibility
15:15 warning Argument 'eventBus' should be typed @typescript-eslint/explicit-module-boundary-types
15:25 warning Argument 'bpmnRenderer' should be typed @typescript-eslint/explicit-module-boundary-types
20:2 warning Missing accessibility modifier on method definition canRender @typescript-eslint/explicit-member-accessibility
24:2 warning Missing accessibility modifier on method definition drawShape @typescript-eslint/explicit-member-accessibility
/src/repo/resources/js/ext.cpd.DiagramUsageInformationPage.js
1:10 warning Missing return type on function @typescript-eslint/explicit-function-return-type
7:45 warning Missing return type on function @typescript-eslint/explicit-function-return-type
13:72 warning Missing return type on function @typescript-eslint/explicit-function-return-type
21:61 warning Missing return type on function @typescript-eslint/explicit-function-return-type
25:73 warning Missing return type on function @typescript-eslint/explicit-function-return-type
60:79 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ext.cpd.NewProcessDialog.js
3:28 warning Missing return type on function @typescript-eslint/explicit-function-return-type
14:59 warning Missing return type on function @typescript-eslint/explicit-function-return-type
32:51 warning Missing return type on function @typescript-eslint/explicit-function-return-type
52:60 warning Missing return type on function @typescript-eslint/explicit-function-return-type
54:36 warning Unexpected empty arrow function @typescript-eslint/no-empty-function
57:61 warning Missing return type on function @typescript-eslint/explicit-function-return-type
61:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
68:49 warning Missing return type on function @typescript-eslint/explicit-function-return-type
82:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
86:34 warning Unexpected empty arrow function @typescript-eslint/no-empty-function
89:43 warning Missing return type on function @typescript-eslint/explicit-function-return-type
101:52 warning Missing return type on function @typescript-eslint/explicit-function-return-type
109:55 warning Missing return type on function @typescript-eslint/explicit-function-return-type
118:51 warning Missing return type on function @typescript-eslint/explicit-function-return-type
125:66 warning Missing return type on function @typescript-eslint/explicit-function-return-type
129:52 warning Missing return type on function @typescript-eslint/explicit-function-return-type
138:60 warning Missing return type on function @typescript-eslint/explicit-function-return-type
145:2 warning Prefer .then to .done no-jquery/no-done-fail
145:2 warning Prefer .then to .fail no-jquery/no-done-fail
176:47 warning Missing return type on function @typescript-eslint/explicit-function-return-type
184:49 warning Missing return type on function @typescript-eslint/explicit-function-return-type
190:54 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ext.cpd.special.OrphanedDescriptionPagesGrid.js
5:13 warning Missing return type on function @typescript-eslint/explicit-function-return-type
6:48 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ui/ProcessInputWidget.js
6:33 warning Missing return type on function @typescript-eslint/explicit-function-return-type
20:72 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ce/CPDProcessNode.js
7:32 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/dm/CPDProcessNode.js
7:32 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ui/CPDProcessNodeInspector.js
7:41 warning Missing return type on function @typescript-eslint/explicit-function-return-type
33:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
62:64 warning Missing return type on function @typescript-eslint/explicit-function-return-type
73:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
97:67 warning Missing return type on function @typescript-eslint/explicit-function-return-type
114:62 warning Missing return type on function @typescript-eslint/explicit-function-return-type
121:64 warning Missing return type on function @typescript-eslint/explicit-function-return-type
144:80 warning Missing return type on function @typescript-eslint/explicit-function-return-type
148:65 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ui/CPDProcessNodeInspectorTool.js
7:45 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/js/ve/ve.ui.DiffElement.js
1:21 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/resources/vue/init.js
1:3 warning Missing return type on function @typescript-eslint/explicit-function-return-type
5:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
26:2 warning Missing return type on function @typescript-eslint/explicit-function-return-type
/src/repo/tests/jest/CpdLinker.test.ts
1:8 warning 'CpdChangeLogger' is defined but never used @typescript-eslint/no-unused-vars
2:8 warning 'EventBus' is defined but never used @typescript-eslint/no-unused-vars
3:8 warning 'ElementRegistry' is defined but never used @typescript-eslint/no-unused-vars
4:10 warning 'CpdElementFactory' is defined but never used @typescript-eslint/no-unused-vars
5:8 warning 'CpdInlineSvgRenderer' is defined but never used @typescript-eslint/no-unused-vars
✖ 245 problems (0 errors, 245 warnings)
Running "stylelint:all" (stylelint) task
>> Linted 18 files without errors
Running "banana:CognitiveProcessDesigner" (banana) task
>> 1 message directory checked.
Done.
--- end ---
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
build: Updating eslint-config-wikimedia to 0.32.1
The following rules are failing and were disabled:
* mediawiki/no-unlabeled-buttonwidget
* es-x/no-class-static-fields
* es-x/no-class-instance-fields
* no-console
* no-shadow
$ git add .
--- stdout ---
--- end ---
$ git commit -F /tmp/tmpn1g1vpq2
--- stdout ---
[master 5024bc6] build: Updating eslint-config-wikimedia to 0.32.1
9 files changed, 511 insertions(+), 592 deletions(-)
--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 5024bc6ffd6077f31d11215822bedb128bb1597c Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sun, 16 Nov 2025 06:03:27 +0000
Subject: [PATCH] build: Updating eslint-config-wikimedia to 0.32.1
The following rules are failing and were disabled:
* mediawiki/no-unlabeled-buttonwidget
* es-x/no-class-static-fields
* es-x/no-class-instance-fields
* no-console
* no-shadow
Change-Id: Ibb812708dbab398bc0edc1890eac79fab0a7fac0
---
.eslintrc.json | 7 +-
package-lock.json | 1034 ++++++++++------------
package.json | 2 +-
resources/js/cpd/CpdModeler.ts | 16 +-
resources/js/cpd/CpdTool.ts | 6 +-
resources/js/cpd/helper/CpdDom.ts | 22 +-
resources/js/cpd/oojs-ui/ExportButton.ts | 4 +-
resources/js/cpd/oojs-ui/GroupTool.ts | 8 +-
resources/js/cpd/oojs-ui/ImportButton.ts | 4 +-
9 files changed, 511 insertions(+), 592 deletions(-)
diff --git a/.eslintrc.json b/.eslintrc.json
index b03403a..7db3674 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -64,6 +64,11 @@
"es-x/no-nullish-coalescing-operators": "warn",
"compat/compat": "warn",
"@typescript-eslint/no-empty-function": "warn",
- "mediawiki/msg-doc": "warn"
+ "mediawiki/msg-doc": "warn",
+ "es-x/no-class-static-fields": "warn",
+ "es-x/no-class-instance-fields": "warn",
+ "no-console": "warn",
+ "no-shadow": "warn",
+ "mediawiki/no-unlabeled-buttonwidget": "warn"
}
}
diff --git a/package-lock.json b/package-lock.json
index 267e934..dde451b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -40,7 +40,7 @@
"babel-jest": "^29.7.0",
"babel-loader": "^9.2.1",
"bpmnlint-pack-config": "^0.8.0",
- "eslint-config-wikimedia": "0.31.0",
+ "eslint-config-wikimedia": "0.32.1",
"grunt": "1.6.1",
"grunt-banana-checker": "0.13.0",
"grunt-eslint": "24.3.0",
@@ -1992,43 +1992,26 @@
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.43.1",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz",
- "integrity": "sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==",
+ "version": "0.75.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.75.0.tgz",
+ "integrity": "sha512-Bj+oF8reFb4b+6LUmG6ETpDsBU/28y/bAAzioyIR4VK/V6UodYBNGbtxRyGxk0aJJQqpZZ6jz82vVZWCX6Mwmg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@types/eslint": "^8.56.5",
- "@types/estree": "^1.0.5",
- "@typescript-eslint/types": "^7.2.0",
+ "@types/estree": "^1.0.8",
+ "@typescript-eslint/types": "^8.46.0",
"comment-parser": "1.4.1",
- "esquery": "^1.5.0",
- "jsdoc-type-pratt-parser": "~4.0.0"
+ "esquery": "^1.6.0",
+ "jsdoc-type-pratt-parser": "~6.9.1"
},
"engines": {
- "node": ">=16"
+ "node": ">=20.11.0"
}
},
"node_modules/@es-joy/jsdoccomment/node_modules/@types/estree": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
- "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@es-joy/jsdoccomment/node_modules/@typescript-eslint/types": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
- "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.7.0",
@@ -2127,11 +2110,10 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -2878,8 +2860,7 @@
"version": "5.7.6",
"resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.7.6.tgz",
"integrity": "sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==",
- "dev": true,
- "license": "CC0-1.0"
+ "dev": true
},
"node_modules/@nicolo-ribaudo/chokidar-2": {
"version": "2.1.8-no-fsevents.3",
@@ -3491,8 +3472,7 @@
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
"integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/@types/oojs": {
"version": "7.0.7",
@@ -3655,16 +3635,16 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz",
- "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.0.tgz",
+ "integrity": "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/type-utils": "8.35.1",
- "@typescript-eslint/utils": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/type-utils": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -3678,21 +3658,21 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.35.1",
+ "@typescript-eslint/parser": "^8.46.0",
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz",
- "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.0.tgz",
+ "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/typescript-estree": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3704,17 +3684,17 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
- "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.0.tgz",
+ "integrity": "sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.35.1",
- "@typescript-eslint/types": "^8.35.1",
+ "@typescript-eslint/tsconfig-utils": "^8.46.0",
+ "@typescript-eslint/types": "^8.46.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3725,17 +3705,17 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
- "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.0.tgz",
+ "integrity": "sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1"
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3746,9 +3726,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
- "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.0.tgz",
+ "integrity": "sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3758,17 +3738,18 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz",
- "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.0.tgz",
+ "integrity": "sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.35.1",
- "@typescript-eslint/utils": "8.35.1",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -3781,13 +3762,13 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
- "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.0.tgz",
+ "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3798,15 +3779,15 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
- "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.0.tgz",
+ "integrity": "sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/project-service": "8.46.0",
+ "@typescript-eslint/tsconfig-utils": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -3822,13 +3803,13 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
@@ -3838,15 +3819,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz",
- "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.0.tgz",
+ "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/typescript-estree": "8.35.1"
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3857,16 +3838,16 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
- "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.0.tgz",
+ "integrity": "sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/types": "8.46.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -4471,7 +4452,6 @@
"resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
"integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=14"
}
@@ -4556,7 +4536,6 @@
"resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.1.tgz",
"integrity": "sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@mdn/browser-compat-data": "^5.6.19"
}
@@ -4889,8 +4868,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true,
- "license": "ISC"
+ "dev": true
},
"node_modules/bpmn-js": {
"version": "18.6.2",
@@ -5333,9 +5311,9 @@
}
},
"node_modules/ci-info": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
- "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
"dev": true,
"funding": [
{
@@ -5343,7 +5321,6 @@
"url": "https://github.com/sponsors/sibiraj-s"
}
],
- "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5360,7 +5337,6 @@
"resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
"integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
@@ -5373,7 +5349,6 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
@@ -5526,7 +5501,6 @@
"resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
"integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 12.0.0"
}
@@ -5719,11 +5693,10 @@
"license": "Python-2.0"
},
"node_modules/cosmiconfig/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -5895,11 +5868,10 @@
}
},
"node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
@@ -6356,22 +6328,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/electron-to-chromium": {
"version": "1.5.157",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.157.tgz",
@@ -6644,11 +6600,10 @@
}
},
"node_modules/eslint-compat-utils": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
- "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz",
+ "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^7.5.4"
},
@@ -6660,11 +6615,10 @@
}
},
"node_modules/eslint-compat-utils/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6673,56 +6627,56 @@
}
},
"node_modules/eslint-config-wikimedia": {
- "version": "0.31.0",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.31.0.tgz",
- "integrity": "sha512-Z/t/zGPdxs/ehxb0EM6THNWAzueT7GtuqzjUvmBpkxcTKzZPJEXWnnpswdj/hgv8Ce8PIeDp0zwQxR4e3c9CIw==",
+ "version": "0.32.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.32.1.tgz",
+ "integrity": "sha512-gPvhyVFNlpKFOcJfoVTNlzg3A0b6qjhAbjjBIJ9xp5m+om0oqix5gkqIIEav5BaGxdDxYNmrY4ge3DAPP3u/lg==",
"dev": true,
"dependencies": {
"@stylistic/eslint-plugin": "^3.1.0",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.46.0",
+ "@typescript-eslint/parser": "8.46.0",
"browserslist-config-wikimedia": "^0.7.0",
"eslint": "^8.57.0",
- "eslint-plugin-compat": "^4.2.0",
- "eslint-plugin-es-x": "^7.6.0",
- "eslint-plugin-jest": "^28.5.0",
- "eslint-plugin-jsdoc": "48.2.5",
+ "eslint-plugin-compat": "^6.0.2",
+ "eslint-plugin-es-x": "^8.7.0",
+ "eslint-plugin-jest": "^29.0.1",
+ "eslint-plugin-jsdoc": "61.0.0",
"eslint-plugin-json-es": "^1.6.0",
- "eslint-plugin-mediawiki": "^0.7.0",
- "eslint-plugin-mocha": "^10.4.3",
- "eslint-plugin-n": "^17.7.0",
+ "eslint-plugin-mediawiki": "^0.8.1",
+ "eslint-plugin-mocha": "^10.5.0",
+ "eslint-plugin-n": "^17.23.1",
"eslint-plugin-no-jquery": "^3.1.1",
- "eslint-plugin-qunit": "^8.1.1",
- "eslint-plugin-security": "^1.7.1",
- "eslint-plugin-unicorn": "^53.0.0",
- "eslint-plugin-vue": "^9.26.0",
- "eslint-plugin-wdio": "^8.24.12",
- "eslint-plugin-yml": "^1.14.0"
+ "eslint-plugin-qunit": "^8.2.5",
+ "eslint-plugin-security": "^3.0.1",
+ "eslint-plugin-unicorn": "^56.0.1",
+ "eslint-plugin-vue": "^9.33.0",
+ "eslint-plugin-wdio": "^9.16.2",
+ "eslint-plugin-yml": "^1.19.0"
},
"engines": {
- "node": ">=18 <25"
+ "node": ">=20 <25"
}
},
"node_modules/eslint-plugin-compat": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz",
- "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-6.0.2.tgz",
+ "integrity": "sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@mdn/browser-compat-data": "^5.3.13",
- "ast-metadata-inferer": "^0.8.0",
- "browserslist": "^4.21.10",
- "caniuse-lite": "^1.0.30001524",
+ "@mdn/browser-compat-data": "^5.5.35",
+ "ast-metadata-inferer": "^0.8.1",
+ "browserslist": "^4.24.2",
+ "caniuse-lite": "^1.0.30001687",
"find-up": "^5.0.0",
+ "globals": "^15.7.0",
"lodash.memoize": "^4.1.2",
- "semver": "^7.5.4"
+ "semver": "^7.6.2"
},
"engines": {
- "node": ">=14.x"
+ "node": ">=18.x"
},
"peerDependencies": {
- "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-compat/node_modules/find-up": {
@@ -6730,7 +6684,6 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -6742,12 +6695,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/eslint-plugin-compat/node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint-plugin-compat/node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -6763,7 +6727,6 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -6775,11 +6738,10 @@
}
},
"node_modules/eslint-plugin-compat/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6788,19 +6750,18 @@
}
},
"node_modules/eslint-plugin-es-x": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
- "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-8.7.0.tgz",
+ "integrity": "sha512-Du5Sb067sjqzmglaPhsfcEQgE1EYfL8sko+4jOMcAB/XKGoCxntSrOmTYuVzswA1rzM9+MZwH6+GOp0G3/wVCg==",
"dev": true,
"funding": [
"https://github.com/sponsors/ota-meshi",
"https://opencollective.com/eslint"
],
- "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.1.2",
- "@eslint-community/regexpp": "^4.11.0",
- "eslint-compat-utils": "^0.5.1"
+ "@eslint-community/regexpp": "^4.12.1",
+ "eslint-compat-utils": "^0.6.3"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -6810,20 +6771,19 @@
}
},
"node_modules/eslint-plugin-jest": {
- "version": "28.11.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz",
- "integrity": "sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==",
+ "version": "29.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
+ "integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/utils": "^8.0.0"
},
"engines": {
- "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ "node": "^20.12.0 || ^22.0.0 || >=24.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",
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
+ "eslint": "^8.57.0 || ^9.0.0",
"jest": "*"
},
"peerDependenciesMeta": {
@@ -6836,35 +6796,65 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "48.2.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz",
- "integrity": "sha512-ZeTfKV474W1N9niWfawpwsXGu+ZoMXu4417eBROX31d7ZuOk8zyG66SO77DpJ2+A9Wa2scw/jRqBPnnQo7VbcQ==",
+ "version": "61.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.0.0.tgz",
+ "integrity": "sha512-YxvOY3A9H8usnOfOEH82y71yHR7zVNWZJpQbjkC+rWqrADQtM+Gza3+db/j9euNNWCNKnN+/gBrowg16n9lwgg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
- "@es-joy/jsdoccomment": "~0.43.0",
+ "@es-joy/jsdoccomment": "~0.75.0",
"are-docs-informative": "^0.0.2",
"comment-parser": "1.4.1",
- "debug": "^4.3.4",
+ "debug": "^4.4.3",
"escape-string-regexp": "^4.0.0",
- "esquery": "^1.5.0",
- "is-builtin-module": "^3.2.1",
- "semver": "^7.6.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.6.0",
+ "html-entities": "^2.6.0",
+ "object-deep-merge": "^1.0.5",
+ "parse-imports-exports": "^0.2.4",
+ "semver": "^7.7.3",
"spdx-expression-parse": "^4.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20.11.0"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
+ "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jsdoc/node_modules/espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6887,13 +6877,11 @@
}
},
"node_modules/eslint-plugin-mediawiki": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.7.0.tgz",
- "integrity": "sha512-1Y2nsFDPp96xOZCB5ivZAgqYe9i6w2u64VoCIaAzPyZnd/2h8VQR3CtD+u4Yk/KrpbKq9AAJjrs5LS8VAz6KOA==",
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.8.1.tgz",
+ "integrity": "sha512-zjTg3hh375lkztKhOYEmPeYiIhKooAu92BkZf2F/fr+5Htvb2i8MNB3gImhM98aTBbkyHTjXoyTHNUrjSjPhmw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "eslint-plugin-vue": "^9.23.0",
"upath": "^2.0.1"
},
"peerDependencies": {
@@ -6948,20 +6936,20 @@
}
},
"node_modules/eslint-plugin-n": {
- "version": "17.18.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz",
- "integrity": "sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==",
+ "version": "17.23.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz",
+ "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.5.0",
"enhanced-resolve": "^5.17.1",
"eslint-plugin-es-x": "^7.8.0",
"get-tsconfig": "^4.8.1",
"globals": "^15.11.0",
+ "globrex": "^0.1.2",
"ignore": "^5.3.2",
- "minimatch": "^9.0.5",
- "semver": "^7.6.3"
+ "semver": "^7.6.3",
+ "ts-declaration-location": "^1.0.6"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6973,12 +6961,47 @@
"eslint": ">=8.23.0"
}
},
+ "node_modules/eslint-plugin-n/node_modules/eslint-compat-utils": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
+ "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es-x": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+ "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/ota-meshi",
+ "https://opencollective.com/eslint"
+ ],
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.11.0",
+ "eslint-compat-utils": "^0.5.1"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=8"
+ }
+ },
"node_modules/eslint-plugin-n/node_modules/globals": {
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -6991,17 +7014,15 @@
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/eslint-plugin-n/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7020,11 +7041,10 @@
}
},
"node_modules/eslint-plugin-qunit": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.2.tgz",
- "integrity": "sha512-2gDQdHlQW8GVXD7YYkO8vbm9Ldc60JeGMuQN5QlD48OeZ8znBvvoHWZZMeXjvoDPReGaLEvyuWrDtrI8bDbcqw==",
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.2.5.tgz",
+ "integrity": "sha512-qr7RJCYImKQjB+39q4q46i1l7p1V3joHzBE5CAYfxn5tfVFjrnjn/tw7q/kDyweU9kAIcLul0Dx/KWVUCb3BgA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-utils": "^3.0.0",
"requireindex": "^1.2.0"
@@ -7034,29 +7054,33 @@
}
},
"node_modules/eslint-plugin-security": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz",
- "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz",
+ "integrity": "sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"safe-regex": "^2.1.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "53.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-53.0.0.tgz",
- "integrity": "sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==",
+ "version": "56.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz",
+ "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.7",
"@eslint-community/eslint-utils": "^4.4.0",
- "@eslint/eslintrc": "^3.0.2",
"ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "core-js-compat": "^3.37.0",
- "esquery": "^1.5.0",
+ "core-js-compat": "^3.38.1",
+ "esquery": "^1.6.0",
+ "globals": "^15.9.0",
"indent-string": "^4.0.0",
"is-builtin-module": "^3.2.1",
"jsesc": "^3.0.2",
@@ -7064,138 +7088,29 @@
"read-pkg-up": "^7.0.1",
"regexp-tree": "^0.1.27",
"regjsparser": "^0.10.0",
- "semver": "^7.6.1",
+ "semver": "^7.6.3",
"strip-indent": "^3.0.0"
},
"engines": {
"node": ">=18.18"
},
"funding": {
- "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
- },
- "peerDependencies": {
- "eslint": ">=8.56.0"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
- "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/eslint-plugin-unicorn/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": {
- "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"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/espree": {
- "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.14.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/eslint-plugin-unicorn/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
+ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "peerDependencies": {
+ "eslint": ">=8.56.0"
}
},
- "node_modules/eslint-plugin-unicorn/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/eslint-plugin-unicorn/node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
"engines": {
- "node": "*"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint-plugin-unicorn/node_modules/pluralize": {
@@ -7203,17 +7118,15 @@
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
"integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/eslint-plugin-unicorn/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7226,7 +7139,6 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz",
"integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"globals": "^13.24.0",
@@ -7249,7 +7161,6 @@
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -7261,11 +7172,10 @@
}
},
"node_modules/eslint-plugin-vue/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7278,7 +7188,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -7287,23 +7196,22 @@
}
},
"node_modules/eslint-plugin-wdio": {
- "version": "8.37.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.37.0.tgz",
- "integrity": "sha512-X217zXxSqj1IPWu3bxN7D/xEUmNk7Jg5lBf2JwYH3mCogaqL2tnHZnwt0EQ5D9oEejfEl2+4zqHSzhXq1X7F2A==",
+ "version": "9.16.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-9.16.2.tgz",
+ "integrity": "sha512-qkqsPgxN70OnUPWMjmzJbSbvm2+Q087JIGss53/OFI4Y46xKlV5VLhLiYealaAibAiXmnfWKd0tERjZAzVL87A==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": "^16.13 || >=18"
+ "node": ">=18.20.0"
}
},
"node_modules/eslint-plugin-yml": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.18.0.tgz",
- "integrity": "sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==",
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.19.0.tgz",
+ "integrity": "sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.3.2",
+ "diff-sequences": "^27.5.1",
"escape-string-regexp": "4.0.0",
"eslint-compat-utils": "^0.6.0",
"natural-compare": "^1.4.0",
@@ -7319,33 +7227,13 @@
"eslint": ">=6.0.0"
}
},
- "node_modules/eslint-plugin-yml/node_modules/eslint-compat-utils": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz",
- "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/eslint-plugin-yml/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "node_modules/eslint-plugin-yml/node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
"engines": {
- "node": ">=10"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/eslint-scope": {
@@ -7498,11 +7386,10 @@
}
},
"node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -7939,29 +7826,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -8319,11 +8183,10 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
- "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz",
+ "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
},
@@ -8849,6 +8712,27 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8963,8 +8847,7 @@
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true,
- "license": "ISC"
+ "dev": true
},
"node_modules/hpack.js": {
"version": "2.1.6",
@@ -9038,6 +8921,22 @@
"node": ">=12"
}
},
+ "node_modules/html-entities": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
+ "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/mdevils"
+ },
+ {
+ "type": "patreon",
+ "url": "https://patreon.com/mdevils"
+ }
+ ]
+ },
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -9803,65 +9702,6 @@
"node": ">=8"
}
},
- "node_modules/jake": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jake/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jake/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/jest": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
@@ -10940,11 +10780,10 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -10954,13 +10793,12 @@
}
},
"node_modules/jsdoc-type-pratt-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-6.9.1.tgz",
+ "integrity": "sha512-HbYNAorY51GnpKvgDf4YINSY+V1segv0qEeijvTSI6OWMCmqah0W6mVwBFeWskJ81uTJJVnDQlwhpJMREvGsXg==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=12.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/jsdom": {
@@ -11539,7 +11377,6 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -11550,6 +11387,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/mkdirp": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
@@ -11842,7 +11688,6 @@
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -11855,7 +11700,6 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -11888,7 +11732,6 @@
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0"
},
@@ -11903,6 +11746,27 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/object-deep-merge": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-1.0.5.tgz",
+ "integrity": "sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "4.2.0"
+ }
+ },
+ "node_modules/object-deep-merge/node_modules/type-fest": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.2.0.tgz",
+ "integrity": "sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
@@ -12226,6 +12090,15 @@
"node": ">=0.8"
}
},
+ "node_modules/parse-imports-exports": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz",
+ "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==",
+ "dev": true,
+ "dependencies": {
+ "parse-statements": "1.0.11"
+ }
+ },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -12255,6 +12128,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/parse-statements": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz",
+ "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==",
+ "dev": true
+ },
"node_modules/parse5": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
@@ -12943,7 +12822,6 @@
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
"integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/normalize-package-data": "^2.4.0",
"normalize-package-data": "^2.5.0",
@@ -12959,7 +12837,6 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
"integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"find-up": "^4.1.0",
"read-pkg": "^5.2.0",
@@ -12977,7 +12854,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -12987,7 +12863,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
"integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -13069,7 +12944,6 @@
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
"integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true,
- "license": "MIT",
"bin": {
"regexp-tree": "bin/regexp-tree"
}
@@ -13130,7 +13004,6 @@
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
"integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~0.5.0"
},
@@ -13172,7 +13045,6 @@
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
"integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.5"
}
@@ -13247,7 +13119,6 @@
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
- "license": "MIT",
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
@@ -13416,7 +13287,6 @@
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
"integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"regexp-tree": "~0.1.1"
}
@@ -13972,7 +13842,6 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -13983,7 +13852,6 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -13993,26 +13861,23 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true,
- "license": "CC-BY-3.0"
+ "dev": true
},
"node_modules/spdx-expression-parse": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
"integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.21",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
- "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
- "dev": true,
- "license": "CC0-1.0"
+ "version": "3.0.22",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
+ "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
+ "dev": true
},
"node_modules/spdy": {
"version": "4.0.2",
@@ -15076,21 +14941,53 @@
"typescript": ">=4.8.4"
}
},
+ "node_modules/ts-declaration-location": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+ "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "ko-fi",
+ "url": "https://ko-fi.com/rebeccastevens"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+ }
+ ],
+ "dependencies": {
+ "picomatch": "^4.0.2"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.0.0"
+ }
+ },
+ "node_modules/ts-declaration-location/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/ts-jest": {
- "version": "29.3.4",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.4.tgz",
- "integrity": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==",
+ "version": "29.4.5",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz",
+ "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bs-logger": "^0.2.6",
- "ejs": "^3.1.10",
"fast-json-stable-stringify": "^2.1.0",
- "jest-util": "^29.0.0",
+ "handlebars": "^4.7.8",
"json5": "^2.2.3",
"lodash.memoize": "^4.1.2",
"make-error": "^1.3.6",
- "semver": "^7.7.2",
+ "semver": "^7.7.3",
"type-fest": "^4.41.0",
"yargs-parser": "^21.1.1"
},
@@ -15102,10 +14999,11 @@
},
"peerDependencies": {
"@babel/core": ">=7.0.0-beta.0 <8",
- "@jest/transform": "^29.0.0",
- "@jest/types": "^29.0.0",
- "babel-jest": "^29.0.0",
- "jest": "^29.0.0",
+ "@jest/transform": "^29.0.0 || ^30.0.0",
+ "@jest/types": "^29.0.0 || ^30.0.0",
+ "babel-jest": "^29.0.0 || ^30.0.0",
+ "jest": "^29.0.0 || ^30.0.0",
+ "jest-util": "^29.0.0 || ^30.0.0",
"typescript": ">=4.3 <6"
},
"peerDependenciesMeta": {
@@ -15123,15 +15021,17 @@
},
"esbuild": {
"optional": true
+ },
+ "jest-util": {
+ "optional": true
}
}
},
"node_modules/ts-jest/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -15314,6 +15214,19 @@
"node": ">=14.17"
}
},
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -15421,7 +15334,6 @@
"resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
"integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4",
"yarn": "*"
@@ -15539,7 +15451,6 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -15550,7 +15461,6 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -15571,7 +15481,6 @@
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz",
"integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.3.4",
"eslint-scope": "^7.1.1",
@@ -15592,11 +15501,10 @@
}
},
"node_modules/vue-eslint-parser/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -16024,6 +15932,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -16120,11 +16034,10 @@
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
- "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
"dev": true,
- "license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
@@ -16137,7 +16050,6 @@
"resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.0.tgz",
"integrity": "sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^3.0.0",
"yaml": "^2.0.0"
diff --git a/package.json b/package.json
index 5bdea29..d792fdc 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"babel-jest": "^29.7.0",
"babel-loader": "^9.2.1",
"bpmnlint-pack-config": "^0.8.0",
- "eslint-config-wikimedia": "0.31.0",
+ "eslint-config-wikimedia": "0.32.1",
"grunt": "1.6.1",
"grunt-banana-checker": "0.13.0",
"grunt-eslint": "24.3.0",
diff --git a/resources/js/cpd/CpdModeler.ts b/resources/js/cpd/CpdModeler.ts
index 2c45eb4..03f4169 100644
--- a/resources/js/cpd/CpdModeler.ts
+++ b/resources/js/cpd/CpdModeler.ts
@@ -25,7 +25,7 @@ class CpdModeler extends CpdTool {
const baseAdditionalModules = [
BpmnColorPickerModule,
- { translate: [ 'value', translator.translate.bind(translator) ] },
+ { translate: [ 'value', translator.translate.bind( translator ) ] },
{
__init__: [ "paletteProvider", "replaceMenuProvider" ],
paletteProvider: [ "type", CustomPaletteProvider ],
@@ -38,9 +38,9 @@ class CpdModeler extends CpdTool {
...baseAdditionalModules,
...( enableLinting ? [ lintModule ] : [] ),
],
- ...( enableLinting
- ? { linting: { bpmnlint: bpmnlintConfig } }
- : {} ),
+ ...( enableLinting ?
+ { linting: { bpmnlint: bpmnlintConfig } } :
+ {} ),
};
const bpmnModeler = new BpmnModeler( modelerOptions );
@@ -194,16 +194,16 @@ class CpdModeler extends CpdTool {
private onImportFile( file: File ): void {
const reader = new FileReader();
- reader.onload = async ( e) => {
+ reader.onload = async ( e ) => {
const xml = e.target.result as string;
try {
await this.bpmnTool.importXML( xml );
this.centerViewport();
- } catch (err) {
- console.error('Failed to import BPMN:', err);
+ } catch ( err ) {
+ console.error( 'Failed to import BPMN:', err );
}
};
- reader.readAsText(file);
+ reader.readAsText( file );
}
}
diff --git a/resources/js/cpd/CpdTool.ts b/resources/js/cpd/CpdTool.ts
index a373fc0..a7ab0c4 100644
--- a/resources/js/cpd/CpdTool.ts
+++ b/resources/js/cpd/CpdTool.ts
@@ -91,8 +91,8 @@ export abstract class CpdTool {
}
private onExportDiagram(): void {
- this.bpmnTool.saveXML({ format: true }).then(({ xml }) => {
- const blob = new Blob([xml], { type: 'application/bpmn20-xml' });
+ this.bpmnTool.saveXML( { format: true } ).then( ( { xml } ) => {
+ const blob = new Blob( [ xml ], { type: 'application/bpmn20-xml' } );
const filename = this.diagramPage.getPrefixedText() + '.bpmn';
const url = URL.createObjectURL( blob );
const a = document.createElement( 'a' );
@@ -100,6 +100,6 @@ export abstract class CpdTool {
a.download = filename;
a.click();
URL.revokeObjectURL( url );
- });
+ } );
}
}
diff --git a/resources/js/cpd/helper/CpdDom.ts b/resources/js/cpd/helper/CpdDom.ts
index cf8c0fe..31e1d95 100644
--- a/resources/js/cpd/helper/CpdDom.ts
+++ b/resources/js/cpd/helper/CpdDom.ts
@@ -324,14 +324,16 @@ export default class CpdDom extends EventEmitter {
fileInput.accept = ".bpmn";
fileInput.style.display = "none";
- fileInput.addEventListener('change', (event) => {
+ fileInput.addEventListener( 'change', ( event ) => {
const input = event.target as HTMLInputElement;
- const file: File | undefined = input.files?.[0];
+ const file: File | undefined = input.files?.[ 0 ];
- if (!file) return;
+ if ( !file ) {
+ return;
+ }
this.emit( "importFile", file );
- });
+ } );
return fileInput;
}
@@ -345,9 +347,9 @@ export default class CpdDom extends EventEmitter {
name: "primary",
type: "bar",
include: [
- OpenDialogButton.static.name
+ OpenDialogButton.static.name,
],
- align: "after"
+ align: "after",
};
const secondaryBarConfig = {
@@ -362,7 +364,7 @@ export default class CpdDom extends EventEmitter {
CenterViewportButton.static.name,
ShowXmlButton.static.name,
ShowDiagramButton.static.name,
- ]
+ ],
};
toolFactory.register( CenterViewportButton );
@@ -398,12 +400,12 @@ export default class CpdDom extends EventEmitter {
secondaryBarConfig.include.push( GroupTool.static.name );
}
- toolbar.setup( [primaryBarConfig as ToolGroupSetupMap, secondaryBarConfig as ToolGroupSetupMap] );
+ toolbar.setup( [ primaryBarConfig as ToolGroupSetupMap, secondaryBarConfig as ToolGroupSetupMap ] );
[
...toolbar.getToolGroupByName( "primary" ).getItems(),
- ...toolbar.getToolGroupByName( "secondary" ).getItems()
- ].forEach( ( item: OO.ui.Tool ): void => {
+ ...toolbar.getToolGroupByName( "secondary" ).getItems(),
+ ].forEach( ( item: OO.ui.Tool ): void => {
if ( item.constructor === OpenDialogButton ) {
this.openDialogBtn = item;
this.openDialogBtn.onSelect = this.onOpenDialog.bind( this );
diff --git a/resources/js/cpd/oojs-ui/ExportButton.ts b/resources/js/cpd/oojs-ui/ExportButton.ts
index 306ea17..eb40638 100644
--- a/resources/js/cpd/oojs-ui/ExportButton.ts
+++ b/resources/js/cpd/oojs-ui/ExportButton.ts
@@ -7,8 +7,8 @@ export default class ExportButton extends Button {
label: mw.msg( "cpd-button-export" ),
title: mw.msg( "cpd-button-export" ),
icon: "download",
- displayBothIconAndLabel: false
- }
+ displayBothIconAndLabel: false,
+ },
};
setActive() {
diff --git a/resources/js/cpd/oojs-ui/GroupTool.ts b/resources/js/cpd/oojs-ui/GroupTool.ts
index 15a97ff..e1155d9 100644
--- a/resources/js/cpd/oojs-ui/GroupTool.ts
+++ b/resources/js/cpd/oojs-ui/GroupTool.ts
@@ -9,9 +9,9 @@ export default class GroupTool extends OO.ui.ToolGroupTool {
icon: 'folderPlaceholder',
include: [
ExportButton.static.name,
- ImportButton.static.name
- ]
- }
- }
+ ImportButton.static.name,
+ ],
+ },
+ },
};
}
diff --git a/resources/js/cpd/oojs-ui/ImportButton.ts b/resources/js/cpd/oojs-ui/ImportButton.ts
index 26708b0..98fede5 100644
--- a/resources/js/cpd/oojs-ui/ImportButton.ts
+++ b/resources/js/cpd/oojs-ui/ImportButton.ts
@@ -7,8 +7,8 @@ export default class ImportButton extends Button {
label: mw.msg( "cpd-button-import" ),
title: mw.msg( "cpd-button-import" ),
icon: "upload",
- displayBothIconAndLabel: false
- }
+ displayBothIconAndLabel: false,
+ },
};
setActive() {
--
2.47.3
--- end ---