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

View File

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

View File

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

View File

@ -5,7 +5,7 @@ import { IRoomCameraWidgetSelectedEffect } from './IRoomCameraWidgetSelectedEffe
export interface IRoomCameraWidgetManager export interface IRoomCameraWidgetManager
{ {
init(): Promise<void>; 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>; effects: Map<string, IRoomCameraWidgetEffect>;
isLoaded: boolean; isLoaded: boolean;
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -135,7 +135,19 @@ export class AvatarActionManager
validatedActions.push(action); 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; return validatedActions;
} }
@ -169,18 +181,4 @@ export class AvatarActionManager
return activeActions; 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 public toString(): string
{ {
return ((((this._id + ': ') + this.location) + ' - ') + this.transformedLocation); return `${this._id}: ${this.location.toString()} - ${this.transformedLocation.toString()}`;
} }
public get isDynamic(): boolean public get isDynamic(): boolean

View File

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

View File

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

View File

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

View File

@ -3,19 +3,13 @@ import { GetAssetManager } from '@nitrots/assets';
import { GetConfiguration } from '@nitrots/configuration'; import { GetConfiguration } from '@nitrots/configuration';
import { GetEventDispatcher, RoomCameraWidgetManagerEvent } from '@nitrots/events'; import { GetEventDispatcher, RoomCameraWidgetManagerEvent } from '@nitrots/events';
import { TextureUtils } from '@nitrots/utils'; 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'; import { RoomCameraWidgetEffect } from './RoomCameraWidgetEffect';
export class RoomCameraWidgetManager implements IRoomCameraWidgetManager export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
{ {
private _effects: Map<string, IRoomCameraWidgetEffect>; private _effects: Map<string, IRoomCameraWidgetEffect> = new Map();
private _isLoaded: boolean; private _isLoaded: boolean = false;
constructor()
{
this._effects = new Map();
this._isLoaded = false;
}
public async init(): Promise<void> public async init(): Promise<void>
{ {
@ -52,7 +46,7 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
GetEventDispatcher().dispatchEvent(new RoomCameraWidgetManagerEvent(RoomCameraWidgetManagerEvent.INITIALIZED)); 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 container = new Container();
const sprite = new Sprite(texture); const sprite = new Sprite(texture);
@ -61,7 +55,34 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
if(isZoomed) sprite.scale.set(2); 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; const effect = selectedEffect.effect;
@ -69,26 +90,24 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
if(effect.colorMatrix) if(effect.colorMatrix)
{ {
const filter = new ColorMatrixFilter(); const filter = getColorMatrixFilter(effect.colorMatrix, false, selectedEffect.strength);
filter.matrix = effect.colorMatrix; filters.push(filter);
filter.alpha = selectedEffect.alpha;
if(!Array.isArray(sprite.filters)) sprite.filters = [];
sprite.filters.push(filter);
} }
else else
{ {
const effectSprite = new Sprite(effect.texture); const effectSprite = new Sprite(effect.texture);
effectSprite.alpha = selectedEffect.alpha;
effectSprite.alpha = selectedEffect.strength;
effectSprite.blendMode = effect.blendMode; effectSprite.blendMode = effect.blendMode;
container.addChild(effectSprite); container.addChild(effectSprite);
} }
} }
return await TextureUtils.generateImage(container); container.filters = filters;
return await TextureUtils.generateImage(sprite);
} }
public get effects(): Map<string, IRoomCameraWidgetEffect> public get effects(): Map<string, IRoomCameraWidgetEffect>

View File

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

View File

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

View File

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

View File

@ -5,13 +5,11 @@
"type": "module", "type": "module",
"license": "GPL-3.0", "license": "GPL-3.0",
"scripts": { "scripts": {
"compile": "tsc --project ./tsconfig.json --noEmit false", "compile": "tsc --project ./tsconfig.json --noEmit false"
"eslint": "eslint ./src --fix"
}, },
"main": "./index", "main": "./index",
"dependencies": { "dependencies": {
"@nitrots/api": "1.0.0", "@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/events": "1.0.0", "@nitrots/events": "1.0.0",
"@nitrots/utils": "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 export class CatalogPageMessageProductData
{ {
public static I: string = 'i'; private _productType: FurnitureType;
public static S: string = 's';
public static E: string = 'e';
public static B: string = 'b';
private _productType: string;
private _furniClassId: number; private _furniClassId: number;
private _extraParam: string; private _extraParam: string;
private _productCount: number; private _productCount: number;
@ -38,11 +33,11 @@ export class CatalogPageMessageProductData
public parse(wrapper: IMessageDataWrapper): boolean public parse(wrapper: IMessageDataWrapper): boolean
{ {
this._productType = wrapper.readString(); this._productType = wrapper.readString().toUpperCase() as FurnitureType;
switch(this._productType) switch(this._productType)
{ {
case CatalogPageMessageProductData.B: case FurnitureType.BADGE:
this._extraParam = wrapper.readString(); this._extraParam = wrapper.readString();
this._productCount = 1; this._productCount = 1;
return true; return true;
@ -57,11 +52,12 @@ export class CatalogPageMessageProductData
this._uniqueLimitedItemSeriesSize = wrapper.readInt(); this._uniqueLimitedItemSeriesSize = wrapper.readInt();
this._uniqueLimitedItemsLeft = wrapper.readInt(); this._uniqueLimitedItemsLeft = wrapper.readInt();
} }
return true; return true;
} }
} }
public get productType(): string public get productType(): FurnitureType
{ {
return this._productType; return this._productType;
} }

View File

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

View File

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

View File

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

View File

@ -65,7 +65,7 @@ export class ConfigurationManager implements IConfigurationManager
{ {
let value = data[key]; 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)) if(this._definitions.has(key))
{ {

View File

@ -25,7 +25,5 @@
"ESNext" "ESNext"
], ],
"module": "ES6" "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", "type": "module",
"license": "GPL-3.0", "license": "GPL-3.0",
"scripts": { "scripts": {
"build": "vite build", "compile": "tsc --project ./tsconfig.json --noEmit false"
"compile": "tsc --project ./tsconfig.json --noEmit false",
"eslint": "eslint ./src --fix"
}, },
"main": "./index", "main": "./index",
"dependencies": { "dependencies": {
"@nitrots/api": "1.0.0", "@nitrots/api": "1.0.0",
"@nitrots/eslint-config": "1.0.0",
"@nitrots/utils": "1.0.0" "@nitrots/utils": "1.0.0"
}, },
"devDependencies": { "devDependencies": {

View File

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

View File

@ -14,7 +14,7 @@ export class RoomSessionPetPackageEvent extends RoomSessionEvent
constructor(petPackageName: string, session: IRoomSession, objectId: number, figureData: PetFigureData, nameValidationStatus: number, nameValidationInfo: string) constructor(petPackageName: string, session: IRoomSession, objectId: number, figureData: PetFigureData, nameValidationStatus: number, nameValidationInfo: string)
{ {
super(petPackageName, session); super(petPackageName, session);
this._objectId = objectId; this._objectId = objectId;
this._figureData = figureData; this._figureData = figureData;
this._nameValidationStatus = nameValidationStatus; this._nameValidationStatus = nameValidationStatus;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -63,14 +63,9 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
private _mouseCursorUpdate: boolean = false; private _mouseCursorUpdate: boolean = false;
private _badgeListenerObjects: Map<string, RoomObjectBadgeImageAssetListener[]> = new Map(); private _badgeListenerObjects: Map<string, RoomObjectBadgeImageAssetListener[]> = new Map();
constructor()
{
this.onBadgeImageReadyEvent = this.onBadgeImageReadyEvent.bind(this);
}
public async init(): Promise<void> 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.STARTED, event => this.onRoomSessionEvent(event));
GetEventDispatcher().addEventListener<RoomSessionEvent>(RoomSessionEvent.ENDED, 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) 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); let listeners = this._badgeListenerObjects.get(badgeId);
@ -2123,31 +2143,6 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
roomObject.logic.processUpdateMessage(new ObjectGroupBadgeUpdateMessage(badgeId, badgeName)); 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 private putBadgeInObjectAssets(object: IRoomObjectController, badgeId: string, groupBadge: boolean = false): void
{ {
const badgeName = (groupBadge) ? this._sessionDataManager.loadGroupBadgeImage(badgeId) : this._sessionDataManager.loadBadgeImage(badgeId); 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) while(index >= 0)
{ {
const child = (container.getChildAt(index) as Sprite); const child = (container.getChildAt(index));
if(child) if(child)
{ {
@ -3014,7 +3009,7 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
if(child.children.length) if(child.children.length)
{ {
const firstChild = (child.getChildAt(0) as Sprite); const firstChild = (child.getChildAt(0));
firstChild.parent.removeChild(firstChild); firstChild.parent.removeChild(firstChild);
@ -3039,11 +3034,11 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
while(index >= 0) while(index >= 0)
{ {
const child = (container.getChildAt(index) as Sprite); const child = (container.getChildAt(index));
if(child) if(child)
{ {
if(child.label === label) return child; if(child.label === label) return (child as Sprite);
} }
index--; index--;

View File

@ -17,18 +17,24 @@ export class RoomManager implements IRoomManager, IRoomInstanceContainer
private _pendingContentTypes: string[] = []; private _pendingContentTypes: string[] = [];
private _skipContentProcessing: boolean = false; private _skipContentProcessing: boolean = false;
constructor()
{
this.onRoomContentLoadedEvent = this.onRoomContentLoadedEvent.bind(this);
}
public async init(listener: IRoomManagerListener): Promise<void> public async init(listener: IRoomManagerListener): Promise<void>
{ {
this._listener = listener; this._listener = listener;
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_SUCCESS, this.onRoomContentLoadedEvent); const onRoomContentLoadedEvent = (event: RoomContentLoadedEvent) =>
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_FAILURE, this.onRoomContentLoadedEvent); {
GetEventDispatcher().addEventListener(RoomContentLoadedEvent.RCLE_CANCEL, this.onRoomContentLoadedEvent); 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 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 public update(time: number, update: boolean = false): void
{ {
this.processPendingContentTypes(time); this.processPendingContentTypes(time);

View File

@ -1955,17 +1955,17 @@ export class RoomObjectEventHandler implements IRoomCanvasMouseListener, IRoomOb
private placeObjectOnUser(roomId: number, objectId: number, category: number): void 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; 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 public setSelectedObject(roomId: number, objectId: number, category: number): void

View File

@ -36,7 +36,7 @@ export class RoomPreviewer
private _automaticStateChange: boolean; private _automaticStateChange: boolean;
private _previousAutomaticStateChangeTime: number; private _previousAutomaticStateChangeTime: number;
private _addViewOffset: Point; private _addViewOffset: Point;
private _backgroundColor: number = 305148561; private _backgroundColor: number = 0x000000;
private _backgroundSprite: Sprite = null; private _backgroundSprite: Sprite = null;
private _disableUpdate: boolean = false; private _disableUpdate: boolean = false;
@ -431,7 +431,7 @@ export class RoomPreviewer
{ {
if(this.isRoomEngineReady) 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)) if(displayObject && (this._backgroundColor !== null))
{ {
@ -446,7 +446,7 @@ export class RoomPreviewer
backgroundSprite.width = width; backgroundSprite.width = width;
backgroundSprite.height = height; backgroundSprite.height = height;
//backgroundSprite.tint = this._backgroundColor; backgroundSprite.tint = this._backgroundColor;
} }
this._roomEngine.setRoomInstanceRenderingCanvasMask(this._previewRoomId, RoomPreviewer.PREVIEW_CANVAS_ID, true); 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; if(this._map.get(key) === value) return;
} }
this._map.set(key, (value as T)); this._map.set(key, value);
this._updateCounter++; this._updateCounter++;
} }

View File

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

View File

@ -8,7 +8,7 @@ export class PetSizeData extends AnimationSizeData
private _posturesToAnimations: Map<string, number> = new Map(); private _posturesToAnimations: Map<string, number> = new Map();
private _gesturesToAnimations: Map<string, number> = new Map(); private _gesturesToAnimations: Map<string, number> = new Map();
private _defaultPosture: string = null; private _defaultPosture: string = null;
public processPostures(postures: { defaultPosture?: string, postures: IAssetPosture[] }): boolean public processPostures(postures: { defaultPosture?: string, postures: IAssetPosture[] }): boolean
{ {
if(!postures) return false; if(!postures) return false;

View File

@ -235,7 +235,7 @@ export class SizeData
public getLayerColor(layerId: number, colorId: number): number 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; if(!existing) return ColorData.DEFAULT_COLOR;

View File

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

View File

@ -70,7 +70,7 @@ export class FurnitureVisualizationData implements IObjectVisualizationData
{ {
if(!visualizations) return false; if(!visualizations) return false;
for(const visualizationId in visualizations) for(const visualizationId of Object.keys(visualizations))
{ {
const visualization = visualizations[visualizationId]; 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 { ToInt32, Vector3d } from '@nitrots/utils';
import { Rectangle, Texture } from 'pixi.js'; import { Rectangle, Texture } from 'pixi.js';
import { AlphaTolerance, IObjectVisualizationData, IPlaneVisualization, IRoomGeometry, IRoomObjectModel, IRoomObjectSprite, IRoomPlane, RoomObjectSpriteType, RoomObjectVariable } from '../../../../../api';
import { RoomMapData } from '../../RoomMapData'; import { RoomMapData } from '../../RoomMapData';
import { RoomMapMaskData } from '../../RoomMapMaskData'; import { RoomMapMaskData } from '../../RoomMapMaskData';
import { RoomPlaneBitmapMaskData } from '../../RoomPlaneBitmapMaskData'; import { RoomPlaneBitmapMaskData } from '../../RoomPlaneBitmapMaskData';
@ -13,16 +13,16 @@ import { RoomVisualizationData } from './RoomVisualizationData';
export class RoomVisualization extends RoomObjectSpriteVisualization implements IPlaneVisualization export class RoomVisualization extends RoomObjectSpriteVisualization implements IPlaneVisualization
{ {
public static FLOOR_COLOR: number = 0xFFFFFF; private static FLOOR_COLOR: number = 0xFFFFFF;
public static FLOOR_COLOR_LEFT: number = 0xDDDDDD; private static FLOOR_COLOR_LEFT: number = 0xDDDDDD;
public static FLOOR_COLOR_RIGHT: number = 0xBBBBBB; private static FLOOR_COLOR_RIGHT: number = 0xBBBBBB;
private static WALL_COLOR_TOP: number = 0xFFFFFF; private static WALL_COLOR_TOP: number = 0xFFFFFF;
private static WALL_COLOR_SIDE: number = 0xCCCCCC; private static WALL_COLOR_SIDE: number = 0xCCCCCC;
private static WALL_COLOR_BOTTOM: number = 0x999999; private static WALL_COLOR_BOTTOM: number = 0x999999;
private static WALL_COLOR_BORDER: number = 0x999999; private static WALL_COLOR_BORDER: number = 0x999999;
public static LANDSCAPE_COLOR_TOP: number = 0xFFFFFF; private static LANDSCAPE_COLOR_TOP: number = 0xFFFFFF;
public static LANDSCAPE_COLOR_SIDE: number = 0xCCCCCC; private static LANDSCAPE_COLOR_SIDE: number = 0xCCCCCC;
public static LANDSCAPE_COLOR_BOTTOM: number = 0x999999; private static LANDSCAPE_COLOR_BOTTOM: number = 0x999999;
private static ROOM_DEPTH_OFFSET: number = 1000; private static ROOM_DEPTH_OFFSET: number = 1000;
protected _data: RoomVisualizationData = null; 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 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) if(existing)
{ {

View File

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

View File

@ -1,6 +1,6 @@
import { AlphaTolerance } from '@nitrots/api'; import { AlphaTolerance } from '@nitrots/api';
import { GetRenderer, TextureUtils } from '@nitrots/utils'; 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; const BYTES_PER_PIXEL = 4;
@ -92,12 +92,12 @@ export class ExtendedSprite extends Sprite
pixels = TextureUtils.getPixels(new Texture(textureSource))?.pixels ?? null; 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); pixels = new Uint8ClampedArray(BYTES_PER_PIXEL * width * height);
const renderTarget = renderer.renderTarget.getRenderTarget(textureSource); const renderTarget = renderer.renderTarget.getRenderTarget(textureSource);
const glRenderTarget = renderer.renderTarget.getGpuRenderTarget(renderTarget) as GlRenderTarget; const glRenderTarget = renderer.renderTarget.getGpuRenderTarget(renderTarget);
const gl = renderer.gl; const gl = renderer.gl;

View File

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

View File

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

View File

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

View File

@ -50,8 +50,6 @@ export class SessionDataManager implements ISessionDataManager
constructor() constructor()
{ {
this.resetUserInfo(); this.resetUserInfo();
this.onNitroSettingsEvent = this.onNitroSettingsEvent.bind(this);
} }
public async init(): Promise<void> 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 AccountSafetyLockStatusChangeMessageEvent(this.onAccountSafetyLockStatusChangeMessageEvent.bind(this)));
GetCommunication().registerMessageEvent(new EmailStatusResultEvent(this.onEmailStatus.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 private resetUserInfo(): void
@ -256,14 +260,6 @@ export class SessionDataManager implements ISessionDataManager
this._isEmailVerified = event?.getParser()?.isVerified ?? false; 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 public getFloorItemData(id: number): IFurnitureData
{ {
const existing = this._floorItems.get(id); 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 export class FurnitureData implements IFurnitureData
{ {
private _type: string; private _type: FurnitureType;
private _id: number; private _id: number;
private _className: string; private _className: string;
private _fullName: string; private _fullName: string;
@ -32,7 +32,7 @@ export class FurnitureData implements IFurnitureData
private _environment: string; private _environment: string;
private _rare: boolean; 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._type = type;
this._id = id; this._id = id;
@ -65,7 +65,7 @@ export class FurnitureData implements IFurnitureData
this._rare = rare; this._rare = rare;
} }
public get type(): string public get type(): FurnitureType
{ {
return this._type; return this._type;
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -165,7 +165,7 @@ export class Motions
{ {
if(!Motions._TIMER) 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" "ESNext"
], ],
"module": "ES6" "module": "ES6"
}, }
"include": [
"src" ]
} }

View File

@ -20,6 +20,6 @@ declare global
window.NitroDevTools = { window.NitroDevTools = {
roomEngine: () => GetRoomEngine(), roomEngine: () => GetRoomEngine(),
textureCache: () => GetRenderer().texture.managedTextures, textureCache: () => GetRenderer().texture.managedTextures,
texturePool: () => GetTexturePool().textures, texturePool: () => GetTexturePool().textures,
textureGC: () => GetRenderer().textureGC textureGC: () => GetRenderer().textureGC
}; };

View File

@ -18,14 +18,12 @@
"noEmit": true, "noEmit": true,
"strict": false, "strict": false,
"strictNullChecks": false, "strictNullChecks": false,
"target": "ES6", "target": "ES2022",
"lib": [ "lib": [
"DOM", "DOM",
"DOM.Iterable", "DOM.Iterable",
"ESNext" "ESNext"
], ],
"module": "ES6" "module": "ES2022"
}, }
"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" ]
} }

425
yarn.lock
View File

@ -129,49 +129,54 @@
dependencies: dependencies:
eslint-visitor-keys "^3.3.0" 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" version "4.10.0"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
"@eslint/eslintrc@^2.1.4": "@eslint/config-array@^0.16.0":
version "2.1.4" version "0.16.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.16.0.tgz#bb3364fc39ee84ec3a62abdc4b8d988d99dfd706"
integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== 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: dependencies:
ajv "^6.12.4" ajv "^6.12.4"
debug "^4.3.2" debug "^4.3.2"
espree "^9.6.0" espree "^10.0.1"
globals "^13.19.0" globals "^14.0.0"
ignore "^5.2.0" ignore "^5.2.0"
import-fresh "^3.2.1" import-fresh "^3.2.1"
js-yaml "^4.1.0" js-yaml "^4.1.0"
minimatch "^3.1.2" minimatch "^3.1.2"
strip-json-comments "^3.1.1" strip-json-comments "^3.1.1"
"@eslint/js@8.57.0": "@eslint/js@9.5.0", "@eslint/js@^9.5.0":
version "8.57.0" version "9.5.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.5.0.tgz#0e9c24a670b8a5c86bff97b40be13d8d8f238045"
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== integrity sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==
"@humanwhocodes/config-array@^0.11.14": "@eslint/object-schema@^2.1.4":
version "0.11.14" version "2.1.4"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843"
integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==
dependencies:
"@humanwhocodes/object-schema" "^2.0.2"
debug "^4.3.1"
minimatch "^3.0.5"
"@humanwhocodes/module-importer@^1.0.1": "@humanwhocodes/module-importer@^1.0.1":
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
"@humanwhocodes/object-schema@^2.0.2": "@humanwhocodes/retry@^0.3.0":
version "2.0.2" version "0.3.0"
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570"
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==
"@nodelib/fs.scandir@2.1.5": "@nodelib/fs.scandir@2.1.5":
version "2.1.5" version "2.1.5"
@ -296,121 +301,133 @@
resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-2.1.4.tgz#5811d7d333048f5a7573b22ddc84923e69596da6" resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-2.1.4.tgz#5811d7d333048f5a7573b22ddc84923e69596da6"
integrity sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ== 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" version "1.0.5"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== 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": "@types/howler@^2.2.11":
version "2.2.11" version "2.2.11"
resolved "https://registry.yarnpkg.com/@types/howler/-/howler-2.2.11.tgz#a75c4ab5666aee5fcfbd5de15d35dbaaa3d3f070" resolved "https://registry.yarnpkg.com/@types/howler/-/howler-2.2.11.tgz#a75c4ab5666aee5fcfbd5de15d35dbaaa3d3f070"
integrity sha512-7aBoUL6RbSIrqKnpEgfa1wSNUBK06mn08siP2QI0zYk7MXfEJAaORc4tohamQYqCqVESoDyRWSdQn2BOKWj2Qw== integrity sha512-7aBoUL6RbSIrqKnpEgfa1wSNUBK06mn08siP2QI0zYk7MXfEJAaORc4tohamQYqCqVESoDyRWSdQn2BOKWj2Qw==
"@types/json-schema@^7.0.12": "@types/json-schema@*":
version "7.0.15" version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== 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": "@types/pako@^2.0.3":
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.3.tgz#b6993334f3af27c158f3fe0dfeeba987c578afb1" resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.3.tgz#b6993334f3af27c158f3fe0dfeeba987c578afb1"
integrity sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q== integrity sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==
"@types/semver@^7.5.0": "@typescript-eslint/eslint-plugin@7.13.1":
version "7.5.8" version "7.13.1"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz#cdc521c8bca38b55585cf30db787fb2abad3f9fd"
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== integrity sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==
"@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==
dependencies: dependencies:
"@eslint-community/regexpp" "^4.5.1" "@eslint-community/regexpp" "^4.10.0"
"@typescript-eslint/scope-manager" "7.1.1" "@typescript-eslint/scope-manager" "7.13.1"
"@typescript-eslint/type-utils" "7.1.1" "@typescript-eslint/type-utils" "7.13.1"
"@typescript-eslint/utils" "7.1.1" "@typescript-eslint/utils" "7.13.1"
"@typescript-eslint/visitor-keys" "7.1.1" "@typescript-eslint/visitor-keys" "7.13.1"
debug "^4.3.4"
graphemer "^1.4.0" graphemer "^1.4.0"
ignore "^5.2.4" ignore "^5.3.1"
natural-compare "^1.4.0" natural-compare "^1.4.0"
semver "^7.5.4" ts-api-utils "^1.3.0"
ts-api-utils "^1.0.1"
"@typescript-eslint/parser@^7.1.1": "@typescript-eslint/parser@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.1.1.tgz#6a9d0a5c9ccdf5dbd3cb8c949728c64e24e07d1f" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.1.tgz#fac57811b3e519185f7259bac312291f7b9c4e72"
integrity sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ== integrity sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==
dependencies: dependencies:
"@typescript-eslint/scope-manager" "7.1.1" "@typescript-eslint/scope-manager" "7.13.1"
"@typescript-eslint/types" "7.1.1" "@typescript-eslint/types" "7.13.1"
"@typescript-eslint/typescript-estree" "7.1.1" "@typescript-eslint/typescript-estree" "7.13.1"
"@typescript-eslint/visitor-keys" "7.1.1" "@typescript-eslint/visitor-keys" "7.13.1"
debug "^4.3.4" debug "^4.3.4"
"@typescript-eslint/scope-manager@7.1.1": "@typescript-eslint/scope-manager@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz#9e301803ff8e21a74f50c6f89a4baccad9a48f93" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz#c08041206904bf36f0e6997efdb0ca775e0c452e"
integrity sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA== integrity sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==
dependencies: dependencies:
"@typescript-eslint/types" "7.1.1" "@typescript-eslint/types" "7.13.1"
"@typescript-eslint/visitor-keys" "7.1.1" "@typescript-eslint/visitor-keys" "7.13.1"
"@typescript-eslint/type-utils@7.1.1": "@typescript-eslint/type-utils@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.1.1.tgz#aee820d5bedd39b83c18585a526cc520ddb7a226" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz#63bec3f1fb43cf0bc409cbdb88ef96d118ca8632"
integrity sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g== integrity sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==
dependencies: dependencies:
"@typescript-eslint/typescript-estree" "7.1.1" "@typescript-eslint/typescript-estree" "7.13.1"
"@typescript-eslint/utils" "7.1.1" "@typescript-eslint/utils" "7.13.1"
debug "^4.3.4" debug "^4.3.4"
ts-api-utils "^1.0.1" ts-api-utils "^1.3.0"
"@typescript-eslint/types@7.1.1": "@typescript-eslint/types@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.1.1.tgz#ca33ba7cf58224fb46a84fea62593c2c53cd795f" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.1.tgz#787db283bd0b58751094c90d5b58bbf5e9fc9bd8"
integrity sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q== integrity sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==
"@typescript-eslint/typescript-estree@7.1.1": "@typescript-eslint/typescript-estree@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz#09c54af0151a1b05d0875c0fc7fe2ec7a2476ece" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz#3412841b130e070db2f675e3d9b8cb1ae49e1c3f"
integrity sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw== integrity sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==
dependencies: dependencies:
"@typescript-eslint/types" "7.1.1" "@typescript-eslint/types" "7.13.1"
"@typescript-eslint/visitor-keys" "7.1.1" "@typescript-eslint/visitor-keys" "7.13.1"
debug "^4.3.4" debug "^4.3.4"
globby "^11.1.0" globby "^11.1.0"
is-glob "^4.0.3" is-glob "^4.0.3"
minimatch "9.0.3" minimatch "^9.0.4"
semver "^7.5.4" semver "^7.6.0"
ts-api-utils "^1.0.1" ts-api-utils "^1.3.0"
"@typescript-eslint/utils@7.1.1": "@typescript-eslint/utils@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.1.1.tgz#bdeeb789eee4af5d3fb5400a69566d4dbf97ff3b" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.13.1.tgz#611083379caa0d3a2c09d126c65065a3e4337ba2"
integrity sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg== integrity sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==
dependencies: dependencies:
"@eslint-community/eslint-utils" "^4.4.0" "@eslint-community/eslint-utils" "^4.4.0"
"@types/json-schema" "^7.0.12" "@typescript-eslint/scope-manager" "7.13.1"
"@types/semver" "^7.5.0" "@typescript-eslint/types" "7.13.1"
"@typescript-eslint/scope-manager" "7.1.1" "@typescript-eslint/typescript-estree" "7.13.1"
"@typescript-eslint/types" "7.1.1"
"@typescript-eslint/typescript-estree" "7.1.1"
semver "^7.5.4"
"@typescript-eslint/visitor-keys@7.1.1": "@typescript-eslint/visitor-keys@7.13.1":
version "7.1.1" version "7.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz#e6538a58c9b157f03bcbb29e3b6a92fe39a6ab0d" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz#9c229a795a919db61f2d7f2337ef584ac05fbe96"
integrity sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ== integrity sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==
dependencies: dependencies:
"@typescript-eslint/types" "7.1.1" "@typescript-eslint/types" "7.13.1"
eslint-visitor-keys "^3.4.1" eslint-visitor-keys "^3.4.3"
"@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==
"@webgpu/types@^0.1.40": "@webgpu/types@^0.1.40":
version "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" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.9.0: acorn@^8.11.3:
version "8.11.3" version "8.11.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
@ -549,13 +566,6 @@ dir-glob@^3.0.1:
dependencies: dependencies:
path-type "^4.0.0" 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: earcut@^2.2.4:
version "2.2.4" version "2.2.4"
resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" 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" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-scope@^7.2.2: eslint-scope@^8.0.1:
version "7.2.2" version "8.0.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc"
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==
dependencies: dependencies:
esrecurse "^4.3.0" esrecurse "^4.3.0"
estraverse "^5.2.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" version "3.4.3"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" 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== integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint@^8.57.0: eslint-visitor-keys@^4.0.0:
version "8.57.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== 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: dependencies:
"@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.6.1" "@eslint-community/regexpp" "^4.6.1"
"@eslint/eslintrc" "^2.1.4" "@eslint/config-array" "^0.16.0"
"@eslint/js" "8.57.0" "@eslint/eslintrc" "^3.1.0"
"@humanwhocodes/config-array" "^0.11.14" "@eslint/js" "9.5.0"
"@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.3.0"
"@nodelib/fs.walk" "^1.2.8" "@nodelib/fs.walk" "^1.2.8"
"@ungap/structured-clone" "^1.2.0"
ajv "^6.12.4" ajv "^6.12.4"
chalk "^4.0.0" chalk "^4.0.0"
cross-spawn "^7.0.2" cross-spawn "^7.0.2"
debug "^4.3.2" debug "^4.3.2"
doctrine "^3.0.0"
escape-string-regexp "^4.0.0" escape-string-regexp "^4.0.0"
eslint-scope "^7.2.2" eslint-scope "^8.0.1"
eslint-visitor-keys "^3.4.3" eslint-visitor-keys "^4.0.0"
espree "^9.6.1" espree "^10.0.1"
esquery "^1.4.2" esquery "^1.5.0"
esutils "^2.0.2" esutils "^2.0.2"
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1" file-entry-cache "^8.0.0"
find-up "^5.0.0" find-up "^5.0.0"
glob-parent "^6.0.2" glob-parent "^6.0.2"
globals "^13.19.0"
graphemer "^1.4.0"
ignore "^5.2.0" ignore "^5.2.0"
imurmurhash "^0.1.4" imurmurhash "^0.1.4"
is-glob "^4.0.0" is-glob "^4.0.0"
is-path-inside "^3.0.3" is-path-inside "^3.0.3"
js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1" json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1" levn "^0.4.1"
lodash.merge "^4.6.2" lodash.merge "^4.6.2"
@ -652,16 +663,16 @@ eslint@^8.57.0:
strip-ansi "^6.0.1" strip-ansi "^6.0.1"
text-table "^0.2.0" text-table "^0.2.0"
espree@^9.6.0, espree@^9.6.1: espree@^10.0.1:
version "9.6.1" version "10.0.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f"
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==
dependencies: dependencies:
acorn "^8.9.0" acorn "^8.11.3"
acorn-jsx "^5.3.2" 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" version "1.5.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
@ -728,12 +739,12 @@ fastq@^1.6.0:
dependencies: dependencies:
reusify "^1.0.4" reusify "^1.0.4"
file-entry-cache@^6.0.1: file-entry-cache@^8.0.0:
version "6.0.1" version "8.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
dependencies: dependencies:
flat-cache "^3.0.4" flat-cache "^4.0.0"
fill-range@^7.0.1: fill-range@^7.0.1:
version "7.0.1" version "7.0.1"
@ -750,25 +761,19 @@ find-up@^5.0.0:
locate-path "^6.0.0" locate-path "^6.0.0"
path-exists "^4.0.0" path-exists "^4.0.0"
flat-cache@^3.0.4: flat-cache@^4.0.0:
version "3.2.0" version "4.0.1"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
dependencies: dependencies:
flatted "^3.2.9" flatted "^3.2.9"
keyv "^4.5.3" keyv "^4.5.4"
rimraf "^3.0.2"
flatted@^3.2.9: flatted@^3.2.9:
version "3.3.1" version "3.3.1"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== 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: fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3" version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
@ -793,24 +798,10 @@ glob-parent@^6.0.2:
dependencies: dependencies:
is-glob "^4.0.3" is-glob "^4.0.3"
glob@^7.1.3: globals@^14.0.0:
version "7.2.3" version "14.0.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
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"
globby@^11.1.0: globby@^11.1.0:
version "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" resolved "https://registry.yarnpkg.com/howler/-/howler-2.2.4.tgz#bd3df4a4f68a0118a51e4bd84a2bfc2e93e6e5a1"
integrity sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w== 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" version "5.3.1"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== 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" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 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: is-core-module@^2.13.0:
version "2.13.1" version "2.13.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" 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" 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== integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
keyv@^4.5.3: keyv@^4.5.4:
version "4.5.4" version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
@ -985,20 +963,20 @@ micromatch@^4.0.4:
braces "^3.0.2" braces "^3.0.2"
picomatch "^2.3.1" picomatch "^2.3.1"
minimatch@9.0.3: minimatch@^3.0.5, minimatch@^3.1.2:
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:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies: dependencies:
brace-expansion "^1.1.7" 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: ms@2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 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" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 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: optionator@^0.9.3:
version "0.9.3" version "0.9.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" 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" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 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: path-key@^3.1.0:
version "3.1.1" version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 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" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pixi-filters@^6.0.0: pixi-filters@^6.0.4:
version "6.0.0" version "6.0.4"
resolved "https://registry.yarnpkg.com/pixi-filters/-/pixi-filters-6.0.0.tgz#36f480f87b8f66b259db40acb7a6b134e570c473" resolved "https://registry.yarnpkg.com/pixi-filters/-/pixi-filters-6.0.4.tgz#e6a02730210ff438519d3a888a2fe1c8cdaa6c94"
integrity sha512-9wJn4bfQKak+lefyk9BSCenhMBvGQi2t4Uz+BVqw6WK8wM2NgqeTC64mhXRtrdYeCG9gIFX0Lc6q1S8rBqwJbg== integrity sha512-W9SjOTF4yo+v9t5YOBtsWhJoFLLRM6DsIk1C2YBNiQhdyX7J/5UIJtPlTMhZ7wQKoFUiyeUAaCzTEdmw/TVD6w==
dependencies:
"@types/gradient-parser" "^0.1.2"
pixi.js@^8.1.0: pixi.js@^8.1.6:
version "8.1.0" version "8.1.6"
resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-8.1.0.tgz#c1a6c81993f75bc13882e4570df0d51cc136965b" resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-8.1.6.tgz#5aaa9f480fea2a029974d8fd4074ba39e03058fc"
integrity sha512-qclFipWxKavNZoOE0QjGgEklbxjc1mpHf46adsxYLz7O7RnV44PPkq1J5Ssa6y1JxtYUX0fwbphoE/gz276glA== integrity sha512-FZT/dLZ9Tdw8eN6odgunSQHORsgHcvLlfOWm7cpR4ZxVGPRqFgDQ4hXpwVxeY9UK4PZtlJ4U910H1QZ4XNLJxg==
dependencies: dependencies:
"@pixi/colord" "^2.9.6" "@pixi/colord" "^2.9.6"
"@types/css-font-loading-module" "^0.0.12" "@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" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 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: rollup@^4.2.0:
version "4.12.1" version "4.12.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.1.tgz#0659cb02551cde4c5b210e9bd3af050b5b5b415d" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.1.tgz#0659cb02551cde4c5b210e9bd3af050b5b5b415d"
@ -1198,7 +1159,7 @@ run-parallel@^1.1.9:
dependencies: dependencies:
queue-microtask "^1.2.2" queue-microtask "^1.2.2"
semver@^7.5.4: semver@^7.6.0:
version "7.6.0" version "7.6.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
@ -1263,7 +1224,7 @@ to-regex-range@^5.0.1:
dependencies: dependencies:
is-number "^7.0.0" is-number "^7.0.0"
ts-api-utils@^1.0.1: ts-api-utils@^1.3.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
@ -1280,16 +1241,25 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies: dependencies:
prelude-ls "^1.2.1" prelude-ls "^1.2.1"
type-fest@^0.20.2: typescript-eslint@^7.13.1:
version "0.20.2" version "7.13.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.13.1.tgz#8bbcc4b59b6bb0c457505ee17a356b1868c3fcd5"
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 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: typescript@~5.4.2:
version "5.4.2" version "5.4.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372"
integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== 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: uri-js@^4.2.2:
version "4.4.1" version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@ -1315,11 +1285,6 @@ which@^2.0.1:
dependencies: dependencies:
isexe "^2.0.0" 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: yallist@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"