浏览代码

feat(lint, ts) Add member-ordering rule for TS

master
Jaya Allamsetty 4 个月前
父节点
当前提交
1404413e3c

+ 25
- 1
.eslintrc.js 查看文件

1
 module.exports = {
1
 module.exports = {
2
+    parser: '@typescript-eslint/parser',
2
     extends: [
3
     extends: [
3
         '@jitsi/eslint-config'
4
         '@jitsi/eslint-config'
4
-    ]
5
+    ],
6
+    plugins: [
7
+        '@typescript-eslint'
8
+    ],
9
+    rules: {
10
+        '@typescript-eslint/member-ordering': [
11
+            'error',
12
+            {
13
+                default: [
14
+                    'signature',
15
+                    'private-static-field',
16
+                    'protected-static-field',
17
+                    'public-static-field',
18
+                    'private-instance-field',
19
+                    'protected-instance-field',
20
+                    'public-instance-field',
21
+                    'constructor',
22
+                    'private-instance-method',
23
+                    'protected-instance-method',
24
+                    'public-instance-method'
25
+                ]
26
+            }
27
+        ]
28
+    }
5
 };
29
 };

+ 1
- 1
JitsiConnection.ts 查看文件

45
 export default class JitsiConnection {
45
 export default class JitsiConnection {
46
     private appID?: string;
46
     private appID?: string;
47
     private token: string | null;
47
     private token: string | null;
48
-    readonly options: IConnectionOptions;
49
     private xmpp: XMPP;
48
     private xmpp: XMPP;
49
+    readonly options: IConnectionOptions;
50
 
50
 
51
     /**
51
     /**
52
      * Creates a new JitsiConnection instance.
52
      * Creates a new JitsiConnection instance.

+ 2
- 2
modules/RTCStats/RTCStats.ts 查看文件

28
  * The initialization procedure must be called once after lib-jitsi-meet is loaded.
28
  * The initialization procedure must be called once after lib-jitsi-meet is loaded.
29
  */
29
  */
30
 class RTCStats {
30
 class RTCStats {
31
-    public events: EventEmitter = new EventEmitter();
32
-    public _startedWithNewConnection: boolean = true;
33
     private _defaultLogCollector: any = null;
31
     private _defaultLogCollector: any = null;
34
     private _initialized: boolean = false;
32
     private _initialized: boolean = false;
33
+    private _startedWithNewConnection: boolean = true;
35
     private _trace: any = null;
34
     private _trace: any = null;
35
+    public events: EventEmitter = new EventEmitter();
36
 
36
 
37
     isTraceAvailable() {
37
     isTraceAvailable() {
38
         return this._trace !== null;
38
         return this._trace !== null;

+ 14
- 14
modules/util/AsyncQueue.ts 查看文件

36
         this._taskCallbacks = new Map();
36
         this._taskCallbacks = new Map();
37
     }
37
     }
38
 
38
 
39
-    /**
40
-     * Removes any pending tasks from the queue.
41
-     */
42
-    clear(): void {
43
-        for (const finishedCallback of this._taskCallbacks.values()) {
44
-            try {
45
-                finishedCallback?.(new ClearedQueueError('The queue has been cleared'));
46
-            } catch (error) {
47
-                logger.error('Error in callback while clearing the queue:', error);
48
-            }
49
-        }
50
-        this._queue.kill();
51
-    }
52
-
53
     /**
39
     /**
54
      * Internal task processing implementation which makes things work.
40
      * Internal task processing implementation which makes things work.
55
      */
41
      */
64
         }
50
         }
65
     }
51
     }
66
 
52
 
53
+    /**
54
+     * Removes any pending tasks from the queue.
55
+     */
56
+    clear(): void {
57
+        for (const finishedCallback of this._taskCallbacks.values()) {
58
+            try {
59
+                finishedCallback?.(new ClearedQueueError('The queue has been cleared'));
60
+            } catch (error) {
61
+                logger.error('Error in callback while clearing the queue:', error);
62
+            }
63
+        }
64
+        this._queue.kill();
65
+    }
66
+
67
     /**
67
     /**
68
      * Pauses the execution of the tasks on the queue.
68
      * Pauses the execution of the tasks on the queue.
69
      */
69
      */

+ 1
- 1
modules/util/Deferred.ts 查看文件

6
  * In addition a "reject on timeout" functionality is provided.
6
  * In addition a "reject on timeout" functionality is provided.
7
  */
7
  */
8
 export default class Deferred<T = any> {
8
 export default class Deferred<T = any> {
9
+    private _timeout?: Timeout;
9
     promise: Promise<T>;
10
     promise: Promise<T>;
10
     resolve: (value: T | PromiseLike<T>) => void;
11
     resolve: (value: T | PromiseLike<T>) => void;
11
     reject: (reason?: any) => void;
12
     reject: (reason?: any) => void;
12
     then: Promise<T>['then'];
13
     then: Promise<T>['then'];
13
     catch: Promise<T>['catch'];
14
     catch: Promise<T>['catch'];
14
-    private _timeout?: Timeout;
15
 
15
 
16
     /**
16
     /**
17
      * Instantiates a Deferred object.
17
      * Instantiates a Deferred object.

+ 32
- 32
modules/videosipgw/JitsiVideoSIPGWSession.ts 查看文件

50
         this.state = undefined;
50
         this.state = undefined;
51
     }
51
     }
52
 
52
 
53
+    /**
54
+     * Sends a jibri command using an iq.
55
+     *
56
+     * @private
57
+     * @param {string} action - The action to send ('start' or 'stop').
58
+     */
59
+    private _sendJibriIQ(action: string): void {
60
+        const attributes = {
61
+            'xmlns': 'http://jitsi.org/protocol/jibri',
62
+            'action': action,
63
+            'sipaddress': this.sipAddress,
64
+            'displayname': this.displayName
65
+        };
66
+
67
+        const iq = $iq({
68
+            to: this.chatRoom.focusMucJid,
69
+            type: 'set' })
70
+            .c('jibri', attributes)
71
+            .up();
72
+
73
+        logger.debug(`${action} video SIP GW session`, iq.nodeTree);
74
+        this.chatRoom.connection.sendIQ(
75
+            iq,
76
+            () => {}, // eslint-disable-line @typescript-eslint/no-empty-function
77
+            (error: any) => {
78
+                logger.error(
79
+                    `Failed to ${action} video SIP GW session, error: `, error);
80
+                this.setState(VideoSIPGWConstants.STATE_FAILED);
81
+            },
82
+            undefined);
83
+    }
84
+
53
     /**
85
     /**
54
      * Stops the current session.
86
      * Stops the current session.
55
      */
87
      */
127
     removeStateListener(listener: EventListener): void {
159
     removeStateListener(listener: EventListener): void {
128
         this.removeListener(STATE_CHANGED, listener);
160
         this.removeListener(STATE_CHANGED, listener);
129
     }
161
     }
130
-
131
-    /**
132
-     * Sends a jibri command using an iq.
133
-     *
134
-     * @private
135
-     * @param {string} action - The action to send ('start' or 'stop').
136
-     */
137
-    private _sendJibriIQ(action: string): void {
138
-        const attributes = {
139
-            'xmlns': 'http://jitsi.org/protocol/jibri',
140
-            'action': action,
141
-            'sipaddress': this.sipAddress,
142
-            'displayname': this.displayName
143
-        };
144
-
145
-        const iq = $iq({
146
-            to: this.chatRoom.focusMucJid,
147
-            type: 'set' })
148
-            .c('jibri', attributes)
149
-            .up();
150
-
151
-        logger.debug(`${action} video SIP GW session`, iq.nodeTree);
152
-        this.chatRoom.connection.sendIQ(
153
-            iq,
154
-            () => {}, // eslint-disable-line @typescript-eslint/no-empty-function
155
-            (error: any) => {
156
-                logger.error(
157
-                    `Failed to ${action} video SIP GW session, error: `, error);
158
-                this.setState(VideoSIPGWConstants.STATE_FAILED);
159
-            },
160
-            undefined);
161
-    }
162
 }
162
 }

+ 1
- 1
modules/xmpp/MockClasses.ts 查看文件

25
 
25
 
26
 export class MockStropheConnection extends Listenable {
26
 export class MockStropheConnection extends Listenable {
27
     private _connectCb?: (status: Strophe.Status) => void;
27
     private _connectCb?: (status: Strophe.Status) => void;
28
-    public sentIQs: any[];
29
     private _proto: IProto;
28
     private _proto: IProto;
29
+    public sentIQs: any[];
30
 
30
 
31
     /**
31
     /**
32
      * A constructor...
32
      * A constructor...

+ 51
- 51
modules/xmpp/ResumeTask.ts 查看文件

54
         return this._retryDelay;
54
         return this._retryDelay;
55
     }
55
     }
56
 
56
 
57
-    /**
58
-     * Called by {@link XmppConnection} when the connection drops and it's a signal it wants to schedule a reconnect.
59
-     *
60
-     * @returns {void}
61
-     */
62
-    schedule(): void {
63
-        this._cancelResume();
64
-        this._removeNetworkOnlineListener();
65
-
66
-        this._resumeRetryN += 1;
67
-
68
-        this._networkOnlineListener = NetworkInfo.addCancellableListener(
69
-            NETWORK_INFO_EVENT,
70
-            ({ isOnline }: INetworkInfoEvent) => {
71
-                if (isOnline) {
72
-                    this._scheduleResume();
73
-                } else {
74
-                    this._cancelResume();
75
-                }
76
-            }
77
-        ) as () => void;
78
-
79
-        NetworkInfo.isOnline() && this._scheduleResume();
80
-    }
81
-
82
-    /**
83
-     * Schedules a delayed timeout which will execute the resume action.
84
-     * @private
85
-     * @returns {void}
86
-     */
87
-    private _scheduleResume(): void {
88
-        if (this._resumeTimeout) {
89
-            // NO-OP
90
-            return;
91
-        }
92
-
93
-        // The retry delay will be:
94
-        //   1st retry: 1.5s - 3s
95
-        //   2nd retry: 3s - 9s
96
-        //   3rd and next retry: 4.5s - 27s
97
-        this._retryDelay = getJitterDelay(
98
-            /* retry */ this._resumeRetryN,
99
-            /* minDelay */ this._resumeRetryN * 1500,
100
-            3
101
-        );
102
-
103
-        logger.info(`Will try to resume the XMPP connection in ${this.retryDelay}ms`);
104
-
105
-        this._resumeTimeout = setTimeout(() => this._resumeConnection(), this.retryDelay);
106
-    }
107
-
108
     /**
57
     /**
109
      * Cancels the delayed resume task.
58
      * Cancels the delayed resume task.
110
      *
59
      *
177
         }
126
         }
178
     }
127
     }
179
 
128
 
129
+    /**
130
+     * Schedules a delayed timeout which will execute the resume action.
131
+     * @private
132
+     * @returns {void}
133
+     */
134
+    private _scheduleResume(): void {
135
+        if (this._resumeTimeout) {
136
+            // NO-OP
137
+            return;
138
+        }
139
+
140
+        // The retry delay will be:
141
+        //   1st retry: 1.5s - 3s
142
+        //   2nd retry: 3s - 9s
143
+        //   3rd and next retry: 4.5s - 27s
144
+        this._retryDelay = getJitterDelay(
145
+            /* retry */ this._resumeRetryN,
146
+            /* minDelay */ this._resumeRetryN * 1500,
147
+            3
148
+        );
149
+
150
+        logger.info(`Will try to resume the XMPP connection in ${this.retryDelay}ms`);
151
+
152
+        this._resumeTimeout = setTimeout(() => this._resumeConnection(), this.retryDelay);
153
+    }
154
+
180
     /**
155
     /**
181
      * Cancels the retry task. It's called by {@link XmppConnection} when it's no longer interested in reconnecting for
156
      * Cancels the retry task. It's called by {@link XmppConnection} when it's no longer interested in reconnecting for
182
      * example when the disconnect method is called.
157
      * example when the disconnect method is called.
188
         this._removeNetworkOnlineListener();
163
         this._removeNetworkOnlineListener();
189
         this._resumeRetryN = 0;
164
         this._resumeRetryN = 0;
190
     }
165
     }
166
+
167
+    /**
168
+     * Called by {@link XmppConnection} when the connection drops and it's a signal it wants to schedule a reconnect.
169
+     *
170
+     * @returns {void}
171
+     */
172
+    schedule(): void {
173
+        this._cancelResume();
174
+        this._removeNetworkOnlineListener();
175
+
176
+        this._resumeRetryN += 1;
177
+
178
+        this._networkOnlineListener = NetworkInfo.addCancellableListener(
179
+            NETWORK_INFO_EVENT,
180
+            ({ isOnline }: INetworkInfoEvent) => {
181
+                if (isOnline) {
182
+                    this._scheduleResume();
183
+                } else {
184
+                    this._cancelResume();
185
+                }
186
+            }
187
+        ) as () => void;
188
+
189
+        NetworkInfo.isOnline() && this._scheduleResume();
190
+    }
191
 }
191
 }

+ 205
- 125
package-lock.json 查看文件

9
       "version": "0.0.0",
9
       "version": "0.0.0",
10
       "license": "Apache-2.0",
10
       "license": "Apache-2.0",
11
       "dependencies": {
11
       "dependencies": {
12
-        "@jitsi/js-utils": "2.2.1",
12
+        "@jitsi/js-utils": "2.4.6",
13
         "@jitsi/logger": "2.0.2",
13
         "@jitsi/logger": "2.0.2",
14
         "@jitsi/precall-test": "1.0.6",
14
         "@jitsi/precall-test": "1.0.6",
15
         "@jitsi/rtcstats": "9.7.0",
15
         "@jitsi/rtcstats": "9.7.0",
1670
       }
1670
       }
1671
     },
1671
     },
1672
     "node_modules/@eslint-community/eslint-utils": {
1672
     "node_modules/@eslint-community/eslint-utils": {
1673
-      "version": "4.5.0",
1674
-      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz",
1675
-      "integrity": "sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==",
1673
+      "version": "4.7.0",
1674
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
1675
+      "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
1676
       "dev": true,
1676
       "dev": true,
1677
       "license": "MIT",
1677
       "license": "MIT",
1678
       "dependencies": {
1678
       "dependencies": {
1834
       }
1834
       }
1835
     },
1835
     },
1836
     "node_modules/@jitsi/js-utils": {
1836
     "node_modules/@jitsi/js-utils": {
1837
-      "version": "2.2.1",
1838
-      "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.2.1.tgz",
1839
-      "integrity": "sha512-4Ia4hWO7aTMGbYftzeBr+IHIu5YxiWwTlhsSK34z6925oNAUNI863WgYYGTcXkW/1yuM6LBZrnuZBySDqosISA==",
1837
+      "version": "2.4.6",
1838
+      "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.4.6.tgz",
1839
+      "integrity": "sha512-z/VbM9c0V35T8Zkhxq2gdWbMWmM/3w4BD68xJVmQNrq/NQHxH0fDkRoT/MUds9Mp6dK3AV/h15tCKxVA/0w8Kg==",
1840
+      "license": "Apache-2.0",
1840
       "dependencies": {
1841
       "dependencies": {
1841
         "@hapi/bourne": "^3.0.0",
1842
         "@hapi/bourne": "^3.0.0",
1842
         "js-md5": "0.7.3",
1843
         "js-md5": "0.7.3",
2255
       "license": "MIT"
2256
       "license": "MIT"
2256
     },
2257
     },
2257
     "node_modules/@typescript-eslint/eslint-plugin": {
2258
     "node_modules/@typescript-eslint/eslint-plugin": {
2258
-      "version": "8.19.1",
2259
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz",
2260
-      "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==",
2259
+      "version": "8.33.1",
2260
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz",
2261
+      "integrity": "sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==",
2261
       "dev": true,
2262
       "dev": true,
2262
       "license": "MIT",
2263
       "license": "MIT",
2263
       "dependencies": {
2264
       "dependencies": {
2264
         "@eslint-community/regexpp": "^4.10.0",
2265
         "@eslint-community/regexpp": "^4.10.0",
2265
-        "@typescript-eslint/scope-manager": "8.19.1",
2266
-        "@typescript-eslint/type-utils": "8.19.1",
2267
-        "@typescript-eslint/utils": "8.19.1",
2268
-        "@typescript-eslint/visitor-keys": "8.19.1",
2266
+        "@typescript-eslint/scope-manager": "8.33.1",
2267
+        "@typescript-eslint/type-utils": "8.33.1",
2268
+        "@typescript-eslint/utils": "8.33.1",
2269
+        "@typescript-eslint/visitor-keys": "8.33.1",
2269
         "graphemer": "^1.4.0",
2270
         "graphemer": "^1.4.0",
2270
-        "ignore": "^5.3.1",
2271
+        "ignore": "^7.0.0",
2271
         "natural-compare": "^1.4.0",
2272
         "natural-compare": "^1.4.0",
2272
-        "ts-api-utils": "^2.0.0"
2273
+        "ts-api-utils": "^2.1.0"
2273
       },
2274
       },
2274
       "engines": {
2275
       "engines": {
2275
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2276
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2279
         "url": "https://opencollective.com/typescript-eslint"
2280
         "url": "https://opencollective.com/typescript-eslint"
2280
       },
2281
       },
2281
       "peerDependencies": {
2282
       "peerDependencies": {
2282
-        "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
2283
+        "@typescript-eslint/parser": "^8.33.1",
2283
         "eslint": "^8.57.0 || ^9.0.0",
2284
         "eslint": "^8.57.0 || ^9.0.0",
2284
-        "typescript": ">=4.8.4 <5.8.0"
2285
+        "typescript": ">=4.8.4 <5.9.0"
2286
+      }
2287
+    },
2288
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
2289
+      "version": "7.0.5",
2290
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
2291
+      "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
2292
+      "dev": true,
2293
+      "license": "MIT",
2294
+      "engines": {
2295
+        "node": ">= 4"
2285
       }
2296
       }
2286
     },
2297
     },
2287
     "node_modules/@typescript-eslint/experimental-utils": {
2298
     "node_modules/@typescript-eslint/experimental-utils": {
2436
       }
2447
       }
2437
     },
2448
     },
2438
     "node_modules/@typescript-eslint/parser": {
2449
     "node_modules/@typescript-eslint/parser": {
2439
-      "version": "8.19.1",
2440
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz",
2441
-      "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==",
2450
+      "version": "8.33.1",
2451
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
2452
+      "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
2442
       "dev": true,
2453
       "dev": true,
2443
       "license": "MIT",
2454
       "license": "MIT",
2444
       "dependencies": {
2455
       "dependencies": {
2445
-        "@typescript-eslint/scope-manager": "8.19.1",
2446
-        "@typescript-eslint/types": "8.19.1",
2447
-        "@typescript-eslint/typescript-estree": "8.19.1",
2448
-        "@typescript-eslint/visitor-keys": "8.19.1",
2456
+        "@typescript-eslint/scope-manager": "8.33.1",
2457
+        "@typescript-eslint/types": "8.33.1",
2458
+        "@typescript-eslint/typescript-estree": "8.33.1",
2459
+        "@typescript-eslint/visitor-keys": "8.33.1",
2449
         "debug": "^4.3.4"
2460
         "debug": "^4.3.4"
2450
       },
2461
       },
2451
       "engines": {
2462
       "engines": {
2457
       },
2468
       },
2458
       "peerDependencies": {
2469
       "peerDependencies": {
2459
         "eslint": "^8.57.0 || ^9.0.0",
2470
         "eslint": "^8.57.0 || ^9.0.0",
2460
-        "typescript": ">=4.8.4 <5.8.0"
2471
+        "typescript": ">=4.8.4 <5.9.0"
2472
+      }
2473
+    },
2474
+    "node_modules/@typescript-eslint/project-service": {
2475
+      "version": "8.33.1",
2476
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.1.tgz",
2477
+      "integrity": "sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==",
2478
+      "dev": true,
2479
+      "license": "MIT",
2480
+      "dependencies": {
2481
+        "@typescript-eslint/tsconfig-utils": "^8.33.1",
2482
+        "@typescript-eslint/types": "^8.33.1",
2483
+        "debug": "^4.3.4"
2484
+      },
2485
+      "engines": {
2486
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2487
+      },
2488
+      "funding": {
2489
+        "type": "opencollective",
2490
+        "url": "https://opencollective.com/typescript-eslint"
2491
+      },
2492
+      "peerDependencies": {
2493
+        "typescript": ">=4.8.4 <5.9.0"
2461
       }
2494
       }
2462
     },
2495
     },
2463
     "node_modules/@typescript-eslint/scope-manager": {
2496
     "node_modules/@typescript-eslint/scope-manager": {
2464
-      "version": "8.19.1",
2465
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz",
2466
-      "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==",
2497
+      "version": "8.33.1",
2498
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz",
2499
+      "integrity": "sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==",
2467
       "dev": true,
2500
       "dev": true,
2468
       "license": "MIT",
2501
       "license": "MIT",
2469
       "dependencies": {
2502
       "dependencies": {
2470
-        "@typescript-eslint/types": "8.19.1",
2471
-        "@typescript-eslint/visitor-keys": "8.19.1"
2503
+        "@typescript-eslint/types": "8.33.1",
2504
+        "@typescript-eslint/visitor-keys": "8.33.1"
2505
+      },
2506
+      "engines": {
2507
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2472
       },
2508
       },
2509
+      "funding": {
2510
+        "type": "opencollective",
2511
+        "url": "https://opencollective.com/typescript-eslint"
2512
+      }
2513
+    },
2514
+    "node_modules/@typescript-eslint/tsconfig-utils": {
2515
+      "version": "8.33.1",
2516
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz",
2517
+      "integrity": "sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==",
2518
+      "dev": true,
2519
+      "license": "MIT",
2473
       "engines": {
2520
       "engines": {
2474
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2521
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2475
       },
2522
       },
2476
       "funding": {
2523
       "funding": {
2477
         "type": "opencollective",
2524
         "type": "opencollective",
2478
         "url": "https://opencollective.com/typescript-eslint"
2525
         "url": "https://opencollective.com/typescript-eslint"
2526
+      },
2527
+      "peerDependencies": {
2528
+        "typescript": ">=4.8.4 <5.9.0"
2479
       }
2529
       }
2480
     },
2530
     },
2481
     "node_modules/@typescript-eslint/type-utils": {
2531
     "node_modules/@typescript-eslint/type-utils": {
2482
-      "version": "8.19.1",
2483
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz",
2484
-      "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==",
2532
+      "version": "8.33.1",
2533
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz",
2534
+      "integrity": "sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==",
2485
       "dev": true,
2535
       "dev": true,
2486
       "license": "MIT",
2536
       "license": "MIT",
2487
       "dependencies": {
2537
       "dependencies": {
2488
-        "@typescript-eslint/typescript-estree": "8.19.1",
2489
-        "@typescript-eslint/utils": "8.19.1",
2538
+        "@typescript-eslint/typescript-estree": "8.33.1",
2539
+        "@typescript-eslint/utils": "8.33.1",
2490
         "debug": "^4.3.4",
2540
         "debug": "^4.3.4",
2491
-        "ts-api-utils": "^2.0.0"
2541
+        "ts-api-utils": "^2.1.0"
2492
       },
2542
       },
2493
       "engines": {
2543
       "engines": {
2494
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2544
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2499
       },
2549
       },
2500
       "peerDependencies": {
2550
       "peerDependencies": {
2501
         "eslint": "^8.57.0 || ^9.0.0",
2551
         "eslint": "^8.57.0 || ^9.0.0",
2502
-        "typescript": ">=4.8.4 <5.8.0"
2552
+        "typescript": ">=4.8.4 <5.9.0"
2503
       }
2553
       }
2504
     },
2554
     },
2505
     "node_modules/@typescript-eslint/types": {
2555
     "node_modules/@typescript-eslint/types": {
2506
-      "version": "8.19.1",
2507
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz",
2508
-      "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==",
2556
+      "version": "8.33.1",
2557
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.1.tgz",
2558
+      "integrity": "sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==",
2509
       "dev": true,
2559
       "dev": true,
2510
       "license": "MIT",
2560
       "license": "MIT",
2511
       "engines": {
2561
       "engines": {
2517
       }
2567
       }
2518
     },
2568
     },
2519
     "node_modules/@typescript-eslint/typescript-estree": {
2569
     "node_modules/@typescript-eslint/typescript-estree": {
2520
-      "version": "8.19.1",
2521
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz",
2522
-      "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==",
2570
+      "version": "8.33.1",
2571
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz",
2572
+      "integrity": "sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==",
2523
       "dev": true,
2573
       "dev": true,
2524
       "license": "MIT",
2574
       "license": "MIT",
2525
       "dependencies": {
2575
       "dependencies": {
2526
-        "@typescript-eslint/types": "8.19.1",
2527
-        "@typescript-eslint/visitor-keys": "8.19.1",
2576
+        "@typescript-eslint/project-service": "8.33.1",
2577
+        "@typescript-eslint/tsconfig-utils": "8.33.1",
2578
+        "@typescript-eslint/types": "8.33.1",
2579
+        "@typescript-eslint/visitor-keys": "8.33.1",
2528
         "debug": "^4.3.4",
2580
         "debug": "^4.3.4",
2529
         "fast-glob": "^3.3.2",
2581
         "fast-glob": "^3.3.2",
2530
         "is-glob": "^4.0.3",
2582
         "is-glob": "^4.0.3",
2531
         "minimatch": "^9.0.4",
2583
         "minimatch": "^9.0.4",
2532
         "semver": "^7.6.0",
2584
         "semver": "^7.6.0",
2533
-        "ts-api-utils": "^2.0.0"
2585
+        "ts-api-utils": "^2.1.0"
2534
       },
2586
       },
2535
       "engines": {
2587
       "engines": {
2536
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2588
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2540
         "url": "https://opencollective.com/typescript-eslint"
2592
         "url": "https://opencollective.com/typescript-eslint"
2541
       },
2593
       },
2542
       "peerDependencies": {
2594
       "peerDependencies": {
2543
-        "typescript": ">=4.8.4 <5.8.0"
2595
+        "typescript": ">=4.8.4 <5.9.0"
2544
       }
2596
       }
2545
     },
2597
     },
2546
     "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
2598
     "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
2570
       }
2622
       }
2571
     },
2623
     },
2572
     "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
2624
     "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
2573
-      "version": "7.7.1",
2574
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
2575
-      "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
2625
+      "version": "7.7.2",
2626
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
2627
+      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
2576
       "dev": true,
2628
       "dev": true,
2577
       "license": "ISC",
2629
       "license": "ISC",
2578
       "bin": {
2630
       "bin": {
2583
       }
2635
       }
2584
     },
2636
     },
2585
     "node_modules/@typescript-eslint/utils": {
2637
     "node_modules/@typescript-eslint/utils": {
2586
-      "version": "8.19.1",
2587
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz",
2588
-      "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==",
2638
+      "version": "8.33.1",
2639
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.1.tgz",
2640
+      "integrity": "sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==",
2589
       "dev": true,
2641
       "dev": true,
2590
       "license": "MIT",
2642
       "license": "MIT",
2591
       "dependencies": {
2643
       "dependencies": {
2592
-        "@eslint-community/eslint-utils": "^4.4.0",
2593
-        "@typescript-eslint/scope-manager": "8.19.1",
2594
-        "@typescript-eslint/types": "8.19.1",
2595
-        "@typescript-eslint/typescript-estree": "8.19.1"
2644
+        "@eslint-community/eslint-utils": "^4.7.0",
2645
+        "@typescript-eslint/scope-manager": "8.33.1",
2646
+        "@typescript-eslint/types": "8.33.1",
2647
+        "@typescript-eslint/typescript-estree": "8.33.1"
2596
       },
2648
       },
2597
       "engines": {
2649
       "engines": {
2598
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2650
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2603
       },
2655
       },
2604
       "peerDependencies": {
2656
       "peerDependencies": {
2605
         "eslint": "^8.57.0 || ^9.0.0",
2657
         "eslint": "^8.57.0 || ^9.0.0",
2606
-        "typescript": ">=4.8.4 <5.8.0"
2658
+        "typescript": ">=4.8.4 <5.9.0"
2607
       }
2659
       }
2608
     },
2660
     },
2609
     "node_modules/@typescript-eslint/visitor-keys": {
2661
     "node_modules/@typescript-eslint/visitor-keys": {
2610
-      "version": "8.19.1",
2611
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz",
2612
-      "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==",
2662
+      "version": "8.33.1",
2663
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz",
2664
+      "integrity": "sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==",
2613
       "dev": true,
2665
       "dev": true,
2614
       "license": "MIT",
2666
       "license": "MIT",
2615
       "dependencies": {
2667
       "dependencies": {
2616
-        "@typescript-eslint/types": "8.19.1",
2668
+        "@typescript-eslint/types": "8.33.1",
2617
         "eslint-visitor-keys": "^4.2.0"
2669
         "eslint-visitor-keys": "^4.2.0"
2618
       },
2670
       },
2619
       "engines": {
2671
       "engines": {
8163
       }
8215
       }
8164
     },
8216
     },
8165
     "node_modules/ts-api-utils": {
8217
     "node_modules/ts-api-utils": {
8166
-      "version": "2.0.1",
8167
-      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz",
8168
-      "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==",
8218
+      "version": "2.1.0",
8219
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
8220
+      "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
8169
       "dev": true,
8221
       "dev": true,
8170
       "license": "MIT",
8222
       "license": "MIT",
8171
       "engines": {
8223
       "engines": {
10240
       }
10292
       }
10241
     },
10293
     },
10242
     "@eslint-community/eslint-utils": {
10294
     "@eslint-community/eslint-utils": {
10243
-      "version": "4.5.0",
10244
-      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz",
10245
-      "integrity": "sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==",
10295
+      "version": "4.7.0",
10296
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
10297
+      "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
10246
       "dev": true,
10298
       "dev": true,
10247
       "requires": {
10299
       "requires": {
10248
         "eslint-visitor-keys": "^3.4.3"
10300
         "eslint-visitor-keys": "^3.4.3"
10352
       }
10404
       }
10353
     },
10405
     },
10354
     "@jitsi/js-utils": {
10406
     "@jitsi/js-utils": {
10355
-      "version": "2.2.1",
10356
-      "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.2.1.tgz",
10357
-      "integrity": "sha512-4Ia4hWO7aTMGbYftzeBr+IHIu5YxiWwTlhsSK34z6925oNAUNI863WgYYGTcXkW/1yuM6LBZrnuZBySDqosISA==",
10407
+      "version": "2.4.6",
10408
+      "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.4.6.tgz",
10409
+      "integrity": "sha512-z/VbM9c0V35T8Zkhxq2gdWbMWmM/3w4BD68xJVmQNrq/NQHxH0fDkRoT/MUds9Mp6dK3AV/h15tCKxVA/0w8Kg==",
10358
       "requires": {
10410
       "requires": {
10359
         "@hapi/bourne": "^3.0.0",
10411
         "@hapi/bourne": "^3.0.0",
10360
         "js-md5": "0.7.3",
10412
         "js-md5": "0.7.3",
10686
       "dev": true
10738
       "dev": true
10687
     },
10739
     },
10688
     "@typescript-eslint/eslint-plugin": {
10740
     "@typescript-eslint/eslint-plugin": {
10689
-      "version": "8.19.1",
10690
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz",
10691
-      "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==",
10741
+      "version": "8.33.1",
10742
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz",
10743
+      "integrity": "sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==",
10692
       "dev": true,
10744
       "dev": true,
10693
       "requires": {
10745
       "requires": {
10694
         "@eslint-community/regexpp": "^4.10.0",
10746
         "@eslint-community/regexpp": "^4.10.0",
10695
-        "@typescript-eslint/scope-manager": "8.19.1",
10696
-        "@typescript-eslint/type-utils": "8.19.1",
10697
-        "@typescript-eslint/utils": "8.19.1",
10698
-        "@typescript-eslint/visitor-keys": "8.19.1",
10747
+        "@typescript-eslint/scope-manager": "8.33.1",
10748
+        "@typescript-eslint/type-utils": "8.33.1",
10749
+        "@typescript-eslint/utils": "8.33.1",
10750
+        "@typescript-eslint/visitor-keys": "8.33.1",
10699
         "graphemer": "^1.4.0",
10751
         "graphemer": "^1.4.0",
10700
-        "ignore": "^5.3.1",
10752
+        "ignore": "^7.0.0",
10701
         "natural-compare": "^1.4.0",
10753
         "natural-compare": "^1.4.0",
10702
-        "ts-api-utils": "^2.0.0"
10754
+        "ts-api-utils": "^2.1.0"
10755
+      },
10756
+      "dependencies": {
10757
+        "ignore": {
10758
+          "version": "7.0.5",
10759
+          "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
10760
+          "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
10761
+          "dev": true
10762
+        }
10703
       }
10763
       }
10704
     },
10764
     },
10705
     "@typescript-eslint/experimental-utils": {
10765
     "@typescript-eslint/experimental-utils": {
10783
       }
10843
       }
10784
     },
10844
     },
10785
     "@typescript-eslint/parser": {
10845
     "@typescript-eslint/parser": {
10786
-      "version": "8.19.1",
10787
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz",
10788
-      "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==",
10846
+      "version": "8.33.1",
10847
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
10848
+      "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
10849
+      "dev": true,
10850
+      "requires": {
10851
+        "@typescript-eslint/scope-manager": "8.33.1",
10852
+        "@typescript-eslint/types": "8.33.1",
10853
+        "@typescript-eslint/typescript-estree": "8.33.1",
10854
+        "@typescript-eslint/visitor-keys": "8.33.1",
10855
+        "debug": "^4.3.4"
10856
+      }
10857
+    },
10858
+    "@typescript-eslint/project-service": {
10859
+      "version": "8.33.1",
10860
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.1.tgz",
10861
+      "integrity": "sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==",
10789
       "dev": true,
10862
       "dev": true,
10790
       "requires": {
10863
       "requires": {
10791
-        "@typescript-eslint/scope-manager": "8.19.1",
10792
-        "@typescript-eslint/types": "8.19.1",
10793
-        "@typescript-eslint/typescript-estree": "8.19.1",
10794
-        "@typescript-eslint/visitor-keys": "8.19.1",
10864
+        "@typescript-eslint/tsconfig-utils": "^8.33.1",
10865
+        "@typescript-eslint/types": "^8.33.1",
10795
         "debug": "^4.3.4"
10866
         "debug": "^4.3.4"
10796
       }
10867
       }
10797
     },
10868
     },
10798
     "@typescript-eslint/scope-manager": {
10869
     "@typescript-eslint/scope-manager": {
10799
-      "version": "8.19.1",
10800
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz",
10801
-      "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==",
10870
+      "version": "8.33.1",
10871
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz",
10872
+      "integrity": "sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==",
10802
       "dev": true,
10873
       "dev": true,
10803
       "requires": {
10874
       "requires": {
10804
-        "@typescript-eslint/types": "8.19.1",
10805
-        "@typescript-eslint/visitor-keys": "8.19.1"
10875
+        "@typescript-eslint/types": "8.33.1",
10876
+        "@typescript-eslint/visitor-keys": "8.33.1"
10806
       }
10877
       }
10807
     },
10878
     },
10879
+    "@typescript-eslint/tsconfig-utils": {
10880
+      "version": "8.33.1",
10881
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz",
10882
+      "integrity": "sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==",
10883
+      "dev": true,
10884
+      "requires": {}
10885
+    },
10808
     "@typescript-eslint/type-utils": {
10886
     "@typescript-eslint/type-utils": {
10809
-      "version": "8.19.1",
10810
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz",
10811
-      "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==",
10887
+      "version": "8.33.1",
10888
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz",
10889
+      "integrity": "sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==",
10812
       "dev": true,
10890
       "dev": true,
10813
       "requires": {
10891
       "requires": {
10814
-        "@typescript-eslint/typescript-estree": "8.19.1",
10815
-        "@typescript-eslint/utils": "8.19.1",
10892
+        "@typescript-eslint/typescript-estree": "8.33.1",
10893
+        "@typescript-eslint/utils": "8.33.1",
10816
         "debug": "^4.3.4",
10894
         "debug": "^4.3.4",
10817
-        "ts-api-utils": "^2.0.0"
10895
+        "ts-api-utils": "^2.1.0"
10818
       }
10896
       }
10819
     },
10897
     },
10820
     "@typescript-eslint/types": {
10898
     "@typescript-eslint/types": {
10821
-      "version": "8.19.1",
10822
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz",
10823
-      "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==",
10899
+      "version": "8.33.1",
10900
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.1.tgz",
10901
+      "integrity": "sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==",
10824
       "dev": true
10902
       "dev": true
10825
     },
10903
     },
10826
     "@typescript-eslint/typescript-estree": {
10904
     "@typescript-eslint/typescript-estree": {
10827
-      "version": "8.19.1",
10828
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz",
10829
-      "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==",
10905
+      "version": "8.33.1",
10906
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz",
10907
+      "integrity": "sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==",
10830
       "dev": true,
10908
       "dev": true,
10831
       "requires": {
10909
       "requires": {
10832
-        "@typescript-eslint/types": "8.19.1",
10833
-        "@typescript-eslint/visitor-keys": "8.19.1",
10910
+        "@typescript-eslint/project-service": "8.33.1",
10911
+        "@typescript-eslint/tsconfig-utils": "8.33.1",
10912
+        "@typescript-eslint/types": "8.33.1",
10913
+        "@typescript-eslint/visitor-keys": "8.33.1",
10834
         "debug": "^4.3.4",
10914
         "debug": "^4.3.4",
10835
         "fast-glob": "^3.3.2",
10915
         "fast-glob": "^3.3.2",
10836
         "is-glob": "^4.0.3",
10916
         "is-glob": "^4.0.3",
10837
         "minimatch": "^9.0.4",
10917
         "minimatch": "^9.0.4",
10838
         "semver": "^7.6.0",
10918
         "semver": "^7.6.0",
10839
-        "ts-api-utils": "^2.0.0"
10919
+        "ts-api-utils": "^2.1.0"
10840
       },
10920
       },
10841
       "dependencies": {
10921
       "dependencies": {
10842
         "brace-expansion": {
10922
         "brace-expansion": {
10858
           }
10938
           }
10859
         },
10939
         },
10860
         "semver": {
10940
         "semver": {
10861
-          "version": "7.7.1",
10862
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
10863
-          "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
10941
+          "version": "7.7.2",
10942
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
10943
+          "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
10864
           "dev": true
10944
           "dev": true
10865
         }
10945
         }
10866
       }
10946
       }
10867
     },
10947
     },
10868
     "@typescript-eslint/utils": {
10948
     "@typescript-eslint/utils": {
10869
-      "version": "8.19.1",
10870
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz",
10871
-      "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==",
10949
+      "version": "8.33.1",
10950
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.1.tgz",
10951
+      "integrity": "sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==",
10872
       "dev": true,
10952
       "dev": true,
10873
       "requires": {
10953
       "requires": {
10874
-        "@eslint-community/eslint-utils": "^4.4.0",
10875
-        "@typescript-eslint/scope-manager": "8.19.1",
10876
-        "@typescript-eslint/types": "8.19.1",
10877
-        "@typescript-eslint/typescript-estree": "8.19.1"
10954
+        "@eslint-community/eslint-utils": "^4.7.0",
10955
+        "@typescript-eslint/scope-manager": "8.33.1",
10956
+        "@typescript-eslint/types": "8.33.1",
10957
+        "@typescript-eslint/typescript-estree": "8.33.1"
10878
       }
10958
       }
10879
     },
10959
     },
10880
     "@typescript-eslint/visitor-keys": {
10960
     "@typescript-eslint/visitor-keys": {
10881
-      "version": "8.19.1",
10882
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz",
10883
-      "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==",
10961
+      "version": "8.33.1",
10962
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz",
10963
+      "integrity": "sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==",
10884
       "dev": true,
10964
       "dev": true,
10885
       "requires": {
10965
       "requires": {
10886
-        "@typescript-eslint/types": "8.19.1",
10966
+        "@typescript-eslint/types": "8.33.1",
10887
         "eslint-visitor-keys": "^4.2.0"
10967
         "eslint-visitor-keys": "^4.2.0"
10888
       },
10968
       },
10889
       "dependencies": {
10969
       "dependencies": {
14746
       "dev": true
14826
       "dev": true
14747
     },
14827
     },
14748
     "ts-api-utils": {
14828
     "ts-api-utils": {
14749
-      "version": "2.0.1",
14750
-      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz",
14751
-      "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==",
14829
+      "version": "2.1.0",
14830
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
14831
+      "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
14752
       "dev": true,
14832
       "dev": true,
14753
       "requires": {}
14833
       "requires": {}
14754
     },
14834
     },

+ 1
- 1
package.json 查看文件

16
   "author": "",
16
   "author": "",
17
   "readmeFilename": "README.md",
17
   "readmeFilename": "README.md",
18
   "dependencies": {
18
   "dependencies": {
19
-    "@jitsi/js-utils": "2.2.1",
19
+    "@jitsi/js-utils": "2.4.6",
20
     "@jitsi/logger": "2.0.2",
20
     "@jitsi/logger": "2.0.2",
21
     "@jitsi/precall-test": "1.0.6",
21
     "@jitsi/precall-test": "1.0.6",
22
     "@jitsi/rtcstats": "9.7.0",
22
     "@jitsi/rtcstats": "9.7.0",

+ 5
- 0
tsconfig.json 查看文件

14
       "ES2024.Promise"
14
       "ES2024.Promise"
15
     ],
15
     ],
16
     "outDir": "dist/esm/",
16
     "outDir": "dist/esm/",
17
+    "paths": {
18
+      "@jitsi/js-utils": [
19
+        "./node_modules/@jitsi/js-utils/types/*"
20
+      ]
21
+    }
17
   },
22
   },
18
   "exclude": [
23
   "exclude": [
19
     "dist",
24
     "dist",

正在加载...
取消
保存