This commit is contained in:
Bill 2024-06-25 20:08:59 -04:00
parent 768b3bf76d
commit b87f08d0fd
78 changed files with 579 additions and 726 deletions

155
eslint.config.js Normal file
View File

@ -0,0 +1,155 @@
// @ts-check
import eslint from '@eslint/js';
import path from 'path';
import tseslint from 'typescript-eslint';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
project: ['./tsconfig.json','./packages/*/tsconfig.json'],
tsconfigRootDir: __dirname,
},
},
rules: {
'indent': [
'error',
4,
{
'SwitchCase': 1
}
],
'no-multi-spaces': [
'error'
],
'no-trailing-spaces': [
'error',
{
'skipBlankLines': false,
'ignoreComments': true
}
],
'linebreak-style': [
'off'
],
'quotes': [
'error',
'single'
],
'semi': [
'error',
'always'
],
'brace-style': [
'error',
'allman'
],
'object-curly-spacing': [
'error',
'always'
],
'keyword-spacing': [
'error',
{
'overrides':
{
'if':
{
'after': false
},
'for':
{
'after': false
},
'while':
{
'after': false
},
'switch':
{
'after': false
}
}
}
],
'@typescript-eslint/no-explicit-any': [
'off'
],
'@typescript-eslint/no-unsafe-assignment': [
'off'
],
'@typescript-eslint/no-unsafe-call': [
'off'
],
'@typescript-eslint/no-unsafe-member-access': [
'off'
],
'@typescript-eslint/no-floating-promises': [
'off'
],
'@typescript-eslint/require-await': [
'off'
],
'@typescript-eslint/no-unsafe-argument': [
'off'
],
'@typescript-eslint/no-unsafe-return': [
'off'
],
'@typescript-eslint/explicit-module-boundary-types': [
'off',
{
'allowedNames': [
'getMessageArray'
]
}
],
'@typescript-eslint/unbound-method': [
'off'
],
'@typescript-eslint/ban-ts-comment': [
'off'
],
'@typescript-eslint/no-empty-function': [
'error',
{
'allow': [
'functions',
'arrowFunctions',
'generatorFunctions',
'methods',
'generatorMethods',
'constructors'
]
}
],
'@typescript-eslint/no-unused-vars': [
'off'
],
'@typescript-eslint/ban-types': [
'error',
{
'types':
{
'String': true,
'Boolean': true,
'Number': true,
'Symbol': true,
'{}': false,
'Object': false,
'object': false,
'Function': false
},
'extendDefaults': true
}
]
}
},
);

View File

@ -22,24 +22,28 @@
"scripts": {
"build": "vite build",
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"eslint": "eslint ./src ./packages/*/src",
"eslint-fix": "eslint ./src --fix"
},
"main": "./index",
"dependencies": {
"howler": "^2.2.4",
"pako": "^2.1.0",
"pixi-filters": "^6.0.0",
"pixi.js": "^8.1.0"
"pixi-filters": "^6.0.4",
"pixi.js": "^8.1.6"
},
"devDependencies": {
"@eslint/js": "^9.5.0",
"@rollup/plugin-typescript": "^11.1.6",
"@types/eslint__js": "^8.42.3",
"@types/howler": "^2.2.11",
"@types/node": "^20.14.4",
"@types/pako": "^2.0.3",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"eslint": "^8.57.0",
"eslint": "^9.5.0",
"tslib": "^2.3.1",
"typescript": "~5.4.2",
"typescript-eslint": "^7.13.1",
"vite": "^5.1.3"
}
}

View File

@ -8,13 +8,11 @@
},
"license": "GPL-3.0",
"scripts": {
"build": "vite build",
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"typescript": "~5.4.2"

View File

@ -1,4 +1,5 @@
export interface IAvatarEffectListener
{
resetEffect(effect: number): void;
disposed: boolean;
}

View File

@ -5,7 +5,7 @@ import { IRoomCameraWidgetSelectedEffect } from './IRoomCameraWidgetSelectedEffe
export interface IRoomCameraWidgetManager
{
init(): Promise<void>;
applyEffects(texture: Texture, selectedEffects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise<HTMLImageElement>;
applyEffects(texture: Texture, effects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise<HTMLImageElement>;
effects: Map<string, IRoomCameraWidgetEffect>;
isLoaded: boolean;
}

View File

@ -3,5 +3,5 @@ import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
export interface IRoomCameraWidgetSelectedEffect
{
effect: IRoomCameraWidgetEffect;
alpha: number;
strength: number;
}

View File

@ -1,6 +1,8 @@
import { FurnitureType } from './FurnitureType';
export interface IFurnitureData
{
type: string;
type: FurnitureType;
id: number;
className: string;
fullName: string;

View File

@ -13,4 +13,5 @@
y: number;
z: number;
length: number;
toString(): string;
}

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -8,15 +8,13 @@
},
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/utils": "1.0.0",
"pixi.js": "^8.1.0",
"pixi.js": "^8.1.6",
"@pixi/gif": "^3.0.0"
},
"devDependencies": {

View File

@ -1,5 +1,5 @@
import { IGraphicAsset } from '@nitrots/api';
import { Rectangle, Texture } from 'pixi.js';
import { IGraphicAsset } from '../../api/src/asset/IGraphicAsset';
export class GraphicAsset implements IGraphicAsset
{

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,14 +5,12 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/assets": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0",
"@nitrots/utils": "1.0.0"
},

View File

@ -141,7 +141,7 @@ export class AvatarStructure
public getAnimation(k: string): Animation
{
return this._animationManager.getAnimation(k) as Animation;
return this._animationManager.getAnimation(k);
}
public getActionDefinition(k: string): ActionDefinition
@ -319,7 +319,7 @@ export class AvatarStructure
let _local_20: AvatarAnimationFrame[] = [];
let _local_36: IPartColor = null;
if(!_arg_3 == null) return [];
if(!_arg_3) return [];
const _local_9 = this._partSetsData.getActiveParts(_arg_3.definition);
const _local_11: AvatarImagePartContainer[] = [];

View File

@ -135,7 +135,19 @@ export class AvatarActionManager
validatedActions.push(action);
}
validatedActions.sort(this.sortByPrecedence);
validatedActions.sort((actionOne: IActiveActionData, actionTwo: IActiveActionData) =>
{
if(!actionOne || !actionTwo) return 0;
const precedenceOne = actionOne.definition.precedence;
const precedenceTwo = actionTwo.definition.precedence;
if(precedenceOne < precedenceTwo) return 1;
if(precedenceOne > precedenceTwo) return -1;
return 0;
});
return validatedActions;
}
@ -169,18 +181,4 @@ export class AvatarActionManager
return activeActions;
}
private sortByPrecedence(actionOne: IActiveActionData, actionTwo: IActiveActionData): number
{
if(!actionOne || !actionTwo) return 0;
const precedenceOne = actionOne.definition.precedence;
const precedenceTwo = actionTwo.definition.precedence;
if(precedenceOne < precedenceTwo) return 1;
if(precedenceOne > precedenceTwo) return -1;
return 0;
}
}

View File

@ -44,7 +44,7 @@ export class GeometryItem extends Node3D
public toString(): string
{
return ((((this._id + ': ') + this.location) + ' - ') + this.transformedLocation);
return `${this._id}: ${this.location.toString()} - ${this.transformedLocation.toString()}`;
}
public get isDynamic(): boolean

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,18 +5,16 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/assets": "1.0.0",
"@nitrots/configuration": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0",
"@nitrots/utils": "1.0.0",
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"typescript": "~5.4.2"

View File

@ -3,19 +3,13 @@ import { GetAssetManager } from '@nitrots/assets';
import { GetConfiguration } from '@nitrots/configuration';
import { GetEventDispatcher, RoomCameraWidgetManagerEvent } from '@nitrots/events';
import { TextureUtils } from '@nitrots/utils';
import { BLEND_MODES, ColorMatrix, ColorMatrixFilter, Container, Sprite, Texture } from 'pixi.js';
import { BLEND_MODES, ColorMatrix, ColorMatrixFilter, Container, Filter, Sprite, Texture } from 'pixi.js';
import { RoomCameraWidgetEffect } from './RoomCameraWidgetEffect';
export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
{
private _effects: Map<string, IRoomCameraWidgetEffect>;
private _isLoaded: boolean;
constructor()
{
this._effects = new Map();
this._isLoaded = false;
}
private _effects: Map<string, IRoomCameraWidgetEffect> = new Map();
private _isLoaded: boolean = false;
public async init(): Promise<void>
{
@ -52,7 +46,7 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
GetEventDispatcher().dispatchEvent(new RoomCameraWidgetManagerEvent(RoomCameraWidgetManagerEvent.INITIALIZED));
}
public async applyEffects(texture: Texture, selectedEffects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise<HTMLImageElement>
public async applyEffects(texture: Texture, effects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise<HTMLImageElement>
{
const container = new Container();
const sprite = new Sprite(texture);
@ -61,7 +55,34 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
if(isZoomed) sprite.scale.set(2);
for(const selectedEffect of selectedEffects)
const filters: Filter[] = [];
const getColorMatrixFilter = (matrix: ColorMatrix, flag: boolean, strength: number): ColorMatrixFilter =>
{
const filter = new ColorMatrixFilter();
if(flag)
{
filter.matrix = matrix;
}
else
{
//@ts-ignore
const newMatrix: ColorMatrix = [];
const otherMatrix: ColorMatrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
for(let i = 0; i < matrix.length; i++)
{
newMatrix.push((matrix[i] * strength) + (otherMatrix[i] * (1 - strength)));
}
filter.matrix = newMatrix;
}
return filter;
};
for(const selectedEffect of effects)
{
const effect = selectedEffect.effect;
@ -69,26 +90,24 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
if(effect.colorMatrix)
{
const filter = new ColorMatrixFilter();
const filter = getColorMatrixFilter(effect.colorMatrix, false, selectedEffect.strength);
filter.matrix = effect.colorMatrix;
filter.alpha = selectedEffect.alpha;
if(!Array.isArray(sprite.filters)) sprite.filters = [];
sprite.filters.push(filter);
filters.push(filter);
}
else
{
const effectSprite = new Sprite(effect.texture);
effectSprite.alpha = selectedEffect.alpha;
effectSprite.alpha = selectedEffect.strength;
effectSprite.blendMode = effect.blendMode;
container.addChild(effectSprite);
}
}
return await TextureUtils.generateImage(container);
container.filters = filters;
return await TextureUtils.generateImage(sprite);
}
public get effects(): Map<string, IRoomCameraWidgetEffect>

View File

@ -3,12 +3,12 @@ import { IRoomCameraWidgetEffect } from '@nitrots/api';
export class RoomCameraWidgetSelectedEffect
{
private _effect: IRoomCameraWidgetEffect;
private _alpha: number;
private _strength: number;
constructor(effect: IRoomCameraWidgetEffect, alpha: number)
constructor(effect: IRoomCameraWidgetEffect, strength: number)
{
this._effect = effect;
this._alpha = alpha;
this._strength = strength;
}
public get effect(): IRoomCameraWidgetEffect
@ -16,8 +16,8 @@ export class RoomCameraWidgetSelectedEffect
return this._effect;
}
public get alpha(): number
public get strength(): number
{
return this._alpha;
return this._strength;
}
}

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,13 +5,11 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0",
"@nitrots/utils": "1.0.0"
},

View File

@ -1,13 +1,8 @@
import { IMessageDataWrapper } from '@nitrots/api';
import { FurnitureType, IMessageDataWrapper } from '@nitrots/api';
export class CatalogPageMessageProductData
{
public static I: string = 'i';
public static S: string = 's';
public static E: string = 'e';
public static B: string = 'b';
private _productType: string;
private _productType: FurnitureType;
private _furniClassId: number;
private _extraParam: string;
private _productCount: number;
@ -38,11 +33,11 @@ export class CatalogPageMessageProductData
public parse(wrapper: IMessageDataWrapper): boolean
{
this._productType = wrapper.readString();
this._productType = wrapper.readString().toUpperCase() as FurnitureType;
switch(this._productType)
{
case CatalogPageMessageProductData.B:
case FurnitureType.BADGE:
this._extraParam = wrapper.readString();
this._productCount = 1;
return true;
@ -57,11 +52,12 @@ export class CatalogPageMessageProductData
this._uniqueLimitedItemSeriesSize = wrapper.readInt();
this._uniqueLimitedItemsLeft = wrapper.readInt();
}
return true;
}
}
public get productType(): string
public get productType(): FurnitureType
{
return this._productType;
}

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,13 +5,11 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/utils": "1.0.0"
},
"devDependencies": {

View File

@ -65,7 +65,7 @@ export class ConfigurationManager implements IConfigurationManager
{
let value = data[key];
if(typeof value === 'string') value = this.interpolate((value as string), regex);
if(typeof value === 'string') value = this.interpolate(value, regex);
if(this._definitions.has(key))
{

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,128 +0,0 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"indent": [
"error",
4,
{
"SwitchCase": 1
}
],
"no-multi-spaces": [
"error"
],
"no-trailing-spaces": [
"error",
{
"skipBlankLines": false,
"ignoreComments": true
}
],
"linebreak-style": [
"off"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
],
"brace-style": [
"error",
"allman"
],
"object-curly-spacing": [
"error",
"always"
],
"keyword-spacing": [
"error",
{
"overrides":
{
"if":
{
"after": false
},
"for":
{
"after": false
},
"while":
{
"after": false
},
"switch":
{
"after": false
}
}
}
],
"@typescript-eslint/no-explicit-any": [
"off"
],
"@typescript-eslint/explicit-module-boundary-types": [
"off",
{
"allowedNames": [
"getMessageArray"
]
}
],
"@typescript-eslint/ban-ts-comment": [
"off"
],
"@typescript-eslint/no-empty-function": [
"error",
{
"allow": [
"functions",
"arrowFunctions",
"generatorFunctions",
"methods",
"generatorMethods",
"constructors"
]
}
],
"@typescript-eslint/no-unused-vars": [
"off"
],
"@typescript-eslint/ban-types": [
"error",
{
"types":
{
"String": true,
"Boolean": true,
"Number": true,
"Symbol": true,
"{}": false,
"Object": false,
"object": false,
"Function": false
},
"extendDefaults": true
}
]
}
}

View File

@ -1,51 +0,0 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
/out-tsc
# Only exists if Bazel was run
/bazel-out
# dependencies
/node_modules
# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
.git
# System Files
.DS_Store
Thumbs.db
*.zip
*.as
*.bin

View File

@ -1 +0,0 @@
module.exports = require('./.eslintrc.json');

View File

@ -1,15 +0,0 @@
{
"name": "@nitrots/eslint-config",
"description": "Nitro eslint configs",
"version": "1.0.0",
"license": "GPL-3.0",
"main": "./index",
"dependencies": {
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"eslint": "^8.57.0"
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,14 +5,11 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"build": "vite build",
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/utils": "1.0.0"
},
"devDependencies": {

View File

@ -23,6 +23,8 @@ export class EventDispatcher implements IEventDispatcher
return;
}
NitroLogger.events('Added Event Listener', type);
existing.push(callback);
}
@ -78,7 +80,7 @@ export class EventDispatcher implements IEventDispatcher
try
{
(callback as Function)(event);
callback(event);
}
catch (err)

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,17 +5,15 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/communication": "1.0.0",
"@nitrots/configuration": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0",
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"typescript": "~5.4.2"

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,8 +5,7 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
@ -15,10 +14,9 @@
"@nitrots/avatar": "1.0.0",
"@nitrots/communication": "1.0.0",
"@nitrots/configuration": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0",
"@nitrots/session": "1.0.0",
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"typescript": "~5.4.2"

View File

@ -63,14 +63,9 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
private _mouseCursorUpdate: boolean = false;
private _badgeListenerObjects: Map<string, RoomObjectBadgeImageAssetListener[]> = new Map();
constructor()
{
this.onBadgeImageReadyEvent = this.onBadgeImageReadyEvent.bind(this);
}
public async init(): Promise<void>
{
GetRoomObjectLogicFactory().registerEventFunction(this.processRoomObjectEvent.bind(this));
GetRoomObjectLogicFactory().registerEventFunction(event => this.processRoomObjectEvent(event));
GetEventDispatcher().addEventListener<RoomSessionEvent>(RoomSessionEvent.STARTED, event => this.onRoomSessionEvent(event));
GetEventDispatcher().addEventListener<RoomSessionEvent>(RoomSessionEvent.ENDED, event => this.onRoomSessionEvent(event));
@ -2104,7 +2099,32 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
if(!this._badgeListenerObjects.size)
{
GetEventDispatcher().addEventListener(BadgeImageReadyEvent.IMAGE_READY, this.onBadgeImageReadyEvent);
const onBadgeImageReadyEvent = (event: BadgeImageReadyEvent) =>
{
const listeners = this._badgeListenerObjects && this._badgeListenerObjects.get(event.badgeId);
if(!listeners) return;
for(const listener of listeners)
{
if(!listener) continue;
this.putBadgeInObjectAssets(listener.object, event.badgeId, listener.groupBadge);
const badgeName = (listener.groupBadge) ? this._sessionDataManager.loadGroupBadgeImage(event.badgeId) : this._sessionDataManager.loadBadgeImage(event.badgeId);
if(listener.object && listener.object.logic) listener.object.logic.processUpdateMessage(new ObjectGroupBadgeUpdateMessage(event.badgeId, badgeName));
}
this._badgeListenerObjects.delete(event.badgeId);
if(!this._badgeListenerObjects.size)
{
GetEventDispatcher().removeEventListener(BadgeImageReadyEvent.IMAGE_READY, onBadgeImageReadyEvent);
}
};
GetEventDispatcher().addEventListener(BadgeImageReadyEvent.IMAGE_READY, onBadgeImageReadyEvent);
}
let listeners = this._badgeListenerObjects.get(badgeId);
@ -2123,31 +2143,6 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
roomObject.logic.processUpdateMessage(new ObjectGroupBadgeUpdateMessage(badgeId, badgeName));
}
private onBadgeImageReadyEvent(k: BadgeImageReadyEvent): void
{
const listeners = this._badgeListenerObjects && this._badgeListenerObjects.get(k.badgeId);
if(!listeners) return;
for(const listener of listeners)
{
if(!listener) continue;
this.putBadgeInObjectAssets(listener.object, k.badgeId, listener.groupBadge);
const badgeName = (listener.groupBadge) ? this._sessionDataManager.loadGroupBadgeImage(k.badgeId) : this._sessionDataManager.loadBadgeImage(k.badgeId);
if(listener.object && listener.object.logic) listener.object.logic.processUpdateMessage(new ObjectGroupBadgeUpdateMessage(k.badgeId, badgeName));
}
this._badgeListenerObjects.delete(k.badgeId);
if(!this._badgeListenerObjects.size)
{
GetEventDispatcher().removeEventListener(BadgeImageReadyEvent.IMAGE_READY, this.onBadgeImageReadyEvent);
}
}
private putBadgeInObjectAssets(object: IRoomObjectController, badgeId: string, groupBadge: boolean = false): void
{
const badgeName = (groupBadge) ? this._sessionDataManager.loadGroupBadgeImage(badgeId) : this._sessionDataManager.loadBadgeImage(badgeId);
@ -3004,7 +2999,7 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
while(index >= 0)
{
const child = (container.getChildAt(index) as Sprite);
const child = (container.getChildAt(index));
if(child)
{
@ -3014,7 +3009,7 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
if(child.children.length)
{
const firstChild = (child.getChildAt(0) as Sprite);
const firstChild = (child.getChildAt(0));
firstChild.parent.removeChild(firstChild);
@ -3039,11 +3034,11 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
while(index >= 0)
{
const child = (container.getChildAt(index) as Sprite);
const child = (container.getChildAt(index));
if(child)
{
if(child.label === label) return child;
if(child.label === label) return (child as Sprite);
}
index--;

View File

@ -17,18 +17,24 @@ export class RoomManager implements IRoomManager, IRoomInstanceContainer
private _pendingContentTypes: string[] = [];
private _skipContentProcessing: boolean = false;
constructor()
{
this.onRoomContentLoadedEvent = this.onRoomContentLoadedEvent.bind(this);
}
public async init(listener: IRoomManagerListener): Promise<void>
{
this._listener = listener;
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_SUCCESS, this.onRoomContentLoadedEvent);
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_FAILURE, this.onRoomContentLoadedEvent);
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_CANCEL, this.onRoomContentLoadedEvent);
const onRoomContentLoadedEvent = (event: RoomContentLoadedEvent) =>
{
if(!GetRoomContentLoader()) return;
const contentType = event.contentType;
if(this._pendingContentTypes.indexOf(contentType) >= 0) return;
this._pendingContentTypes.push(contentType);
};
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_SUCCESS, onRoomContentLoadedEvent);
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_FAILURE, onRoomContentLoadedEvent);
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_CANCEL, onRoomContentLoadedEvent);
}
public getRoomInstance(roomId: string): IRoomInstance
@ -276,17 +282,6 @@ export class RoomManager implements IRoomManager, IRoomInstanceContainer
}
}
private onRoomContentLoadedEvent(event: RoomContentLoadedEvent): void
{
if(!GetRoomContentLoader()) return;
const contentType = event.contentType;
if(this._pendingContentTypes.indexOf(contentType) >= 0) return;
this._pendingContentTypes.push(contentType);
}
public update(time: number, update: boolean = false): void
{
this.processPendingContentTypes(time);

View File

@ -1955,17 +1955,17 @@ export class RoomObjectEventHandler implements IRoomCanvasMouseListener, IRoomOb
private placeObjectOnUser(roomId: number, objectId: number, category: number): void
{
const _local_4 = this.getSelectedRoomObjectData(roomId);
const objectData = this.getSelectedRoomObjectData(roomId);
if(!_local_4) return;
if(!objectData) return;
const _local_5 = (this._roomEngine.getRoomObject(roomId, objectId, category) as IRoomObjectController);
const roomObjectController = this._roomEngine.getRoomObject(roomId, objectId, category);
if(!_local_5) return;
if(!roomObjectController) return;
if(!this._roomEngine || !GetEventDispatcher()) return;
GetEventDispatcher().dispatchEvent(new RoomEngineObjectPlacedOnUserEvent(RoomEngineObjectEvent.PLACED_ON_USER, roomId, objectId, category, _local_4.id, _local_4.category));
GetEventDispatcher().dispatchEvent(new RoomEngineObjectPlacedOnUserEvent(RoomEngineObjectEvent.PLACED_ON_USER, roomId, objectId, category, objectData.id, objectData.category));
}
public setSelectedObject(roomId: number, objectId: number, category: number): void

View File

@ -36,7 +36,7 @@ export class RoomPreviewer
private _automaticStateChange: boolean;
private _previousAutomaticStateChangeTime: number;
private _addViewOffset: Point;
private _backgroundColor: number = 305148561;
private _backgroundColor: number = 0x000000;
private _backgroundSprite: Sprite = null;
private _disableUpdate: boolean = false;
@ -431,7 +431,7 @@ export class RoomPreviewer
{
if(this.isRoomEngineReady)
{
const displayObject = (this._roomEngine.getRoomInstanceDisplay(this._previewRoomId, RoomPreviewer.PREVIEW_CANVAS_ID, width, height, this._currentPreviewScale) as Container);
const displayObject = this._roomEngine.getRoomInstanceDisplay(this._previewRoomId, RoomPreviewer.PREVIEW_CANVAS_ID, width, height, this._currentPreviewScale);
if(displayObject && (this._backgroundColor !== null))
{
@ -446,7 +446,7 @@ export class RoomPreviewer
backgroundSprite.width = width;
backgroundSprite.height = height;
//backgroundSprite.tint = this._backgroundColor;
backgroundSprite.tint = this._backgroundColor;
}
this._roomEngine.setRoomInstanceRenderingCanvasMask(this._previewRoomId, RoomPreviewer.PREVIEW_CANVAS_ID, true);

View File

@ -26,7 +26,7 @@ export class RoomObjectModel implements IRoomObjectModel
if(this._map.get(key) === value) return;
}
this._map.set(key, (value as T));
this._map.set(key, value);
this._updateCounter++;
}

View File

@ -1401,26 +1401,27 @@ export class RoomPlaneParser
return planeData.normalDirection;
}
public getPlaneSecondaryNormals(k: number): IVector3D[]
public getPlaneSecondaryNormals(count: number): IVector3D[]
{
let _local_3: IVector3D[];
let _local_4: number;
if(((k < 0) || (k >= this.planeCount)))
if((count < 0) || (count >= this.planeCount)) return null;
const planes = this._planes[count];
if(planes != null)
{
return null;
const normals: IVector3D[] = [];
let i = 0;
while(i < planes.secondaryNormalCount)
{
normals.push(planes.getSecondaryNormal(i));
i++;
}
const _local_2: RoomPlaneData = (this._planes[k] as RoomPlaneData);
if(_local_2 != null)
{
_local_3 = [];
_local_4 = 0;
while(_local_4 < _local_2.secondaryNormalCount)
{
_local_3.push(_local_2.getSecondaryNormal(_local_4));
_local_4++;
}
return _local_3;
return normals;
}
return null;
}

View File

@ -235,7 +235,7 @@ export class SizeData
public getLayerColor(layerId: number, colorId: number): number
{
const existing = this._colors[colorId] as ColorData;
const existing = this._colors[colorId];
if(!existing) return ColorData.DEFAULT_COLOR;

View File

@ -40,6 +40,8 @@ export class FurnitureFireworksVisualization extends FurnitureAnimatedVisualizat
{
const particleSystem = this._particleSystems.getValue(scale);
if(!particleSystem) return false;
particleSystem.copyStateFrom(this._currentParticleSystem);
if(this._currentParticleSystem) this._currentParticleSystem.reset();

View File

@ -70,7 +70,7 @@ export class FurnitureVisualizationData implements IObjectVisualizationData
{
if(!visualizations) return false;
for(const visualizationId in visualizations)
for(const visualizationId of Object.keys(visualizations))
{
const visualization = visualizations[visualizationId];

View File

@ -1,6 +1,6 @@
import { AlphaTolerance, IObjectVisualizationData, IPlaneVisualization, IRoomGeometry, IRoomObjectModel, IRoomObjectSprite, IRoomPlane, RoomObjectSpriteType, RoomObjectVariable } from '@nitrots/api';
import { ToInt32, Vector3d } from '@nitrots/utils';
import { Rectangle, Texture } from 'pixi.js';
import { AlphaTolerance, IObjectVisualizationData, IPlaneVisualization, IRoomGeometry, IRoomObjectModel, IRoomObjectSprite, IRoomPlane, RoomObjectSpriteType, RoomObjectVariable } from '../../../../../api';
import { RoomMapData } from '../../RoomMapData';
import { RoomMapMaskData } from '../../RoomMapMaskData';
import { RoomPlaneBitmapMaskData } from '../../RoomPlaneBitmapMaskData';
@ -13,16 +13,16 @@ import { RoomVisualizationData } from './RoomVisualizationData';
export class RoomVisualization extends RoomObjectSpriteVisualization implements IPlaneVisualization
{
public static FLOOR_COLOR: number = 0xFFFFFF;
public static FLOOR_COLOR_LEFT: number = 0xDDDDDD;
public static FLOOR_COLOR_RIGHT: number = 0xBBBBBB;
private static FLOOR_COLOR: number = 0xFFFFFF;
private static FLOOR_COLOR_LEFT: number = 0xDDDDDD;
private static FLOOR_COLOR_RIGHT: number = 0xBBBBBB;
private static WALL_COLOR_TOP: number = 0xFFFFFF;
private static WALL_COLOR_SIDE: number = 0xCCCCCC;
private static WALL_COLOR_BOTTOM: number = 0x999999;
private static WALL_COLOR_BORDER: number = 0x999999;
public static LANDSCAPE_COLOR_TOP: number = 0xFFFFFF;
public static LANDSCAPE_COLOR_SIDE: number = 0xCCCCCC;
public static LANDSCAPE_COLOR_BOTTOM: number = 0x999999;
private static LANDSCAPE_COLOR_TOP: number = 0xFFFFFF;
private static LANDSCAPE_COLOR_SIDE: number = 0xCCCCCC;
private static LANDSCAPE_COLOR_BOTTOM: number = 0x999999;
private static ROOM_DEPTH_OFFSET: number = 1000;
protected _data: RoomVisualizationData = null;

View File

@ -102,7 +102,7 @@ export class RoomRenderer implements IRoomRenderer, IRoomSpriteCanvasContainer
public createCanvas(id: number, width: number, height: number, scale: number): IRoomRenderingCanvas
{
const existing = this._canvases.get(id) as IRoomRenderingCanvas;
const existing = this._canvases.get(id);
if(existing)
{

View File

@ -84,7 +84,7 @@ export class RoomSpriteCanvas implements IRoomRenderingCanvas
{
const display = new Container();
display.isRenderGroup = true;
display.isRenderGroup = false;
display.cullableChildren = false;
this._master.addChild(display);
@ -475,11 +475,11 @@ export class RoomSpriteCanvas implements IRoomRenderingCanvas
{
if((index < 0) || (index >= this._spriteCount)) return null;
const sprite = (this._display.getChildAt(index) as ExtendedSprite);
const sprite = (this._display.getChildAt(index));
if(!sprite) return null;
return sprite;
return (sprite as ExtendedSprite);
}
protected getExtendedSpriteIdentifier(sprite: ExtendedSprite): string

View File

@ -1,6 +1,6 @@
import { AlphaTolerance } from '@nitrots/api';
import { GetRenderer, TextureUtils } from '@nitrots/utils';
import { GlRenderTarget, Point, RendererType, Sprite, Texture, TextureSource, WebGPURenderer } from 'pixi.js';
import { Point, RendererType, Sprite, Texture, TextureSource, WebGPURenderer } from 'pixi.js';
const BYTES_PER_PIXEL = 4;
@ -92,12 +92,12 @@ export class ExtendedSprite extends Sprite
pixels = TextureUtils.getPixels(new Texture(textureSource))?.pixels ?? null;
}
else if(renderer.type === RendererType.WEBGL)
else if((renderer.type as RendererType) === RendererType.WEBGL)
{
pixels = new Uint8ClampedArray(BYTES_PER_PIXEL * width * height);
const renderTarget = renderer.renderTarget.getRenderTarget(textureSource);
const glRenderTarget = renderer.renderTarget.getGpuRenderTarget(renderTarget) as GlRenderTarget;
const glRenderTarget = renderer.renderTarget.getGpuRenderTarget(renderTarget);
const gl = renderer.gl;

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,8 +5,7 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
@ -14,10 +13,9 @@
"@nitrots/assets": "1.0.0",
"@nitrots/communication": "1.0.0",
"@nitrots/configuration": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0",
"@nitrots/localization": "1.0.0",
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"typescript": "~5.4.2"

View File

@ -50,8 +50,6 @@ export class SessionDataManager implements ISessionDataManager
constructor()
{
this.resetUserInfo();
this.onNitroSettingsEvent = this.onNitroSettingsEvent.bind(this);
}
public async init(): Promise<void>
@ -86,7 +84,13 @@ export class SessionDataManager implements ISessionDataManager
GetCommunication().registerMessageEvent(new AccountSafetyLockStatusChangeMessageEvent(this.onAccountSafetyLockStatusChangeMessageEvent.bind(this)));
GetCommunication().registerMessageEvent(new EmailStatusResultEvent(this.onEmailStatus.bind(this)));
GetEventDispatcher().addEventListener(NitroSettingsEvent.SETTINGS_UPDATED, this.onNitroSettingsEvent);
GetEventDispatcher().addEventListener<NitroSettingsEvent>(NitroSettingsEvent.SETTINGS_UPDATED, event =>
{
this._isRoomCameraFollowDisabled = event.cameraFollow;
this._uiFlags = event.flags;
GetEventDispatcher().dispatchEvent(new SessionDataPreferencesEvent(this._uiFlags));
});
}
private resetUserInfo(): void
@ -256,14 +260,6 @@ export class SessionDataManager implements ISessionDataManager
this._isEmailVerified = event?.getParser()?.isVerified ?? false;
}
private onNitroSettingsEvent(event: NitroSettingsEvent): void
{
this._isRoomCameraFollowDisabled = event.cameraFollow;
this._uiFlags = event.flags;
GetEventDispatcher().dispatchEvent(new SessionDataPreferencesEvent(this._uiFlags));
}
public getFloorItemData(id: number): IFurnitureData
{
const existing = this._floorItems.get(id);

View File

@ -1,8 +1,8 @@
import { IFurnitureData } from '@nitrots/api';
import { FurnitureType, IFurnitureData } from '@nitrots/api';
export class FurnitureData implements IFurnitureData
{
private _type: string;
private _type: FurnitureType;
private _id: number;
private _className: string;
private _fullName: string;
@ -32,7 +32,7 @@ export class FurnitureData implements IFurnitureData
private _environment: string;
private _rare: boolean;
constructor(type: string, id: number, fullName: string, className: string, category: string, localizedName: string, description: string, revision: number, tileSizeX: number, tileSizeY: number, tileSizeZ: number, colors: number[], hadIndexedColor: boolean, colorIndex: number, adUrl: string, purchaseOfferId: number, purchaseCouldBeUsedForBuyout: boolean, rentOfferId: number, rentCouldBeUsedForBuyout: boolean, availableForBuildersClub: boolean, customParams: string, specialType: number, canStandOn: boolean, canSitOn: boolean, canLayOn: boolean, excludedfromDynamic: boolean, furniLine: string, environment: string, rare: boolean)
constructor(type: FurnitureType, id: number, fullName: string, className: string, category: string, localizedName: string, description: string, revision: number, tileSizeX: number, tileSizeY: number, tileSizeZ: number, colors: number[], hadIndexedColor: boolean, colorIndex: number, adUrl: string, purchaseOfferId: number, purchaseCouldBeUsedForBuyout: boolean, rentOfferId: number, rentCouldBeUsedForBuyout: boolean, availableForBuildersClub: boolean, customParams: string, specialType: number, canStandOn: boolean, canSitOn: boolean, canLayOn: boolean, excludedfromDynamic: boolean, furniLine: string, environment: string, rare: boolean)
{
this._type = type;
this._id = id;
@ -65,7 +65,7 @@ export class FurnitureData implements IFurnitureData
this._rare = rare;
}
public get type(): string
public get type(): FurnitureType
{
return this._type;
}

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,15 +5,13 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/communication": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"typescript": "~5.4.2"

View File

@ -10,7 +10,8 @@ export class SongDataEntry implements ISongInfo
public readonly name: string,
public readonly creator: string,
public readonly songData: string = ''
) {}
)
{}
public get diskId(): number
{

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -1,3 +0,0 @@
{
"extends": [ "@nitrots/eslint-config" ]
}

View File

@ -5,15 +5,13 @@
"type": "module",
"license": "GPL-3.0",
"scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
"compile": "tsc --project ./tsconfig.json --noEmit false"
},
"main": "./index",
"dependencies": {
"@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"pako": "^2.1.0",
"pixi.js": "^8.1.0"
"pixi.js": "^8.1.6"
},
"devDependencies": {
"@types/pako": "^2.0.3",

View File

@ -1,4 +1,3 @@
export class NitroVersion
{
public static RENDERER_VERSION: string = '2.0.0';

View File

@ -165,7 +165,7 @@ export class Motions
{
if(!Motions._TIMER)
{
Motions._TIMER = setInterval(Motions.onTick, Motions.TIMER_TIME);
Motions._TIMER = setInterval(() => Motions.onTick(), Motions.TIMER_TIME);
}
}

View File

@ -25,7 +25,5 @@
"ESNext"
],
"module": "ES6"
},
"include": [
"src" ]
}
}

View File

@ -18,14 +18,12 @@
"noEmit": true,
"strict": false,
"strictNullChecks": false,
"target": "ES6",
"target": "ES2022",
"lib": [
"DOM",
"DOM.Iterable",
"ESNext"
],
"module": "ES6"
},
"include": [
"src", "packages/utils/src/FurniId.ts", "packages/room/src/messages", "packages/room/src/utils", "packages/room/src/object/logic", "packages/room/src/object/visualization", "packages/room/src/object/RoomObject.ts", "packages/room/src/object/RoomObjectModel.ts", "packages/utils/src/NumberBank.ts", "packages/utils/src/RoomId.ts", "packages/utils/src/ColorConverter.ts", "packages/utils/src/PointMath.ts", "packages/room/src/renderer/cache", "packages/room/src/renderer/RoomSpriteCanvas.ts", "packages/room/src/renderer/RoomRendererFactory.ts", "packages/room/src/renderer/RoomRenderer.ts", "packages/room/src/RoomInstance.ts", "packages/room/src/RoomManager.ts", "packages/room/src/RoomObjectManager.ts", "packages/room/src/RoomPreviewer.ts", "packages/room/src/object/RoomWallData.ts", "packages/room/src/object/RoomPlaneParser.ts", "packages/room/src/object/RoomPlaneMaskData.ts", "packages/room/src/object/RoomPlaneData.ts", "packages/room/src/object/RoomPlaneBitmapMaskParser.ts", "packages/room/src/object/RoomPlaneBitmapMaskData.ts", "packages/room/src/RoomObjectVisualizationFactory.ts", "packages/room/src/object/RoomMapMaskData.ts", "packages/room/src/object/RoomMapData.ts", "packages/room/src/object/RoomFloorHole.ts", "packages/room/src/RoomVariableEnum.ts", "packages/room/src/RoomObjectLogicFactory.ts", "packages/room/src/RoomObjectEventHandler.ts", "packages/room/src/RoomMessageHandler.ts", "packages/room/src/RoomEngine.ts", "packages/room/src/RoomContentLoader.ts", "packages/room/src/PetColorResult.ts", "packages/room/src/ImageResult.ts", "packages/utils/src/Node3D.ts", "packages/utils/src/Matrix4x4.ts", "packages/utils/src/LegacyExternalInterface.ts", "packages/utils/src/HabboWebTools.ts", "packages/utils/src/motion", "packages/avatar/src/actions", "packages/avatar/animation", "packages/avatar/cache", "packages/avatar/src/data", "packages/avatar/geometry", "packages/avatar/src/pets", "packages/avatar/src/structure/animation", "packages/avatar/src/structure/figure", "packages/avatar/src/structure/parts", "packages/avatar/structure/AvatarAnimationData.ts", "packages/avatar/structure/AvatarCanvas.ts", "packages/avatar/structure/FigureSetData.ts", "packages/avatar/structure/index.ts", "packages/avatar/structure/PartSetsData.ts", "packages/avatar/src/cache/AvatarImageCache.ts", "packages/localization/src/LocalizationManager.ts", "packages/localization/src/GetLocalization.ts", "packages/localization/src/BadgeBaseAndLevel.ts" ]
"module": "ES2022"
}
}

425
yarn.lock
View File

@ -129,49 +129,54 @@
dependencies:
eslint-visitor-keys "^3.3.0"
"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1":
version "4.10.0"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
"@eslint/eslintrc@^2.1.4":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
"@eslint/config-array@^0.16.0":
version "0.16.0"
resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.16.0.tgz#bb3364fc39ee84ec3a62abdc4b8d988d99dfd706"
integrity sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==
dependencies:
"@eslint/object-schema" "^2.1.4"
debug "^4.3.1"
minimatch "^3.0.5"
"@eslint/eslintrc@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6"
integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
espree "^9.6.0"
globals "^13.19.0"
espree "^10.0.1"
globals "^14.0.0"
ignore "^5.2.0"
import-fresh "^3.2.1"
js-yaml "^4.1.0"
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
"@eslint/js@8.57.0":
version "8.57.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
"@eslint/js@9.5.0", "@eslint/js@^9.5.0":
version "9.5.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.5.0.tgz#0e9c24a670b8a5c86bff97b40be13d8d8f238045"
integrity sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==
"@humanwhocodes/config-array@^0.11.14":
version "0.11.14"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
dependencies:
"@humanwhocodes/object-schema" "^2.0.2"
debug "^4.3.1"
minimatch "^3.0.5"
"@eslint/object-schema@^2.1.4":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843"
integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==
"@humanwhocodes/module-importer@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
"@humanwhocodes/object-schema@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
"@humanwhocodes/retry@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570"
integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@ -296,121 +301,133 @@
resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-2.1.4.tgz#5811d7d333048f5a7573b22ddc84923e69596da6"
integrity sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==
"@types/estree@1.0.5", "@types/estree@^1.0.0":
"@types/eslint@*":
version "8.56.10"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d"
integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
"@types/eslint__js@^8.42.3":
version "8.42.3"
resolved "https://registry.yarnpkg.com/@types/eslint__js/-/eslint__js-8.42.3.tgz#d1fa13e5c1be63a10b4e3afe992779f81c1179a0"
integrity sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==
dependencies:
"@types/eslint" "*"
"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/gradient-parser@^0.1.2":
version "0.1.5"
resolved "https://registry.yarnpkg.com/@types/gradient-parser/-/gradient-parser-0.1.5.tgz#7b25d5f080f41f0d713207894c3f2f490155462a"
integrity sha512-r7K3NkJz3A95WkVVmjs0NcchhHstC2C/VIYNX4JC6tieviUNo774FFeOHjThr3Vw/WCeMP9kAT77MKbIRlO/4w==
"@types/howler@^2.2.11":
version "2.2.11"
resolved "https://registry.yarnpkg.com/@types/howler/-/howler-2.2.11.tgz#a75c4ab5666aee5fcfbd5de15d35dbaaa3d3f070"
integrity sha512-7aBoUL6RbSIrqKnpEgfa1wSNUBK06mn08siP2QI0zYk7MXfEJAaORc4tohamQYqCqVESoDyRWSdQn2BOKWj2Qw==
"@types/json-schema@^7.0.12":
"@types/json-schema@*":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/node@^20.14.4":
version "20.14.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.4.tgz#3426db474378502882036d595ec9e79a9b17d1e6"
integrity sha512-1ChboN+57suCT2t/f8lwtPY/k3qTpuD/qnqQuYoBg6OQOcPyaw7PiZVdGpaZYAvhDDtqrt0oAaM8+oSu1xsUGw==
dependencies:
undici-types "~5.26.4"
"@types/pako@^2.0.3":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.3.tgz#b6993334f3af27c158f3fe0dfeeba987c578afb1"
integrity sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==
"@types/semver@^7.5.0":
version "7.5.8"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
"@typescript-eslint/eslint-plugin@^7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.1.tgz#dd71fc5c7ecec745ca26ece506d84d203a205c0e"
integrity sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==
"@typescript-eslint/eslint-plugin@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz#cdc521c8bca38b55585cf30db787fb2abad3f9fd"
integrity sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==
dependencies:
"@eslint-community/regexpp" "^4.5.1"
"@typescript-eslint/scope-manager" "7.1.1"
"@typescript-eslint/type-utils" "7.1.1"
"@typescript-eslint/utils" "7.1.1"
"@typescript-eslint/visitor-keys" "7.1.1"
debug "^4.3.4"
"@eslint-community/regexpp" "^4.10.0"
"@typescript-eslint/scope-manager" "7.13.1"
"@typescript-eslint/type-utils" "7.13.1"
"@typescript-eslint/utils" "7.13.1"
"@typescript-eslint/visitor-keys" "7.13.1"
graphemer "^1.4.0"
ignore "^5.2.4"
ignore "^5.3.1"
natural-compare "^1.4.0"
semver "^7.5.4"
ts-api-utils "^1.0.1"
ts-api-utils "^1.3.0"
"@typescript-eslint/parser@^7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.1.1.tgz#6a9d0a5c9ccdf5dbd3cb8c949728c64e24e07d1f"
integrity sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==
"@typescript-eslint/parser@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.1.tgz#fac57811b3e519185f7259bac312291f7b9c4e72"
integrity sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==
dependencies:
"@typescript-eslint/scope-manager" "7.1.1"
"@typescript-eslint/types" "7.1.1"
"@typescript-eslint/typescript-estree" "7.1.1"
"@typescript-eslint/visitor-keys" "7.1.1"
"@typescript-eslint/scope-manager" "7.13.1"
"@typescript-eslint/types" "7.13.1"
"@typescript-eslint/typescript-estree" "7.13.1"
"@typescript-eslint/visitor-keys" "7.13.1"
debug "^4.3.4"
"@typescript-eslint/scope-manager@7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz#9e301803ff8e21a74f50c6f89a4baccad9a48f93"
integrity sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==
"@typescript-eslint/scope-manager@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz#c08041206904bf36f0e6997efdb0ca775e0c452e"
integrity sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==
dependencies:
"@typescript-eslint/types" "7.1.1"
"@typescript-eslint/visitor-keys" "7.1.1"
"@typescript-eslint/types" "7.13.1"
"@typescript-eslint/visitor-keys" "7.13.1"
"@typescript-eslint/type-utils@7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.1.1.tgz#aee820d5bedd39b83c18585a526cc520ddb7a226"
integrity sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==
"@typescript-eslint/type-utils@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz#63bec3f1fb43cf0bc409cbdb88ef96d118ca8632"
integrity sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==
dependencies:
"@typescript-eslint/typescript-estree" "7.1.1"
"@typescript-eslint/utils" "7.1.1"
"@typescript-eslint/typescript-estree" "7.13.1"
"@typescript-eslint/utils" "7.13.1"
debug "^4.3.4"
ts-api-utils "^1.0.1"
ts-api-utils "^1.3.0"
"@typescript-eslint/types@7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.1.1.tgz#ca33ba7cf58224fb46a84fea62593c2c53cd795f"
integrity sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==
"@typescript-eslint/types@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.1.tgz#787db283bd0b58751094c90d5b58bbf5e9fc9bd8"
integrity sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==
"@typescript-eslint/typescript-estree@7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz#09c54af0151a1b05d0875c0fc7fe2ec7a2476ece"
integrity sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==
"@typescript-eslint/typescript-estree@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz#3412841b130e070db2f675e3d9b8cb1ae49e1c3f"
integrity sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==
dependencies:
"@typescript-eslint/types" "7.1.1"
"@typescript-eslint/visitor-keys" "7.1.1"
"@typescript-eslint/types" "7.13.1"
"@typescript-eslint/visitor-keys" "7.13.1"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
minimatch "9.0.3"
semver "^7.5.4"
ts-api-utils "^1.0.1"
minimatch "^9.0.4"
semver "^7.6.0"
ts-api-utils "^1.3.0"
"@typescript-eslint/utils@7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.1.1.tgz#bdeeb789eee4af5d3fb5400a69566d4dbf97ff3b"
integrity sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==
"@typescript-eslint/utils@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.13.1.tgz#611083379caa0d3a2c09d126c65065a3e4337ba2"
integrity sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
"@types/json-schema" "^7.0.12"
"@types/semver" "^7.5.0"
"@typescript-eslint/scope-manager" "7.1.1"
"@typescript-eslint/types" "7.1.1"
"@typescript-eslint/typescript-estree" "7.1.1"
semver "^7.5.4"
"@typescript-eslint/scope-manager" "7.13.1"
"@typescript-eslint/types" "7.13.1"
"@typescript-eslint/typescript-estree" "7.13.1"
"@typescript-eslint/visitor-keys@7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz#e6538a58c9b157f03bcbb29e3b6a92fe39a6ab0d"
integrity sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==
"@typescript-eslint/visitor-keys@7.13.1":
version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz#9c229a795a919db61f2d7f2337ef584ac05fbe96"
integrity sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==
dependencies:
"@typescript-eslint/types" "7.1.1"
eslint-visitor-keys "^3.4.1"
"@ungap/structured-clone@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
"@typescript-eslint/types" "7.13.1"
eslint-visitor-keys "^3.4.3"
"@webgpu/types@^0.1.40":
version "0.1.40"
@ -427,7 +444,7 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.9.0:
acorn@^8.11.3:
version "8.11.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
@ -549,13 +566,6 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
doctrine@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
dependencies:
esutils "^2.0.2"
earcut@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a"
@ -595,54 +605,55 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-scope@^7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
eslint-scope@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc"
integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3:
version "3.4.3"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint@^8.57.0:
version "8.57.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
eslint-visitor-keys@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
eslint@^9.5.0:
version "9.5.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.5.0.tgz#11856034b94a9e1a02cfcc7e96a9f0956963cd2f"
integrity sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.6.1"
"@eslint/eslintrc" "^2.1.4"
"@eslint/js" "8.57.0"
"@humanwhocodes/config-array" "^0.11.14"
"@eslint/config-array" "^0.16.0"
"@eslint/eslintrc" "^3.1.0"
"@eslint/js" "9.5.0"
"@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.3.0"
"@nodelib/fs.walk" "^1.2.8"
"@ungap/structured-clone" "^1.2.0"
ajv "^6.12.4"
chalk "^4.0.0"
cross-spawn "^7.0.2"
debug "^4.3.2"
doctrine "^3.0.0"
escape-string-regexp "^4.0.0"
eslint-scope "^7.2.2"
eslint-visitor-keys "^3.4.3"
espree "^9.6.1"
esquery "^1.4.2"
eslint-scope "^8.0.1"
eslint-visitor-keys "^4.0.0"
espree "^10.0.1"
esquery "^1.5.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
file-entry-cache "^8.0.0"
find-up "^5.0.0"
glob-parent "^6.0.2"
globals "^13.19.0"
graphemer "^1.4.0"
ignore "^5.2.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
is-path-inside "^3.0.3"
js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
lodash.merge "^4.6.2"
@ -652,16 +663,16 @@ eslint@^8.57.0:
strip-ansi "^6.0.1"
text-table "^0.2.0"
espree@^9.6.0, espree@^9.6.1:
version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
espree@^10.0.1:
version "10.0.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f"
integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==
dependencies:
acorn "^8.9.0"
acorn "^8.11.3"
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.4.1"
eslint-visitor-keys "^4.0.0"
esquery@^1.4.2:
esquery@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
@ -728,12 +739,12 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
file-entry-cache@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
file-entry-cache@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
dependencies:
flat-cache "^3.0.4"
flat-cache "^4.0.0"
fill-range@^7.0.1:
version "7.0.1"
@ -750,25 +761,19 @@ find-up@^5.0.0:
locate-path "^6.0.0"
path-exists "^4.0.0"
flat-cache@^3.0.4:
version "3.2.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
flat-cache@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
dependencies:
flatted "^3.2.9"
keyv "^4.5.3"
rimraf "^3.0.2"
keyv "^4.5.4"
flatted@^3.2.9:
version "3.3.1"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
@ -793,24 +798,10 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
glob@^7.1.3:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
globals@^13.19.0:
version "13.24.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
dependencies:
type-fest "^0.20.2"
globals@^14.0.0:
version "14.0.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
globby@^11.1.0:
version "11.1.0"
@ -846,7 +837,7 @@ howler@^2.2.4:
resolved "https://registry.yarnpkg.com/howler/-/howler-2.2.4.tgz#bd3df4a4f68a0118a51e4bd84a2bfc2e93e6e5a1"
integrity sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==
ignore@^5.2.0, ignore@^5.2.4:
ignore@^5.2.0, ignore@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
@ -864,19 +855,6 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
is-core-module@^2.13.0:
version "2.13.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
@ -938,7 +916,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
keyv@^4.5.3:
keyv@^4.5.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
@ -985,20 +963,20 @@ micromatch@^4.0.4:
braces "^3.0.2"
picomatch "^2.3.1"
minimatch@9.0.3:
version "9.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
dependencies:
brace-expansion "^2.0.1"
minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
minimatch@^3.0.5, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@^9.0.4:
version "9.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
dependencies:
brace-expansion "^2.0.1"
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@ -1014,13 +992,6 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
optionator@^0.9.3:
version "0.9.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
@ -1069,11 +1040,6 @@ path-exists@^4.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@ -1099,15 +1065,17 @@ picomatch@^2.3.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pixi-filters@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/pixi-filters/-/pixi-filters-6.0.0.tgz#36f480f87b8f66b259db40acb7a6b134e570c473"
integrity sha512-9wJn4bfQKak+lefyk9BSCenhMBvGQi2t4Uz+BVqw6WK8wM2NgqeTC64mhXRtrdYeCG9gIFX0Lc6q1S8rBqwJbg==
pixi-filters@^6.0.4:
version "6.0.4"
resolved "https://registry.yarnpkg.com/pixi-filters/-/pixi-filters-6.0.4.tgz#e6a02730210ff438519d3a888a2fe1c8cdaa6c94"
integrity sha512-W9SjOTF4yo+v9t5YOBtsWhJoFLLRM6DsIk1C2YBNiQhdyX7J/5UIJtPlTMhZ7wQKoFUiyeUAaCzTEdmw/TVD6w==
dependencies:
"@types/gradient-parser" "^0.1.2"
pixi.js@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-8.1.0.tgz#c1a6c81993f75bc13882e4570df0d51cc136965b"
integrity sha512-qclFipWxKavNZoOE0QjGgEklbxjc1mpHf46adsxYLz7O7RnV44PPkq1J5Ssa6y1JxtYUX0fwbphoE/gz276glA==
pixi.js@^8.1.6:
version "8.1.6"
resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-8.1.6.tgz#5aaa9f480fea2a029974d8fd4074ba39e03058fc"
integrity sha512-FZT/dLZ9Tdw8eN6odgunSQHORsgHcvLlfOWm7cpR4ZxVGPRqFgDQ4hXpwVxeY9UK4PZtlJ4U910H1QZ4XNLJxg==
dependencies:
"@pixi/colord" "^2.9.6"
"@types/css-font-loading-module" "^0.0.12"
@ -1162,13 +1130,6 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
dependencies:
glob "^7.1.3"
rollup@^4.2.0:
version "4.12.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.1.tgz#0659cb02551cde4c5b210e9bd3af050b5b5b415d"
@ -1198,7 +1159,7 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
semver@^7.5.4:
semver@^7.6.0:
version "7.6.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
@ -1263,7 +1224,7 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
ts-api-utils@^1.0.1:
ts-api-utils@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
@ -1280,16 +1241,25 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
type-fest@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
typescript-eslint@^7.13.1:
version "7.13.1"
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.13.1.tgz#8bbcc4b59b6bb0c457505ee17a356b1868c3fcd5"
integrity sha512-pvLEuRs8iS9s3Cnp/Wt//hpK8nKc8hVa3cLljHqzaJJQYP8oys8GUyIFqtlev+2lT/fqMPcyQko+HJ6iYK3nFA==
dependencies:
"@typescript-eslint/eslint-plugin" "7.13.1"
"@typescript-eslint/parser" "7.13.1"
"@typescript-eslint/utils" "7.13.1"
typescript@~5.4.2:
version "5.4.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372"
integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==
undici-types@~5.26.4:
version "5.26.5"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@ -1315,11 +1285,6 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"