Fix unfixable lints

0af4a3ebd7c879c503e86eeec096dbf6c9d0e59e

Cohee <18619528+Cohee1207@users.noreply.github.com>

28 files changed, +253 -52Showing whitespace changes
.eslintrc.cjs+4 -0
@@ -3,6 +3,9 @@ module.exports = {
33 extends: [
44 'eslint:recommended',
55 ],
6+ plugins: [
7+ 'jsdoc',
8+ ],
69 env: {
710 es6: true,
811 },
@@ -78,6 +81,7 @@ module.exports = {
7881 'public/scripts/extensions/tts/lib/**',
7982 ],
8083 rules: {
84+ 'jsdoc/no-undefined-types': ['warn', { disableReporting: true, markVariablesAsUsed: true }],
8185 'no-unused-vars': ['error', { args: 'none' }],
8286 'no-control-regex': 'off',
8387 'no-constant-condition': ['error', { checkLoops: false }],
package-lock.json+234 -4
@@ -110,7 +110,8 @@
110110 "@types/write-file-atomic": "^4.0.3",
111111 "@types/yargs": "^17.0.33",
112112 "@types/yauzl": "^2.10.3",
113113 "eslint": "^8.57.1",
114+ "eslint-plugin-jsdoc": "^50.6.8"
114115 },
115116 "engines": {
116117 "node": ">= 18"
@@ -147,6 +148,21 @@
147148 "integrity": "sha512-KlmTftToTtmb6aLVdne4NluS+POWputPF5J8v25UN/EQS+K9vahWEIe1NPRSFqBQclObkqHaj7JOnFrmnSm5MA==",
148149 "license": "Apache-2.0"
149150 },
151+ "node_modules/@es-joy/jsdoccomment": {
152+ "version": "0.49.0",
153+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz",
154+ "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==",
155+ "dev": true,
156+ "license": "MIT",
157+ "dependencies": {
158+ "comment-parser": "1.4.1",
159+ "esquery": "^1.6.0",
160+ "jsdoc-type-pratt-parser": "~4.1.0"
161+ },
162+ "engines": {
163+ "node": ">=16"
164+ }
165+ },
150166 "node_modules/@eslint-community/eslint-utils": {
151167 "version": "4.4.0",
152168 "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
@@ -970,6 +986,19 @@
970986 "node": ">=14"
971987 }
972988 },
989+ "node_modules/@pkgr/core": {
990+ "version": "0.1.1",
991+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
992+ "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
993+ "dev": true,
994+ "license": "MIT",
995+ "engines": {
996+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
997+ },
998+ "funding": {
999+ "url": "https://opencollective.com/unts"
1000+ }
1001+ },
9731002 "node_modules/@popperjs/core": {
9741003 "version": "2.11.8",
9751004 "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
@@ -2099,6 +2128,16 @@
20992128 "safe-buffer": "~5.2.0"
21002129 }
21012130 },
2131+ "node_modules/are-docs-informative": {
2132+ "version": "0.0.2",
2133+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
2134+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
2135+ "dev": true,
2136+ "license": "MIT",
2137+ "engines": {
2138+ "node": ">=14"
2139+ }
2140+ },
21022141 "node_modules/argparse": {
21032142 "version": "2.0.1",
21042143 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -2614,6 +2653,16 @@
26142653 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
26152654 "license": "MIT"
26162655 },
2656+ "node_modules/comment-parser": {
2657+ "version": "1.4.1",
2658+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
2659+ "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
2660+ "dev": true,
2661+ "license": "MIT",
2662+ "engines": {
2663+ "node": ">= 12.0.0"
2664+ }
2665+ },
26172666 "node_modules/compress-commons": {
26182667 "version": "6.0.2",
26192668 "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz",
@@ -3560,6 +3609,101 @@
35603609 "url": "https://opencollective.com/eslint"
35613610 }
35623611 },
3612+ "node_modules/eslint-plugin-jsdoc": {
3613+ "version": "50.6.8",
3614+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.8.tgz",
3615+ "integrity": "sha512-PPZVqhoXaalMQwDGzcQrJtPSPIPOYsSMtvkjYAdsIazOW20yhYtVX4+jLL+XznD4zYTXyZbPWPRKkNev4D4lyw==",
3616+ "dev": true,
3617+ "license": "BSD-3-Clause",
3618+ "dependencies": {
3619+ "@es-joy/jsdoccomment": "~0.49.0",
3620+ "are-docs-informative": "^0.0.2",
3621+ "comment-parser": "1.4.1",
3622+ "debug": "^4.3.6",
3623+ "escape-string-regexp": "^4.0.0",
3624+ "espree": "^10.1.0",
3625+ "esquery": "^1.6.0",
3626+ "parse-imports": "^2.1.1",
3627+ "semver": "^7.6.3",
3628+ "spdx-expression-parse": "^4.0.0",
3629+ "synckit": "^0.9.1"
3630+ },
3631+ "engines": {
3632+ "node": ">=18"
3633+ },
3634+ "peerDependencies": {
3635+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
3636+ }
3637+ },
3638+ "node_modules/eslint-plugin-jsdoc/node_modules/debug": {
3639+ "version": "4.4.0",
3640+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
3641+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
3642+ "dev": true,
3643+ "license": "MIT",
3644+ "dependencies": {
3645+ "ms": "^2.1.3"
3646+ },
3647+ "engines": {
3648+ "node": ">=6.0"
3649+ },
3650+ "peerDependenciesMeta": {
3651+ "supports-color": {
3652+ "optional": true
3653+ }
3654+ }
3655+ },
3656+ "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": {
3657+ "version": "4.0.0",
3658+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
3659+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
3660+ "dev": true,
3661+ "license": "MIT",
3662+ "engines": {
3663+ "node": ">=10"
3664+ },
3665+ "funding": {
3666+ "url": "https://github.com/sponsors/sindresorhus"
3667+ }
3668+ },
3669+ "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": {
3670+ "version": "4.2.0",
3671+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
3672+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
3673+ "dev": true,
3674+ "license": "Apache-2.0",
3675+ "engines": {
3676+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3677+ },
3678+ "funding": {
3679+ "url": "https://opencollective.com/eslint"
3680+ }
3681+ },
3682+ "node_modules/eslint-plugin-jsdoc/node_modules/espree": {
3683+ "version": "10.3.0",
3684+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
3685+ "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
3686+ "dev": true,
3687+ "license": "BSD-2-Clause",
3688+ "dependencies": {
3689+ "acorn": "^8.14.0",
3690+ "acorn-jsx": "^5.3.2",
3691+ "eslint-visitor-keys": "^4.2.0"
3692+ },
3693+ "engines": {
3694+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3695+ },
3696+ "funding": {
3697+ "url": "https://opencollective.com/eslint"
3698+ }
3699+ },
3700+ "node_modules/eslint-plugin-jsdoc/node_modules/ms": {
3701+ "version": "2.1.3",
3702+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3703+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3704+ "dev": true,
3705+ "license": "MIT"
3706+ },
35633707 "node_modules/eslint-scope": {
35643708 "version": "7.2.2",
35653709 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -3690,9 +3834,9 @@
36903834 }
36913835 },
36923836 "node_modules/esquery": {
36933837 "version": "1.56.0",
36943838 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.56.0.tgz",
36953839 "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idISca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/9fIU5GjG73IgjKMVg5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
36963840 "dev": true,
36973841 "license": "BSD-3-Clause",
36983842 "dependencies": {
@@ -5015,6 +5159,16 @@
50155159 "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
50165160 "license": "MIT"
50175161 },
5162+ "node_modules/jsdoc-type-pratt-parser": {
5163+ "version": "4.1.0",
5164+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz",
5165+ "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==",
5166+ "dev": true,
5167+ "license": "MIT",
5168+ "engines": {
5169+ "node": ">=12.0.0"
5170+ }
5171+ },
50185172 "node_modules/json-buffer": {
50195173 "version": "3.0.1",
50205174 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
@@ -5891,6 +6045,20 @@
58916045 "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==",
58926046 "license": "MIT"
58936047 },
6048+ "node_modules/parse-imports": {
6049+ "version": "2.2.1",
6050+ "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz",
6051+ "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==",
6052+ "dev": true,
6053+ "license": "Apache-2.0 AND MIT",
6054+ "dependencies": {
6055+ "es-module-lexer": "^1.5.3",
6056+ "slashes": "^3.0.12"
6057+ },
6058+ "engines": {
6059+ "node": ">= 18"
6060+ }
6061+ },
58946062 "node_modules/parse5": {
58956063 "version": "7.1.2",
58966064 "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
@@ -6600,6 +6768,19 @@
66006768 "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
66016769 "license": "MIT"
66026770 },
6771+ "node_modules/semver": {
6772+ "version": "7.7.1",
6773+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
6774+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
6775+ "dev": true,
6776+ "license": "ISC",
6777+ "bin": {
6778+ "semver": "bin/semver.js"
6779+ },
6780+ "engines": {
6781+ "node": ">=10"
6782+ }
6783+ },
66036784 "node_modules/send": {
66046785 "version": "0.19.0",
66056786 "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
@@ -6811,6 +6992,13 @@
68116992 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
68126993 "license": "MIT"
68136994 },
6995+ "node_modules/slashes": {
6996+ "version": "3.0.12",
6997+ "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz",
6998+ "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==",
6999+ "dev": true,
7000+ "license": "ISC"
7001+ },
68147002 "node_modules/sliced": {
68157003 "version": "1.0.1",
68167004 "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
@@ -6903,6 +7091,31 @@
69037091 "source-map": "^0.6.0"
69047092 }
69057093 },
7094+ "node_modules/spdx-exceptions": {
7095+ "version": "2.5.0",
7096+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
7097+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
7098+ "dev": true,
7099+ "license": "CC-BY-3.0"
7100+ },
7101+ "node_modules/spdx-expression-parse": {
7102+ "version": "4.0.0",
7103+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
7104+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
7105+ "dev": true,
7106+ "license": "MIT",
7107+ "dependencies": {
7108+ "spdx-exceptions": "^2.1.0",
7109+ "spdx-license-ids": "^3.0.0"
7110+ }
7111+ },
7112+ "node_modules/spdx-license-ids": {
7113+ "version": "3.0.21",
7114+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
7115+ "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
7116+ "dev": true,
7117+ "license": "CC0-1.0"
7118+ },
69067119 "node_modules/sprintf-js": {
69077120 "version": "1.1.3",
69087121 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
@@ -7042,6 +7255,23 @@
70427255 "node": ">=8"
70437256 }
70447257 },
7258+ "node_modules/synckit": {
7259+ "version": "0.9.2",
7260+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
7261+ "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
7262+ "dev": true,
7263+ "license": "MIT",
7264+ "dependencies": {
7265+ "@pkgr/core": "^0.1.0",
7266+ "tslib": "^2.6.2"
7267+ },
7268+ "engines": {
7269+ "node": "^14.18.0 || >=16.0.0"
7270+ },
7271+ "funding": {
7272+ "url": "https://opencollective.com/unts"
7273+ }
7274+ },
70457275 "node_modules/tapable": {
70467276 "version": "2.2.1",
70477277 "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
package.json+2 -1
@@ -140,6 +140,7 @@
140140 "@types/write-file-atomic": "^4.0.3",
141141 "@types/yargs": "^17.0.33",
142142 "@types/yauzl": "^2.10.3",
143143 "eslint": "^8.57.1",
144+ "eslint-plugin-jsdoc": "^50.6.8"
144145 }
145146}
public/scripts/autocomplete/AutoComplete.js+0 -2
@@ -3,10 +3,8 @@ import { debounce, escapeRegex } from '../utils.js';
33import { AutoCompleteOption } from './AutoCompleteOption.js';
44import { AutoCompleteFuzzyScore } from './AutoCompleteFuzzyScore.js';
55import { BlankAutoCompleteOption } from './BlankAutoCompleteOption.js';
6-// eslint-disable-next-line no-unused-vars
76import { AutoCompleteNameResult } from './AutoCompleteNameResult.js';
87import { AutoCompleteSecondaryNameResult } from './AutoCompleteSecondaryNameResult.js';
9-import { Popup, getTopmostModalLayer } from '../popup.js';
108
119/**@readonly*/
1210/**@enum {Number}*/
public/scripts/autocomplete/AutoCompleteNameResultBase.js+0 -1
@@ -1,4 +1,3 @@
1-import { SlashCommandNamedArgumentAutoCompleteOption } from '../slash-commands/SlashCommandNamedArgumentAutoCompleteOption.js';
21import { AutoCompleteOption } from './AutoCompleteOption.js';
32
43
public/scripts/autocomplete/AutoCompleteOption.js+0 -1
@@ -1,4 +1,3 @@
1-import { SlashCommand } from '../slash-commands/SlashCommand.js';
21import { AutoCompleteFuzzyScore } from './AutoCompleteFuzzyScore.js';
32
43
public/scripts/extensions/quick-reply/api/QuickReplyApi.js+0 -3
@@ -1,10 +1,7 @@
1-// eslint-disable-next-line no-unused-vars
21import { QuickReply } from '../src/QuickReply.js';
32import { QuickReplyContextLink } from '../src/QuickReplyContextLink.js';
43import { QuickReplySet } from '../src/QuickReplySet.js';
5-// eslint-disable-next-line no-unused-vars
64import { QuickReplySettings } from '../src/QuickReplySettings.js';
7-// eslint-disable-next-line no-unused-vars
85import { SettingsUi } from '../src/ui/SettingsUi.js';
96import { onlyUnique } from '../../../utils.js';
107
public/scripts/extensions/quick-reply/src/AutoExecuteHandler.js+0 -2
@@ -1,7 +1,5 @@
11import { warn } from '../index.js';
2-// eslint-disable-next-line no-unused-vars
32import { QuickReply } from './QuickReply.js';
4-// eslint-disable-next-line no-unused-vars
53import { QuickReplySettings } from './QuickReplySettings.js';
64
75export class AutoExecuteHandler {
public/scripts/extensions/quick-reply/src/QuickReply.js+0 -2
@@ -635,7 +635,6 @@ export class QuickReply {
635635 }, { passive:true });
636636 const getLineStart = ()=>{
637637 const start = message.selectionStart;
638- const end = message.selectionEnd;
639638 let lineStart;
640639 if (start == 0 || message.value[start - 1] == '\n') {
641640 // cursor is already at beginning of line
@@ -701,7 +700,6 @@ export class QuickReply {
701700 } else if (evt.key == 'Enter' && !evt.ctrlKey && !evt.shiftKey && !evt.altKey && !(ac.isReplaceable && ac.isActive)) {
702701 // new line, keep indent
703702 const start = message.selectionStart;
704- const end = message.selectionEnd;
705703 let lineStart = getLineStart();
706704 const indent = /^([^\S\n]*)/.exec(message.value.slice(lineStart))[1] ?? '';
707705 if (indent.length) {
public/scripts/extensions/quick-reply/src/SlashCommandHandler.js+0 -1
@@ -8,7 +8,6 @@ import { SlashCommandEnumValue, enumTypes } from '../../../slash-commands/SlashC
88import { SlashCommandParser } from '../../../slash-commands/SlashCommandParser.js';
99import { SlashCommandScope } from '../../../slash-commands/SlashCommandScope.js';
1010import { isTrueBoolean } from '../../../utils.js';
11-// eslint-disable-next-line no-unused-vars
1211import { QuickReplyApi } from '../api/QuickReplyApi.js';
1312import { QuickReply } from './QuickReply.js';
1413import { QuickReplySet } from './QuickReplySet.js';
public/scripts/extensions/quick-reply/src/ui/ButtonUi.js+0 -1
@@ -1,7 +1,6 @@
11import { animation_duration } from '../../../../../script.js';
22import { dragElement } from '../../../../RossAscends-mods.js';
33import { loadMovingUIState } from '../../../../power-user.js';
4-// eslint-disable-next-line no-unused-vars
54import { QuickReplySettings } from '../QuickReplySettings.js';
65
76export class ButtonUi {
public/scripts/extensions/quick-reply/src/ui/SettingsUi.js+0 -1
@@ -3,7 +3,6 @@ import { getSortableDelay } from '../../../../utils.js';
33import { log, warn } from '../../index.js';
44import { QuickReply } from '../QuickReply.js';
55import { QuickReplySet } from '../QuickReplySet.js';
6-// eslint-disable-next-line no-unused-vars
76import { QuickReplySettings } from '../QuickReplySettings.js';
87
98export class SettingsUi {
public/scripts/extensions/quick-reply/src/ui/ctx/ContextMenu.js+0 -1
@@ -1,5 +1,4 @@
11import { QuickReply } from '../../QuickReply.js';
2-// eslint-disable-next-line no-unused-vars
32import { QuickReplySet } from '../../QuickReplySet.js';
43import { MenuHeader } from './MenuHeader.js';
54import { MenuItem } from './MenuItem.js';
public/scripts/extensions/tts/gpt-sovits-v2.js+0 -2
@@ -183,8 +183,6 @@ class GptSovitsV2Provider {
183183
184184 let prompt_text = replaceSpeaker(voiceId);
185185
186- const streaming = this.settings.streaming;
187-
188186 const params = {
189187 text: inputText,
190188 prompt_text: prompt_text,
public/scripts/nai-settings.js+1 -0
@@ -795,6 +795,7 @@ export function parseNovelAILogprobs(data) {
795795
796796 // Add the chosen token to `merged` if it's not already there. This can
797797 // happen if the chosen token was not among the top 10 most likely ones.
798+ // eslint-disable-next-line no-unused-vars
798799 const [[chosenId], [_, chosenAfter]] = data.chosen[0];
799800 if (!merged.some(([id]) => id === chosenId)) {
800801 merged.push([chosenId, chosenAfter]);
public/scripts/slash-commands/SlashCommand.js+4 -4
@@ -3,16 +3,16 @@ import { SlashCommandAbortController } from './SlashCommandAbortController.js';
33import { SlashCommandArgument, SlashCommandNamedArgument } from './SlashCommandArgument.js';
44import { SlashCommandClosure } from './SlashCommandClosure.js';
55import { SlashCommandDebugController } from './SlashCommandDebugController.js';
6-import { PARSER_FLAG } from './SlashCommandParser.js';
76import { SlashCommandScope } from './SlashCommandScope.js';
87
9-
8+/**
10-
9+ * @typedef {import('./SlashCommandParser.js').ParserFlags} ParserFlags
10+ */
1111
1212/**
1313 * @typedef {{
1414 * _scope:SlashCommandScope,
1515 * _parserFlags:{[id:PARSER_FLAG]:booleanParserFlags},
1616 * _abortController:SlashCommandAbortController,
1717 * _debugController:SlashCommandDebugController,
1818 * _hasUnnamedArgument:boolean,
public/scripts/slash-commands/SlashCommandAutoCompleteNameResult.js+0 -3
@@ -1,9 +1,6 @@
11import { AutoCompleteNameResult } from '../autocomplete/AutoCompleteNameResult.js';
2-import { AutoCompleteOption } from '../autocomplete/AutoCompleteOption.js';
32import { AutoCompleteSecondaryNameResult } from '../autocomplete/AutoCompleteSecondaryNameResult.js';
43import { SlashCommand } from './SlashCommand.js';
5-import { SlashCommandNamedArgument } from './SlashCommandArgument.js';
6-import { SlashCommandClosure } from './SlashCommandClosure.js';
74import { SlashCommandCommandAutoCompleteOption } from './SlashCommandCommandAutoCompleteOption.js';
85import { SlashCommandEnumAutoCompleteOption } from './SlashCommandEnumAutoCompleteOption.js';
96import { SlashCommandExecutor } from './SlashCommandExecutor.js';
public/scripts/slash-commands/SlashCommandClosure.js+0 -3
@@ -2,7 +2,6 @@ import { substituteParams } from '../../script.js';
22import { delay, escapeRegex, uuidv4 } from '../utils.js';
33import { SlashCommand } from './SlashCommand.js';
44import { SlashCommandAbortController } from './SlashCommandAbortController.js';
5-import { SlashCommandNamedArgument } from './SlashCommandArgument.js';
65import { SlashCommandBreak } from './SlashCommandBreak.js';
76import { SlashCommandBreakController } from './SlashCommandBreakController.js';
87import { SlashCommandBreakPoint } from './SlashCommandBreakPoint.js';
@@ -16,9 +15,7 @@ import { SlashCommandScope } from './SlashCommandScope.js';
1615export class SlashCommandClosure {
1716 /** @type {SlashCommandScope} */ scope;
1817 /** @type {boolean} */ executeNow = false;
19- // @ts-ignore
2018 /** @type {SlashCommandNamedArgumentAssignment[]} */ argumentList = [];
21- // @ts-ignore
2219 /** @type {SlashCommandNamedArgumentAssignment[]} */ providedArgumentList = [];
2320 /** @type {SlashCommandExecutor[]} */ executorList = [];
2421 /** @type {SlashCommandAbortController} */ abortController;
public/scripts/slash-commands/SlashCommandDebugController.js+0 -0
public/scripts/slash-commands/SlashCommandEnumValue.js+0 -4
@@ -1,7 +1,3 @@
1-import { SlashCommandExecutor } from './SlashCommandExecutor.js';
2-import { SlashCommandScope } from './SlashCommandScope.js';
3-
4-
51/**
62 * @typedef {'enum' | 'command' | 'namedArgument' | 'variable' | 'qr' | 'macro' | 'number' | 'name'} EnumType
73 */
public/scripts/slash-commands/SlashCommandExecutor.js+1 -6
@@ -1,11 +1,7 @@
1-// eslint-disable-next-line no-unused-vars
21import { uuidv4 } from '../utils.js';
32import { SlashCommand } from './SlashCommand.js';
4-// eslint-disable-next-line no-unused-vars
53import { SlashCommandClosure } from './SlashCommandClosure.js';
64import { SlashCommandNamedArgumentAssignment } from './SlashCommandNamedArgumentAssignment.js';
7-// eslint-disable-next-line no-unused-vars
8-import { PARSER_FLAG } from './SlashCommandParser.js';
95import { SlashCommandUnnamedArgumentAssignment } from './SlashCommandUnnamedArgumentAssignment.js';
106
117export class SlashCommandExecutor {
@@ -29,10 +25,9 @@ export class SlashCommandExecutor {
2925 }
3026 }
3127 /** @type {SlashCommand} */ command;
32- // @ts-ignore
3328 /** @type {SlashCommandNamedArgumentAssignment[]} */ namedArgumentList = [];
3429 /** @type {SlashCommandUnnamedArgumentAssignment[]} */ unnamedArgumentList = [];
3530 /** @type {{[id:PARSER_FLAG]:boolean}import('./SlashCommandParser.js').ParserFlags} */ parserFlags;
3631
3732 get commandCount() {
3833 return 1
public/scripts/slash-commands/SlashCommandNamedArgumentAssignment.js+0 -0
public/scripts/slash-commands/SlashCommandNamedArgumentAutoCompleteOption.js+0 -1
@@ -1,7 +1,6 @@
11import { AutoCompleteOption } from '../autocomplete/AutoCompleteOption.js';
22import { SlashCommand } from './SlashCommand.js';
33import { SlashCommandNamedArgument } from './SlashCommandArgument.js';
4-import { SlashCommandNamedArgumentAssignment } from './SlashCommandNamedArgumentAssignment.js';
54
65export class SlashCommandNamedArgumentAutoCompleteOption extends AutoCompleteOption {
76 /** @type {SlashCommandNamedArgument} */ arg;
public/scripts/slash-commands/SlashCommandParser.js+5 -6
@@ -8,11 +8,9 @@ import { SlashCommandExecutor } from './SlashCommandExecutor.js';
88import { SlashCommandParserError } from './SlashCommandParserError.js';
99import { AutoCompleteNameResult } from '../autocomplete/AutoCompleteNameResult.js';
1010import { SlashCommandQuickReplyAutoCompleteOption } from './SlashCommandQuickReplyAutoCompleteOption.js';
11-// eslint-disable-next-line no-unused-vars
1211import { SlashCommandScope } from './SlashCommandScope.js';
1312import { SlashCommandVariableAutoCompleteOption } from './SlashCommandVariableAutoCompleteOption.js';
1413import { SlashCommandNamedArgumentAssignment } from './SlashCommandNamedArgumentAssignment.js';
15-// eslint-disable-next-line no-unused-vars
1614import { SlashCommandAbortController } from './SlashCommandAbortController.js';
1715import { SlashCommandAutoCompleteNameResult } from './SlashCommandAutoCompleteNameResult.js';
1816import { SlashCommandUnnamedArgumentAssignment } from './SlashCommandUnnamedArgumentAssignment.js';
@@ -28,15 +26,17 @@ import { t } from '../i18n.js';
2826/** @typedef {import('./SlashCommand.js').NamedArgumentsCapture} NamedArgumentsCapture */
2927/** @typedef {import('./SlashCommand.js').NamedArguments} NamedArguments */
3028
3129/**@readonly*/
3230/* * @enum {Number}*/
31+ * @readonly
32+ * @typedef {{[id:PARSER_FLAG]:boolean}} ParserFlags
33+ */
3334export const PARSER_FLAG = {
3435 'STRICT_ESCAPING': 1,
3536 'REPLACE_GETVAR': 2,
3637};
3738
3839export class SlashCommandParser {
39- // @ts-ignore
4040 /** @type {Object.<string, SlashCommand>} */ static commands = {};
4141
4242 /**
@@ -101,7 +101,6 @@ export class SlashCommandParser {
101101 get commands() {
102102 return SlashCommandParser.commands;
103103 }
104- // @ts-ignore
105104 /** @type {Object.<string, string>} */ helpStrings = {};
106105 /** @type {boolean} */ verifyCommandNames = true;
107106 /** @type {string} */ text;
public/scripts/slash-commands/SlashCommandScope.js+0 -0
public/scripts/slash-commands/SlashCommandUnnamedArgumentAssignment.js+0 -0
public/scripts/tags.js+0 -1
@@ -13,7 +13,6 @@ import {
1313 DEFAULT_PRINT_TIMEOUT,
1414 printCharacters,
1515} from '../script.js';
16-// eslint-disable-next-line no-unused-vars
1716import { FILTER_TYPES, FILTER_STATES, DEFAULT_FILTER_STATE, isFilterState, FilterHelper } from './filters.js';
1817
1918import { groupCandidatesFilter, groups, selected_group } from './group-chats.js';
public/scripts/variables.js+2 -2
@@ -9,7 +9,7 @@ import { SlashCommandClosure } from './slash-commands/SlashCommandClosure.js';
99import { SlashCommandClosureResult } from './slash-commands/SlashCommandClosureResult.js';
1010import { commonEnumProviders, enumIcons } from './slash-commands/SlashCommandCommonEnumsProvider.js';
1111import { SlashCommandEnumValue, enumTypes } from './slash-commands/SlashCommandEnumValue.js';
1212import { PARSER_FLAG, SlashCommandParser } from './slash-commands/SlashCommandParser.js';
1313import { slashCommandReturnHelper } from './slash-commands/SlashCommandReturnHelper.js';
1414import { SlashCommandScope } from './slash-commands/SlashCommandScope.js';
1515import { isFalseBoolean, convertValueType, isTrueBoolean } from './utils.js';
@@ -583,7 +583,7 @@ export function evalBoolean(rule, a, b) {
583583 * Executes a slash command from a string (may be enclosed in quotes) and returns the result.
584584 * @param {string} command Command to execute. May contain escaped macro and batch separators.
585585 * @param {SlashCommandScope} [scope] The scope to use.
586586 * @param {{[id:PARSER_FLAG]:boolean}import('./slash-commands/SlashCommandParser.js').ParserFlags} [parserFlags] The parser flags to use.
587587 * @param {SlashCommandAbortController} [abortController] The abort controller to use.
588588 * @returns {Promise<SlashCommandClosureResult>} Closure execution result
589589 */