diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..1bed7c7b --- /dev/null +++ b/eslint.config.js @@ -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 + } + ] + } + }, +); diff --git a/package.json b/package.json index bffbf330..1841dc76 100644 --- a/package.json +++ b/package.json @@ -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" } } diff --git a/packages/api/package.json b/packages/api/package.json index 564756e5..bcb9a613 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -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" diff --git a/packages/api/src/nitro/avatar/IAvatarEffectListener.ts b/packages/api/src/nitro/avatar/IAvatarEffectListener.ts index a04ebc3e..ffd8f144 100644 --- a/packages/api/src/nitro/avatar/IAvatarEffectListener.ts +++ b/packages/api/src/nitro/avatar/IAvatarEffectListener.ts @@ -1,4 +1,5 @@ export interface IAvatarEffectListener { resetEffect(effect: number): void; + disposed: boolean; } diff --git a/packages/api/src/nitro/camera/IRoomCameraWidgetManager.ts b/packages/api/src/nitro/camera/IRoomCameraWidgetManager.ts index bf557c00..85d8e2c6 100644 --- a/packages/api/src/nitro/camera/IRoomCameraWidgetManager.ts +++ b/packages/api/src/nitro/camera/IRoomCameraWidgetManager.ts @@ -5,7 +5,7 @@ import { IRoomCameraWidgetSelectedEffect } from './IRoomCameraWidgetSelectedEffe export interface IRoomCameraWidgetManager { init(): Promise; - applyEffects(texture: Texture, selectedEffects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise; + applyEffects(texture: Texture, effects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise; effects: Map; isLoaded: boolean; } diff --git a/packages/api/src/nitro/camera/IRoomCameraWidgetSelectedEffect.ts b/packages/api/src/nitro/camera/IRoomCameraWidgetSelectedEffect.ts index 3bb3b2c7..30cdf232 100644 --- a/packages/api/src/nitro/camera/IRoomCameraWidgetSelectedEffect.ts +++ b/packages/api/src/nitro/camera/IRoomCameraWidgetSelectedEffect.ts @@ -3,5 +3,5 @@ import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect'; export interface IRoomCameraWidgetSelectedEffect { effect: IRoomCameraWidgetEffect; - alpha: number; + strength: number; } diff --git a/packages/api/src/nitro/session/IFurnitureData.ts b/packages/api/src/nitro/session/IFurnitureData.ts index 0ebc9c78..e70dae0d 100644 --- a/packages/api/src/nitro/session/IFurnitureData.ts +++ b/packages/api/src/nitro/session/IFurnitureData.ts @@ -1,6 +1,8 @@ +import { FurnitureType } from './FurnitureType'; + export interface IFurnitureData { - type: string; + type: FurnitureType; id: number; className: string; fullName: string; diff --git a/packages/api/src/utils/IVector3D.ts b/packages/api/src/utils/IVector3D.ts index 467e26e1..ec4ae08c 100644 --- a/packages/api/src/utils/IVector3D.ts +++ b/packages/api/src/utils/IVector3D.ts @@ -13,4 +13,5 @@ y: number; z: number; length: number; + toString(): string; } diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/api/tsconfig.json +++ b/packages/api/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/assets/.eslintrc.json b/packages/assets/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/assets/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/assets/package.json b/packages/assets/package.json index e5fb995b..502d0430 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -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": { diff --git a/packages/assets/src/GraphicAsset.ts b/packages/assets/src/GraphicAsset.ts index 1b6aa18c..fb649dc5 100644 --- a/packages/assets/src/GraphicAsset.ts +++ b/packages/assets/src/GraphicAsset.ts @@ -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 { diff --git a/packages/assets/tsconfig.json b/packages/assets/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/assets/tsconfig.json +++ b/packages/assets/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/avatar/.eslintrc.json b/packages/avatar/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/avatar/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/avatar/package.json b/packages/avatar/package.json index 63549d6a..9b965b1a 100644 --- a/packages/avatar/package.json +++ b/packages/avatar/package.json @@ -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" }, diff --git a/packages/avatar/src/AvatarStructure.ts b/packages/avatar/src/AvatarStructure.ts index 86f3f85a..a1772b71 100644 --- a/packages/avatar/src/AvatarStructure.ts +++ b/packages/avatar/src/AvatarStructure.ts @@ -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[] = []; diff --git a/packages/avatar/src/actions/AvatarActionManager.ts b/packages/avatar/src/actions/AvatarActionManager.ts index eee1eefc..394f45a7 100644 --- a/packages/avatar/src/actions/AvatarActionManager.ts +++ b/packages/avatar/src/actions/AvatarActionManager.ts @@ -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; - } } diff --git a/packages/avatar/src/geometry/GeometryItem.ts b/packages/avatar/src/geometry/GeometryItem.ts index 3aea1722..33f8524d 100644 --- a/packages/avatar/src/geometry/GeometryItem.ts +++ b/packages/avatar/src/geometry/GeometryItem.ts @@ -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 diff --git a/packages/avatar/tsconfig.json b/packages/avatar/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/avatar/tsconfig.json +++ b/packages/avatar/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/camera/.eslintrc.json b/packages/camera/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/camera/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/camera/package.json b/packages/camera/package.json index a6f31744..2cb6ca45 100644 --- a/packages/camera/package.json +++ b/packages/camera/package.json @@ -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" diff --git a/packages/camera/src/RoomCameraWidgetManager.ts b/packages/camera/src/RoomCameraWidgetManager.ts index 34ed50ec..7a011176 100644 --- a/packages/camera/src/RoomCameraWidgetManager.ts +++ b/packages/camera/src/RoomCameraWidgetManager.ts @@ -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; - private _isLoaded: boolean; - - constructor() - { - this._effects = new Map(); - this._isLoaded = false; - } + private _effects: Map = new Map(); + private _isLoaded: boolean = false; public async init(): Promise { @@ -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 + public async applyEffects(texture: Texture, effects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise { 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 diff --git a/packages/camera/src/RoomCameraWidgetSelectedEffect.ts b/packages/camera/src/RoomCameraWidgetSelectedEffect.ts index c76ddeb7..ce2908b5 100644 --- a/packages/camera/src/RoomCameraWidgetSelectedEffect.ts +++ b/packages/camera/src/RoomCameraWidgetSelectedEffect.ts @@ -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; } } diff --git a/packages/camera/tsconfig.json b/packages/camera/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/camera/tsconfig.json +++ b/packages/camera/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/communication/.eslintrc.json b/packages/communication/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/communication/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/communication/package.json b/packages/communication/package.json index a4de308f..e2a4b430 100644 --- a/packages/communication/package.json +++ b/packages/communication/package.json @@ -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" }, diff --git a/packages/communication/src/messages/parser/catalog/CatalogPageMessageProductData.ts b/packages/communication/src/messages/parser/catalog/CatalogPageMessageProductData.ts index 7225e102..18fded8c 100644 --- a/packages/communication/src/messages/parser/catalog/CatalogPageMessageProductData.ts +++ b/packages/communication/src/messages/parser/catalog/CatalogPageMessageProductData.ts @@ -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; } diff --git a/packages/communication/tsconfig.json b/packages/communication/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/communication/tsconfig.json +++ b/packages/communication/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/configuration/.eslintrc.json b/packages/configuration/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/configuration/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/configuration/package.json b/packages/configuration/package.json index 7cef9c25..2dcb2645 100644 --- a/packages/configuration/package.json +++ b/packages/configuration/package.json @@ -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": { diff --git a/packages/configuration/src/ConfigurationManager.ts b/packages/configuration/src/ConfigurationManager.ts index a72a04ad..f4bcd992 100644 --- a/packages/configuration/src/ConfigurationManager.ts +++ b/packages/configuration/src/ConfigurationManager.ts @@ -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)) { diff --git a/packages/configuration/tsconfig.json b/packages/configuration/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/configuration/tsconfig.json +++ b/packages/configuration/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/eslint-config/.eslintrc.json b/packages/eslint-config/.eslintrc.json deleted file mode 100644 index 1a4901d1..00000000 --- a/packages/eslint-config/.eslintrc.json +++ /dev/null @@ -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 - } - ] - } -} diff --git a/packages/eslint-config/.gitignore b/packages/eslint-config/.gitignore deleted file mode 100644 index 1413af91..00000000 --- a/packages/eslint-config/.gitignore +++ /dev/null @@ -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 diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js deleted file mode 100644 index 3b07596c..00000000 --- a/packages/eslint-config/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./.eslintrc.json'); diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json deleted file mode 100644 index 68d987d4..00000000 --- a/packages/eslint-config/package.json +++ /dev/null @@ -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" - } -} - \ No newline at end of file diff --git a/packages/events/.eslintrc.json b/packages/events/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/events/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/events/package.json b/packages/events/package.json index 6fc73940..0fc99fbb 100644 --- a/packages/events/package.json +++ b/packages/events/package.json @@ -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": { diff --git a/packages/events/src/EventDispatcher.ts b/packages/events/src/EventDispatcher.ts index a3bdc841..086383d1 100644 --- a/packages/events/src/EventDispatcher.ts +++ b/packages/events/src/EventDispatcher.ts @@ -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) diff --git a/packages/events/src/session/RoomSessionPetPackageEvent.ts b/packages/events/src/session/RoomSessionPetPackageEvent.ts index 8f751eab..61cab408 100644 --- a/packages/events/src/session/RoomSessionPetPackageEvent.ts +++ b/packages/events/src/session/RoomSessionPetPackageEvent.ts @@ -14,7 +14,7 @@ export class RoomSessionPetPackageEvent extends RoomSessionEvent constructor(petPackageName: string, session: IRoomSession, objectId: number, figureData: PetFigureData, nameValidationStatus: number, nameValidationInfo: string) { super(petPackageName, session); - + this._objectId = objectId; this._figureData = figureData; this._nameValidationStatus = nameValidationStatus; diff --git a/packages/events/tsconfig.json b/packages/events/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/events/tsconfig.json +++ b/packages/events/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/localization/.eslintrc.json b/packages/localization/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/localization/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/localization/package.json b/packages/localization/package.json index e86ded7f..1c614913 100644 --- a/packages/localization/package.json +++ b/packages/localization/package.json @@ -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" diff --git a/packages/localization/tsconfig.json b/packages/localization/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/localization/tsconfig.json +++ b/packages/localization/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/room/.eslintrc.json b/packages/room/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/room/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/room/package.json b/packages/room/package.json index fcfcb78c..93f406f2 100644 --- a/packages/room/package.json +++ b/packages/room/package.json @@ -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" diff --git a/packages/room/src/RoomEngine.ts b/packages/room/src/RoomEngine.ts index cbc58ef6..734a3758 100644 --- a/packages/room/src/RoomEngine.ts +++ b/packages/room/src/RoomEngine.ts @@ -63,14 +63,9 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService private _mouseCursorUpdate: boolean = false; private _badgeListenerObjects: Map = new Map(); - constructor() - { - this.onBadgeImageReadyEvent = this.onBadgeImageReadyEvent.bind(this); - } - public async init(): Promise { - GetRoomObjectLogicFactory().registerEventFunction(this.processRoomObjectEvent.bind(this)); + GetRoomObjectLogicFactory().registerEventFunction(event => this.processRoomObjectEvent(event)); GetEventDispatcher().addEventListener(RoomSessionEvent.STARTED, event => this.onRoomSessionEvent(event)); GetEventDispatcher().addEventListener(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--; diff --git a/packages/room/src/RoomManager.ts b/packages/room/src/RoomManager.ts index c4f00bc8..15738ec3 100644 --- a/packages/room/src/RoomManager.ts +++ b/packages/room/src/RoomManager.ts @@ -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 { 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); diff --git a/packages/room/src/RoomObjectEventHandler.ts b/packages/room/src/RoomObjectEventHandler.ts index 3a4c08b9..9d6c2a3d 100644 --- a/packages/room/src/RoomObjectEventHandler.ts +++ b/packages/room/src/RoomObjectEventHandler.ts @@ -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 diff --git a/packages/room/src/RoomPreviewer.ts b/packages/room/src/RoomPreviewer.ts index c7c02da2..3f49af84 100644 --- a/packages/room/src/RoomPreviewer.ts +++ b/packages/room/src/RoomPreviewer.ts @@ -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); diff --git a/packages/room/src/object/RoomObjectModel.ts b/packages/room/src/object/RoomObjectModel.ts index bc7a2ff7..7a862f84 100644 --- a/packages/room/src/object/RoomObjectModel.ts +++ b/packages/room/src/object/RoomObjectModel.ts @@ -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++; } diff --git a/packages/room/src/object/RoomPlaneParser.ts b/packages/room/src/object/RoomPlaneParser.ts index da5602e6..01743282 100644 --- a/packages/room/src/object/RoomPlaneParser.ts +++ b/packages/room/src/object/RoomPlaneParser.ts @@ -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 _local_2: RoomPlaneData = (this._planes[k] as RoomPlaneData); - if(_local_2 != null) - { - _local_3 = []; - _local_4 = 0; - while(_local_4 < _local_2.secondaryNormalCount) + const normals: IVector3D[] = []; + let i = 0; + + while(i < planes.secondaryNormalCount) { - _local_3.push(_local_2.getSecondaryNormal(_local_4)); - _local_4++; + normals.push(planes.getSecondaryNormal(i)); + + i++; } - return _local_3; + + return normals; } + return null; } diff --git a/packages/room/src/object/visualization/data/PetSizeData.ts b/packages/room/src/object/visualization/data/PetSizeData.ts index eb2b16f3..4c4106f3 100644 --- a/packages/room/src/object/visualization/data/PetSizeData.ts +++ b/packages/room/src/object/visualization/data/PetSizeData.ts @@ -8,7 +8,7 @@ export class PetSizeData extends AnimationSizeData private _posturesToAnimations: Map = new Map(); private _gesturesToAnimations: Map = new Map(); private _defaultPosture: string = null; - + public processPostures(postures: { defaultPosture?: string, postures: IAssetPosture[] }): boolean { if(!postures) return false; diff --git a/packages/room/src/object/visualization/data/SizeData.ts b/packages/room/src/object/visualization/data/SizeData.ts index bfd19537..dc5e8097 100644 --- a/packages/room/src/object/visualization/data/SizeData.ts +++ b/packages/room/src/object/visualization/data/SizeData.ts @@ -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; diff --git a/packages/room/src/object/visualization/furniture/FurnitureFireworksVisualization.ts b/packages/room/src/object/visualization/furniture/FurnitureFireworksVisualization.ts index 1521060c..b2d3f5ff 100644 --- a/packages/room/src/object/visualization/furniture/FurnitureFireworksVisualization.ts +++ b/packages/room/src/object/visualization/furniture/FurnitureFireworksVisualization.ts @@ -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(); diff --git a/packages/room/src/object/visualization/furniture/FurnitureVisualizationData.ts b/packages/room/src/object/visualization/furniture/FurnitureVisualizationData.ts index e64004d9..f58d6bdc 100644 --- a/packages/room/src/object/visualization/furniture/FurnitureVisualizationData.ts +++ b/packages/room/src/object/visualization/furniture/FurnitureVisualizationData.ts @@ -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]; diff --git a/packages/room/src/object/visualization/room/RoomVisualization.ts b/packages/room/src/object/visualization/room/RoomVisualization.ts index 883fe5df..4c6e7321 100644 --- a/packages/room/src/object/visualization/room/RoomVisualization.ts +++ b/packages/room/src/object/visualization/room/RoomVisualization.ts @@ -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; diff --git a/packages/room/src/renderer/RoomRenderer.ts b/packages/room/src/renderer/RoomRenderer.ts index dd6f0c4f..8eedaf05 100644 --- a/packages/room/src/renderer/RoomRenderer.ts +++ b/packages/room/src/renderer/RoomRenderer.ts @@ -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) { diff --git a/packages/room/src/renderer/RoomSpriteCanvas.ts b/packages/room/src/renderer/RoomSpriteCanvas.ts index 00dc6f58..aa59bce5 100644 --- a/packages/room/src/renderer/RoomSpriteCanvas.ts +++ b/packages/room/src/renderer/RoomSpriteCanvas.ts @@ -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 diff --git a/packages/room/src/renderer/utils/ExtendedSprite.ts b/packages/room/src/renderer/utils/ExtendedSprite.ts index 28b6a31b..14c991ed 100644 --- a/packages/room/src/renderer/utils/ExtendedSprite.ts +++ b/packages/room/src/renderer/utils/ExtendedSprite.ts @@ -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; diff --git a/packages/room/tsconfig.json b/packages/room/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/room/tsconfig.json +++ b/packages/room/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/session/.eslintrc.json b/packages/session/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/session/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/session/package.json b/packages/session/package.json index 31f9fab4..d335302b 100644 --- a/packages/session/package.json +++ b/packages/session/package.json @@ -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" diff --git a/packages/session/src/SessionDataManager.ts b/packages/session/src/SessionDataManager.ts index ee93e7ef..c286ef47 100644 --- a/packages/session/src/SessionDataManager.ts +++ b/packages/session/src/SessionDataManager.ts @@ -50,8 +50,6 @@ export class SessionDataManager implements ISessionDataManager constructor() { this.resetUserInfo(); - - this.onNitroSettingsEvent = this.onNitroSettingsEvent.bind(this); } public async init(): Promise @@ -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.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); diff --git a/packages/session/src/furniture/FurnitureData.ts b/packages/session/src/furniture/FurnitureData.ts index 3b43f155..b27e29eb 100644 --- a/packages/session/src/furniture/FurnitureData.ts +++ b/packages/session/src/furniture/FurnitureData.ts @@ -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; } diff --git a/packages/session/tsconfig.json b/packages/session/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/session/tsconfig.json +++ b/packages/session/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/sound/.eslintrc.json b/packages/sound/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/sound/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/sound/package.json b/packages/sound/package.json index bd8c5a2e..44fca8bd 100644 --- a/packages/sound/package.json +++ b/packages/sound/package.json @@ -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" diff --git a/packages/sound/src/common/SongDataEntry.ts b/packages/sound/src/common/SongDataEntry.ts index 0e74bd54..1df568bd 100644 --- a/packages/sound/src/common/SongDataEntry.ts +++ b/packages/sound/src/common/SongDataEntry.ts @@ -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 { diff --git a/packages/sound/tsconfig.json b/packages/sound/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/sound/tsconfig.json +++ b/packages/sound/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/packages/utils/.eslintrc.json b/packages/utils/.eslintrc.json deleted file mode 100644 index ad921331..00000000 --- a/packages/utils/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": [ "@nitrots/eslint-config" ] -} diff --git a/packages/utils/package.json b/packages/utils/package.json index a749955e..85a23708 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -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", diff --git a/packages/utils/src/NitroVersion.ts b/packages/utils/src/NitroVersion.ts index 9cf4590b..09f73c08 100644 --- a/packages/utils/src/NitroVersion.ts +++ b/packages/utils/src/NitroVersion.ts @@ -1,4 +1,3 @@ - export class NitroVersion { public static RENDERER_VERSION: string = '2.0.0'; diff --git a/packages/utils/src/motion/Motions.ts b/packages/utils/src/motion/Motions.ts index 92c7242f..845fd1c2 100644 --- a/packages/utils/src/motion/Motions.ts +++ b/packages/utils/src/motion/Motions.ts @@ -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); } } diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 5e8757d0..7865c294 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -25,7 +25,5 @@ "ESNext" ], "module": "ES6" - }, - "include": [ - "src" ] + } } diff --git a/src/DevTools.ts b/src/DevTools.ts index ad972b86..db9fa0f4 100644 --- a/src/DevTools.ts +++ b/src/DevTools.ts @@ -20,6 +20,6 @@ declare global window.NitroDevTools = { roomEngine: () => GetRoomEngine(), textureCache: () => GetRenderer().texture.managedTextures, - texturePool: () => GetTexturePool().textures, - textureGC: () => GetRenderer().textureGC + texturePool: () => GetTexturePool().textures, + textureGC: () => GetRenderer().textureGC }; diff --git a/tsconfig.json b/tsconfig.json index eceefbc2..c6b52f87 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -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" + } } diff --git a/yarn.lock b/yarn.lock index 124a000a..74b4ebf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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"