@lordbex/thelounge 4.4.3-blowfish → 4.5.0-blowfish-pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +31 -7
  2. package/dist/defaults/config.js +31 -2
  3. package/dist/package.json +94 -91
  4. package/dist/server/client.js +188 -194
  5. package/dist/server/clientManager.js +75 -72
  6. package/dist/server/command-line/index.js +44 -43
  7. package/dist/server/command-line/install.js +37 -70
  8. package/dist/server/command-line/outdated.js +12 -17
  9. package/dist/server/command-line/start.js +25 -26
  10. package/dist/server/command-line/storage.js +26 -31
  11. package/dist/server/command-line/uninstall.js +16 -23
  12. package/dist/server/command-line/upgrade.js +20 -26
  13. package/dist/server/command-line/users/add.js +33 -40
  14. package/dist/server/command-line/users/edit.js +18 -24
  15. package/dist/server/command-line/users/index.js +12 -16
  16. package/dist/server/command-line/users/list.js +11 -39
  17. package/dist/server/command-line/users/remove.js +16 -22
  18. package/dist/server/command-line/users/reset.js +34 -35
  19. package/dist/server/command-line/utils.js +231 -87
  20. package/dist/server/config.js +61 -52
  21. package/dist/server/helper.js +29 -28
  22. package/dist/server/identification.js +39 -34
  23. package/dist/server/index.js +1 -3
  24. package/dist/server/log.js +19 -16
  25. package/dist/server/models/chan.js +36 -33
  26. package/dist/server/models/msg.js +15 -19
  27. package/dist/server/models/network.js +102 -104
  28. package/dist/server/models/prefix.js +4 -7
  29. package/dist/server/models/user.js +5 -10
  30. package/dist/server/path-helper.js +8 -0
  31. package/dist/server/plugins/auth/ldap.js +177 -112
  32. package/dist/server/plugins/auth/local.js +10 -15
  33. package/dist/server/plugins/auth.js +6 -35
  34. package/dist/server/plugins/changelog.js +30 -27
  35. package/dist/server/plugins/clientCertificate.js +33 -37
  36. package/dist/server/plugins/dev-server.js +15 -21
  37. package/dist/server/plugins/inputs/action.js +9 -14
  38. package/dist/server/plugins/inputs/away.js +1 -3
  39. package/dist/server/plugins/inputs/ban.js +9 -14
  40. package/dist/server/plugins/inputs/blow.js +9 -14
  41. package/dist/server/plugins/inputs/connect.js +5 -10
  42. package/dist/server/plugins/inputs/ctcp.js +7 -12
  43. package/dist/server/plugins/inputs/disconnect.js +1 -3
  44. package/dist/server/plugins/inputs/ignore.js +23 -29
  45. package/dist/server/plugins/inputs/ignorelist.js +12 -18
  46. package/dist/server/plugins/inputs/index.js +8 -34
  47. package/dist/server/plugins/inputs/invite.js +7 -12
  48. package/dist/server/plugins/inputs/kick.js +7 -12
  49. package/dist/server/plugins/inputs/kill.js +1 -3
  50. package/dist/server/plugins/inputs/list.js +1 -3
  51. package/dist/server/plugins/inputs/mode.js +10 -15
  52. package/dist/server/plugins/inputs/msg.js +13 -18
  53. package/dist/server/plugins/inputs/mute.js +9 -15
  54. package/dist/server/plugins/inputs/nick.js +9 -14
  55. package/dist/server/plugins/inputs/notice.js +5 -7
  56. package/dist/server/plugins/inputs/part.js +11 -16
  57. package/dist/server/plugins/inputs/quit.js +7 -13
  58. package/dist/server/plugins/inputs/rainbow.js +55 -0
  59. package/dist/server/plugins/inputs/raw.js +1 -3
  60. package/dist/server/plugins/inputs/rejoin.js +7 -12
  61. package/dist/server/plugins/inputs/topic.js +7 -12
  62. package/dist/server/plugins/inputs/whois.js +1 -3
  63. package/dist/server/plugins/irc-events/away.js +14 -20
  64. package/dist/server/plugins/irc-events/cap.js +16 -22
  65. package/dist/server/plugins/irc-events/chghost.js +14 -13
  66. package/dist/server/plugins/irc-events/connection.js +61 -63
  67. package/dist/server/plugins/irc-events/ctcp.js +22 -28
  68. package/dist/server/plugins/irc-events/error.js +20 -26
  69. package/dist/server/plugins/irc-events/help.js +7 -13
  70. package/dist/server/plugins/irc-events/info.js +7 -13
  71. package/dist/server/plugins/irc-events/invite.js +7 -13
  72. package/dist/server/plugins/irc-events/join.js +30 -27
  73. package/dist/server/plugins/irc-events/kick.js +21 -17
  74. package/dist/server/plugins/irc-events/link.js +122 -109
  75. package/dist/server/plugins/irc-events/list.js +23 -26
  76. package/dist/server/plugins/irc-events/message.js +46 -52
  77. package/dist/server/plugins/irc-events/mode.js +66 -63
  78. package/dist/server/plugins/irc-events/modelist.js +29 -35
  79. package/dist/server/plugins/irc-events/motd.js +10 -16
  80. package/dist/server/plugins/irc-events/names.js +3 -6
  81. package/dist/server/plugins/irc-events/nick.js +26 -23
  82. package/dist/server/plugins/irc-events/part.js +19 -15
  83. package/dist/server/plugins/irc-events/quit.js +17 -14
  84. package/dist/server/plugins/irc-events/sasl.js +9 -15
  85. package/dist/server/plugins/irc-events/spgroups.js +38 -0
  86. package/dist/server/plugins/irc-events/spjoin.js +52 -0
  87. package/dist/server/plugins/irc-events/topic.js +12 -18
  88. package/dist/server/plugins/irc-events/unhandled.js +12 -12
  89. package/dist/server/plugins/irc-events/welcome.js +7 -13
  90. package/dist/server/plugins/irc-events/whois.js +20 -24
  91. package/dist/server/plugins/massEventAggregator.js +214 -0
  92. package/dist/server/plugins/messageStorage/sqlite.js +322 -141
  93. package/dist/server/plugins/messageStorage/text.js +21 -26
  94. package/dist/server/plugins/packages/index.js +105 -74
  95. package/dist/server/plugins/packages/publicClient.js +7 -16
  96. package/dist/server/plugins/packages/themes.js +11 -16
  97. package/dist/server/plugins/storage.js +28 -33
  98. package/dist/server/plugins/sts.js +12 -17
  99. package/dist/server/plugins/uploader.js +40 -43
  100. package/dist/server/plugins/webpush.js +23 -51
  101. package/dist/server/server.js +318 -271
  102. package/dist/server/storageCleaner.js +29 -37
  103. package/dist/server/utils/fish.js +349 -389
  104. package/dist/shared/irc.js +3 -6
  105. package/dist/shared/linkify.js +7 -14
  106. package/dist/shared/types/chan.js +6 -9
  107. package/dist/shared/types/changelog.js +1 -2
  108. package/dist/shared/types/config.js +1 -2
  109. package/dist/shared/types/mention.js +1 -2
  110. package/dist/shared/types/msg.js +3 -5
  111. package/dist/shared/types/network.js +1 -2
  112. package/dist/shared/types/storage.js +1 -2
  113. package/dist/shared/types/user.js +1 -2
  114. package/index.js +14 -10
  115. package/package.json +94 -91
  116. package/public/css/style.css +9 -6
  117. package/public/css/style.css.map +1 -1
  118. package/public/fonts/font-awesome/fa-brands-400.ttf +0 -0
  119. package/public/fonts/font-awesome/fa-brands-400.woff2 +0 -0
  120. package/public/fonts/font-awesome/fa-duotone-900.ttf +0 -0
  121. package/public/fonts/font-awesome/fa-duotone-900.woff2 +0 -0
  122. package/public/fonts/font-awesome/fa-light-300.ttf +0 -0
  123. package/public/fonts/font-awesome/fa-light-300.woff2 +0 -0
  124. package/public/fonts/font-awesome/fa-regular-400.ttf +0 -0
  125. package/public/fonts/font-awesome/fa-regular-400.woff2 +0 -0
  126. package/public/fonts/font-awesome/fa-solid-900.ttf +0 -0
  127. package/public/fonts/font-awesome/fa-solid-900.woff2 +0 -0
  128. package/public/fonts/font-awesome/fa-thin-100.ttf +0 -0
  129. package/public/fonts/font-awesome/fa-thin-100.woff2 +0 -0
  130. package/public/fonts/font-awesome/fa-v4compatibility.ttf +0 -0
  131. package/public/fonts/font-awesome/fa-v4compatibility.woff2 +0 -0
  132. package/public/js/bundle.js +1 -1
  133. package/public/js/bundle.js.map +1 -1
  134. package/public/js/bundle.vendor.js +1 -1
  135. package/public/js/bundle.vendor.js.LICENSE.txt +24 -6
  136. package/public/js/bundle.vendor.js.map +1 -1
  137. package/public/js/loading-error-handlers.js +1 -1
  138. package/public/service-worker.js +1 -1
  139. package/public/themes/default.css +1 -1
  140. package/public/themes/morning.css +1 -1
  141. package/dist/webpack.config.js +0 -224
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  <a href="https://demo.thelounge.chat/">Demo</a>
19
19
 
20
- <a href="https://github.com/thelounge/thelounge-docker">Docker</a>
20
+ <a href="https://github.com/LordBex/thelounge-docker">Docker</a>
21
21
  </strong>
22
22
  </p>
23
23
  <p align="center">
@@ -27,15 +27,39 @@
27
27
  <a href="https://yarn.pm/thelounge"><img
28
28
  alt="npm version"
29
29
  src="https://img.shields.io/npm/v/thelounge.svg?colorA=333a41&maxAge=3600"></a>
30
- <a href="https://github.com/thelounge/thelounge/actions"><img
30
+ <a href="https://github.com/LordBex/thelounge/actions"><img
31
31
  alt="Build Status"
32
- src="https://github.com/thelounge/thelounge/workflows/Build/badge.svg"></a>
32
+ src="https://github.com/LordBex/thelounge/workflows/Build/badge.svg"></a>
33
33
  </p>
34
34
 
35
35
  <p align="center">
36
36
  <img src="https://raw.githubusercontent.com/thelounge/thelounge.github.io/master/img/thelounge-screenshot.png" width="550">
37
37
  </p>
38
38
 
39
+ ## 🔐 FiSH Blowfish Fork
40
+
41
+ **This is a fork of The Lounge with integrated FiSH Blowfish encryption support.**
42
+
43
+ This enhanced version adds IRC message encryption capabilities using the FiSH (Blowfish) encryption protocol, compatible with popular IRC clients like HexChat, mIRC, and others.
44
+
45
+ ### FiSH Features
46
+
47
+ - **Per-channel encryption** - Set individual encryption keys for each channel or query
48
+ - **Global encryption key** - Apply a default key across all channels
49
+ - **Automatic encryption/decryption** - Seamlessly encrypts outgoing and decrypts incoming messages
50
+ - **mIRC compatibility** - Full compatibility with standard FiSH implementations
51
+ - **Easy key management** - Simple `/blow` commands for setting and clearing keys
52
+
53
+ ### Usage
54
+
55
+ ```
56
+ /blow <key> # Set encryption key for current channel
57
+ /blow off # Disable encryption for current channel
58
+ /blow # Show current encryption status
59
+ ```
60
+
61
+ Keys can also be configured via the network settings in the web interface.
62
+
39
63
  ## Overview
40
64
 
41
65
  - **Modern features brought to IRC.** Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
@@ -50,8 +74,8 @@ The Lounge is the official and community-managed fork of [Shout](https://github.
50
74
 
51
75
  ## Installation and usage
52
76
 
53
- The Lounge requires latest [Node.js](https://nodejs.org/) LTS version or more recent.
54
- The [Yarn package manager](https://yarnpkg.com/) is also recommended.
77
+ The Lounge requires [Node.js](https://nodejs.org/) v24.11.1 or newer (Node.js v24 LTS or v25+ recommended).
78
+ The [Yarn package manager](https://yarnpkg.com/) v4.11.0+ is also recommended.
55
79
  If you want to install with npm, `--unsafe-perm` is required for a correct install.
56
80
 
57
81
  ### Running stable releases
@@ -63,7 +87,7 @@ Please refer to the [install and upgrade documentation on our website](https://t
63
87
  The following commands install and run the development version of The Lounge:
64
88
 
65
89
  ```sh
66
- git clone https://github.com/thelounge/thelounge.git
90
+ git clone https://github.com/yourusername/thelounge.git
67
91
  cd thelounge
68
92
  yarn install
69
93
  NODE_ENV=production yarn build
@@ -82,7 +106,7 @@ fork.
82
106
 
83
107
  Before submitting any change, make sure to:
84
108
 
85
- - Read the [Contributing instructions](https://github.com/thelounge/thelounge/blob/master/.github/CONTRIBUTING.md#contributing)
109
+ - Read the [Contributing instructions](https://github.com/LordBex/thelounge/blob/master/.github/CONTRIBUTING.md#contributing)
86
110
  - Run `yarn test` to execute linters and the test suite
87
111
  - Run `yarn format:prettier` if linting fails
88
112
  - Run `yarn build:client` if you change or add anything in `client/js` or `client/components`
@@ -1,5 +1,4 @@
1
- "use strict";
2
- module.exports = {
1
+ export default {
3
2
  // ## Server settings
4
3
  // ### `public`
5
4
  //
@@ -293,6 +292,32 @@ module.exports = {
293
292
  maxAgeDays: 7,
294
293
  deletionPolicy: "statusOnly",
295
294
  },
295
+ // ### `massEventDetection`
296
+ //
297
+ // Configure detection and aggregation of mass IRC events (netsplits/reconnects).
298
+ // When enabled, rapid consecutive status messages are buffered and displayed as
299
+ // a single summary message instead of flooding the chat with individual messages.
300
+ //
301
+ // The available keys for the `massEventDetection` object are:
302
+ //
303
+ // - `enable`: When set to `true`, mass event detection is active.
304
+ // - `threshold`: Number of status messages within the window that triggers
305
+ // mass event mode.
306
+ // - `windowMs`: Time window in milliseconds for counting messages toward threshold.
307
+ // - `cooldownMs`: Time in milliseconds of inactivity before ending a mass event.
308
+ // - `maxDurationMs`: Maximum duration of a mass event in milliseconds (safety limit).
309
+ // - `refreshNamesAfter`: Whether to send NAMES after mass event ends to refresh
310
+ // the user list.
311
+ //
312
+ // This value is set to enable mass event detection by default:
313
+ massEventDetection: {
314
+ enable: true,
315
+ threshold: 10, // Trigger after 10 messages (was 20)
316
+ windowMs: 10000, // 10 second window (was 5s)
317
+ cooldownMs: 10000, // 10 seconds of inactivity to end (was 3s)
318
+ maxDurationMs: 300000, // 5 minute max (was 1 min)
319
+ refreshNamesAfter: true,
320
+ },
296
321
  // ### `useHexIp`
297
322
  //
298
323
  // When set to `true`, users' IP addresses will be encoded as hex.
@@ -450,6 +475,10 @@ module.exports = {
450
475
  //
451
476
  // All values in the `debug` object are set to `false`.
452
477
  debug: {
478
+ // ### `debug.logs`
479
+ //
480
+ // When set to true, this enables extra debugging output
481
+ logs: false,
453
482
  // ### `debug.ircFramework`
454
483
  //
455
484
  // When set to true, this enables extra debugging output provided by
package/dist/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@lordbex/thelounge",
3
3
  "description": "The self-hosted Web IRC client",
4
- "version": "4.4.3-blowfish",
4
+ "version": "4.5.0-blowfish-pre",
5
+ "type": "module",
5
6
  "preferGlobal": true,
6
- "bin": {
7
- "thelounge": "index.js"
8
- },
7
+ "bin": "index.js",
9
8
  "repository": {
10
9
  "type": "git",
11
10
  "url": "https://github.com/LordBex/thelounge.git"
@@ -13,21 +12,20 @@
13
12
  "homepage": "https://thelounge.chat/",
14
13
  "scripts": {
15
14
  "build:client": "webpack",
16
- "build:server": "tsc -p server/tsconfig.json",
15
+ "build:server": "tsc --build server/tsconfig.json",
17
16
  "build": "run-p --aggregate-output build:client build:server",
18
- "coverage": "run-s test:* && nyc --nycrc-path=test/.nycrc-report.json report",
19
- "dev": "cross-env NODE_ENV=development ts-node --project server/tsconfig.json server/index.ts start --dev",
17
+ "coverage": "run-s test:mocha test:nospec && nyc --nycrc-path=test/.nycrc-report.json report",
18
+ "dev": "cross-env NODE_ENV=development tsx server/index.ts start --dev",
20
19
  "format:prettier": "prettier --write \"**/*.*\"",
21
20
  "generate:config:doc": "ts-node scripts/generate-config-doc.js",
22
- "lint:check-eslint": "eslint-config-prettier .eslintrc.cjs",
23
21
  "lint:eslint": "eslint . --report-unused-disable-directives --color",
24
22
  "lint:prettier": "prettier --list-different \"**/*.*\"",
25
23
  "lint:stylelint": "stylelint --color \"client/**/*.css\"",
26
- "lint": "run-p --aggregate-output --continue-on-error lint:*",
24
+ "lint": "run-p --aggregate-output --continue-on-error lint:eslint lint:prettier lint:stylelint",
27
25
  "start": "node index start",
28
- "test": "run-p --aggregate-output --continue-on-error lint:* test:mocha",
29
- "test:mocha": "webpack --mode=development && cross-env NODE_ENV=test TS_NODE_PROJECT='./test/tsconfig.json' mocha --config=test/.mocharc.yml 'test/**/*.ts'",
30
- "test:nospec": "webpack --mode=development && cross-env NODE_ENV=test TS_NODE_PROJECT='./test/tsconfig.json' mocha --config=test/.mocharc.yml",
26
+ "test": "run-p --aggregate-output --continue-on-error lint:eslint lint:prettier lint:stylelint test:mocha",
27
+ "test:mocha": "webpack --mode=development && cross-env NODE_ENV=test tsx node_modules/.bin/mocha --config=test/.mocharc.yml 'test/**/*.ts'",
28
+ "test:nospec": "webpack --mode=development && cross-env NODE_ENV=test tsx node_modules/.bin/mocha --config=test/.mocharc.yml",
31
29
  "watch": "webpack --watch",
32
30
  "githooks-install": "git config core.hooksPath scripts/git-hooks"
33
31
  },
@@ -44,7 +42,7 @@
44
42
  ],
45
43
  "license": "MIT",
46
44
  "engines": {
47
- "node": ">=18.0.0"
45
+ "node": ">=20.0.0"
48
46
  },
49
47
  "files": [
50
48
  "./.thelounge_home",
@@ -56,119 +54,124 @@
56
54
  "./public/**"
57
55
  ],
58
56
  "dependencies": {
59
- "@fastify/busboy": "1.0.0",
60
- "bcryptjs": "2.4.3",
61
- "chalk": "4.1.2",
62
- "cheerio": "1.0.0",
63
- "commander": "9.0.0",
57
+ "@fastify/busboy": "3.2.0",
58
+ "bcryptjs": "3.0.3",
59
+ "chalk": "5.6.2",
60
+ "cheerio": "1.1.2",
61
+ "commander": "14.0.2",
64
62
  "content-disposition": "0.5.4",
65
- "express": "4.20.0",
66
- "file-type": "16.5.4",
67
- "filenamify": "4.3.0",
68
- "got": "11.8.6",
63
+ "express": "5.1.0",
64
+ "file-type": "21.1.0",
65
+ "filenamify": "7.0.1",
69
66
  "irc-framework": "4.14.0",
70
- "is-utf8": "0.2.1",
71
- "ldapjs": "2.3.3",
72
- "linkify-it": "3.0.3",
67
+ "ldapts": "8.0.9",
68
+ "linkify-it": "5.0.0",
73
69
  "lodash": "4.17.21",
74
- "mime-types": "2.1.35",
70
+ "mime-types": "3.0.1",
75
71
  "node-forge": "1.3.1",
76
- "package-json": "7.0.0",
77
- "read": "1.0.7",
78
- "read-chunk": "3.2.0",
79
- "semver": "7.5.2",
80
- "socket.io": "4.6.2",
81
- "tlds": "1.228.0",
82
- "ua-parser-js": "1.0.39",
83
- "uuid": "8.3.2",
84
- "web-push": "3.4.5",
85
- "yarn": "1.22.22"
72
+ "package-json": "10.0.1",
73
+ "read": "5.0.1",
74
+ "read-chunk": "5.0.0",
75
+ "semver": "7.7.3",
76
+ "socket.io": "4.8.1",
77
+ "tlds": "1.261.0",
78
+ "ua-parser-js": "2.0.6",
79
+ "undici": "7.16.0",
80
+ "uuid": "13.0.0",
81
+ "web-push": "3.6.7"
86
82
  },
87
83
  "optionalDependencies": {
88
- "sqlite3": "5.1.7"
84
+ "better-sqlite3": "12.4.1"
89
85
  },
90
86
  "devDependencies": {
91
- "@babel/core": "7.17.10",
92
- "@babel/plugin-transform-runtime": "7.18.2",
93
- "@babel/preset-env": "7.17.10",
87
+ "@babel/core": "7.28.5",
88
+ "@babel/plugin-transform-runtime": "7.28.5",
89
+ "@babel/preset-env": "7.28.5",
94
90
  "@fortawesome/fontawesome-free": "5.15.4",
95
91
  "@istanbuljs/nyc-config-typescript": "1.0.2",
96
- "@textcomplete/core": "0.1.10",
92
+ "@stylistic/stylelint-plugin": "^4.0.0",
93
+ "@textcomplete/core": "0.1.13",
97
94
  "@textcomplete/textarea": "0.1.13",
98
95
  "@types/bcryptjs": "2.4.6",
99
- "@types/chai": "4.3.5",
96
+ "@types/better-sqlite3": "7.6.11",
97
+ "@types/chai": "5.2.3",
100
98
  "@types/cheerio": "0.22.35",
101
99
  "@types/content-disposition": "0.5.8",
102
- "@types/express": "4.17.21",
103
- "@types/is-utf8": "0.2.3",
104
- "@types/ldapjs": "2.2.5",
100
+ "@types/express": "5.0.5",
105
101
  "@types/linkify-it": "3.0.5",
106
- "@types/lodash": "4.14.202",
107
- "@types/mime-types": "2.1.4",
108
- "@types/mocha": "9.1.1",
102
+ "@types/lodash": "4.17.20",
103
+ "@types/mime-types": "3.0.1",
104
+ "@types/mocha": "^10.0.10",
109
105
  "@types/mousetrap": "1.6.15",
110
- "@types/node": "17.0.45",
106
+ "@types/node": "24.10.1",
111
107
  "@types/read": "0.0.32",
112
- "@types/semver": "7.3.9",
108
+ "@types/semver": "7.7.1",
109
+ "@types/sinon": "^20.0.0",
113
110
  "@types/sortablejs": "1.15.8",
114
- "@types/sqlite3": "3.1.11",
115
111
  "@types/ua-parser-js": "0.7.39",
116
112
  "@types/uuid": "8.3.4",
117
- "@types/web-push": "3.3.2",
113
+ "@types/web-push": "3.6.4",
118
114
  "@types/webpack-env": "1.16.4",
119
115
  "@types/webpack-hot-middleware": "2.25.6",
120
116
  "@types/ws": "8.5.12",
121
- "@typescript-eslint/eslint-plugin": "7.8.0",
122
- "@typescript-eslint/parser": "7.8.0",
123
- "@vue/runtime-dom": "3.2.33",
117
+ "@types/wtfnode": "^0",
118
+ "@typescript-eslint/eslint-plugin": "8.46.4",
119
+ "@typescript-eslint/parser": "8.46.4",
120
+ "@vue/runtime-dom": "3.5.24",
124
121
  "@vue/test-utils": "2.4.6",
125
- "babel-loader": "8.2.5",
122
+ "babel-loader": "10.0.0",
126
123
  "babel-plugin-istanbul": "6.1.1",
127
124
  "babel-preset-typescript-vue3": "2.0.17",
128
- "chai": "4.3.7",
129
- "copy-webpack-plugin": "10.2.4",
125
+ "chai": "6.2.1",
126
+ "copy-webpack-plugin": "13.0.1",
130
127
  "cross-env": "7.0.3",
131
- "css-loader": "6.5.1",
132
- "cssnano": "5.0.17",
128
+ "css-loader": "7.1.2",
129
+ "cssnano": "7.1.2",
133
130
  "dayjs": "1.10.8",
134
131
  "emoji-regex": "10.2.1",
135
- "eslint": "8.57.0",
136
- "eslint-config-prettier": "9.1.0",
137
- "eslint-define-config": "2.1.0",
138
- "eslint-plugin-vue": "9.25.0",
139
- "fork-ts-checker-webpack-plugin": "7.2.13",
132
+ "eslint": "9.39.1",
133
+ "eslint-config-prettier": "10.1.8",
134
+ "eslint-plugin-vue": "10.5.1",
135
+ "fork-ts-checker-webpack-plugin": "9.1.0",
140
136
  "fuzzy": "0.1.3",
141
- "mini-css-extract-plugin": "2.5.3",
142
- "mocha": "9.2.2",
137
+ "globals": "16.5.0",
138
+ "mini-css-extract-plugin": "2.9.4",
139
+ "mocha": "^11.7.5",
143
140
  "mousetrap": "1.6.5",
144
141
  "normalize.css": "8.0.1",
145
142
  "npm-run-all": "4.1.5",
146
- "nyc": "15.1.0",
147
- "postcss": "8.4.47",
148
- "postcss-import": "14.0.2",
149
- "postcss-loader": "6.2.1",
150
- "postcss-preset-env": "7.3.0",
151
- "prettier": "2.5.1",
152
- "pretty-quick": "3.1.3",
143
+ "nyc": "17.1.0",
144
+ "postcss": "8.5.6",
145
+ "postcss-import": "16.1.1",
146
+ "postcss-loader": "8.2.0",
147
+ "postcss-preset-env": "10.4.0",
148
+ "prettier": "3.6.2",
149
+ "pretty-quick": "4.2.2",
153
150
  "primer-tooltips": "2.0.0",
154
- "sinon": "13.0.2",
155
- "socket.io-client": "4.5.0",
151
+ "sinon": "21.0.0",
152
+ "socket.io-client": "4.8.1",
156
153
  "sortablejs": "1.15.2",
157
- "stylelint": "14.3.0",
158
- "stylelint-config-standard": "24.0.0",
159
- "ts-loader": "9.3.0",
160
- "ts-node": "10.7.0",
154
+ "stylelint": "16.25.0",
155
+ "stylelint-config-standard": "36.0.1",
156
+ "ts-loader": "9.5.4",
157
+ "ts-node": "10.9.2",
161
158
  "ts-sinon": "2.0.2",
162
- "typescript": "5.4.5",
159
+ "tsx": "^4.20.6",
160
+ "typescript": "5.9.3",
163
161
  "undate": "0.3.0",
164
- "vue": "3.2.35",
165
- "vue-eslint-parser": "9.4.3",
166
- "vue-loader": "17.0.1",
167
- "vue-router": "4.0.15",
168
- "vuex": "4.0.2",
169
- "webpack": "5.94.0",
170
- "webpack-cli": "4.9.2",
171
- "webpack-dev-middleware": "5.3.4",
172
- "webpack-hot-middleware": "2.25.4"
173
- }
162
+ "vue": "3.5.24",
163
+ "vue-eslint-parser": "10.2.0",
164
+ "vue-loader": "17.4.2",
165
+ "vue-router": "4.6.3",
166
+ "vuex": "4.1.0",
167
+ "webpack": "5.102.1",
168
+ "webpack-cli": "6.0.1",
169
+ "webpack-dev-middleware": "7.4.2",
170
+ "webpack-hot-middleware": "2.26.1",
171
+ "wtfnode": "^0.10.1"
172
+ },
173
+ "resolutions": {
174
+ "js-yaml": "^4.1.1"
175
+ },
176
+ "packageManager": "yarn@4.11.0"
174
177
  }