Merge branch 'feature/checkpoint-20260403'

This commit is contained in:
Lorenzune
2026-04-03 05:31:01 +02:00
60 changed files with 2325 additions and 881 deletions
@@ -23,9 +23,18 @@ export class AvatarAssetDownloadManager
this._structure = structure;
}
private static DEFAULT_MANDATORY_LIBS: string[] = ['hh_human_face'];
public async init(): Promise<void>
{
this._missingMandatoryLibs = GetConfiguration().getValue<string[]>('avatar.mandatory.libraries');
const configuredLibs = GetConfiguration().getValue<string[]>('avatar.mandatory.libraries') || [];
this._missingMandatoryLibs = [ ...configuredLibs ];
for(const lib of AvatarAssetDownloadManager.DEFAULT_MANDATORY_LIBS)
{
if(this._missingMandatoryLibs.indexOf(lib) === -1) this._missingMandatoryLibs.push(lib);
}
const url = GetConfiguration().getValue<string>('avatar.figuremap.url');
+2
View File
@@ -285,6 +285,8 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
const container = this.buildAvatarContainer(avatarCanvas, setType);
if(!container) return null;
GetRenderer().render({
target: this._activeTexture,
container: container,
@@ -241,6 +241,8 @@ export class AvatarRenderManager implements IAvatarRenderManager
const palette = figureData.getPalette(set.paletteID);
const colors = container.getPartColorIds(part);
if(!palette) continue;
for(const colorId of colors)
{
+244 -235
View File
@@ -37,18 +37,18 @@ export class AvatarStructure
}
public initGeometry(k: any): void
public initGeometry(data: any): void
{
if(!k) return;
if(!data) return;
this._geometry = new AvatarModelGeometry(k);
this._geometry = new AvatarModelGeometry(data);
}
public initActions(k: IAssetManager, _arg_2: any): void
public initActions(assets: IAssetManager, data: any): void
{
if(!_arg_2) return;
if(!data) return;
this._actionManager = new AvatarActionManager(k, _arg_2);
this._actionManager = new AvatarActionManager(assets, data);
this._defaultAction = this._actionManager.getDefaultAction();
}
@@ -59,11 +59,11 @@ export class AvatarStructure
this._defaultAction = this._actionManager.getDefaultAction();
}
public initPartSets(k: any): boolean
public initPartSets(data: any): boolean
{
if(!k) return false;
if(!data) return false;
if(this._partSetsData.parse(k))
if(this._partSetsData.parse(data))
{
this._partSetsData.getPartDefinition('ri').appendToFigure = true;
this._partSetsData.getPartDefinition('li').appendToFigure = true;
@@ -74,18 +74,18 @@ export class AvatarStructure
return false;
}
public initAnimation(k: any): boolean
public initAnimation(data: any): boolean
{
if(!k) return false;
if(!data) return false;
return this._animationData.parse(k);
return this._animationData.parse(data);
}
public initFigureData(k: IFigureData): boolean
public initFigureData(data: IFigureData): boolean
{
if(!k) return false;
if(!data) return false;
return this._figureData.parse(k);
return this._figureData.parse(data);
}
public injectFigureData(data: IFigureData): void
@@ -93,13 +93,13 @@ export class AvatarStructure
this._figureData.injectJSON(data);
}
public registerAnimations(k: IAssetManager, _arg_2: string = 'fx', _arg_3: number = 200): void
public registerAnimations(assets: IAssetManager, prefix: string = 'fx', maxCount: number = 200): void
{
let index = 0;
while(index < _arg_3)
while(index < maxCount)
{
const collection = k.getCollection((_arg_2 + index));
const collection = assets.getCollection((prefix + index));
if(collection)
{
@@ -117,21 +117,21 @@ export class AvatarStructure
this._animationManager.registerAnimation(this, data);
}
public getPartColor(container: IAvatarFigureContainer, _arg_2: string, _arg_3: number = 0): IPartColor
public getPartColor(figureContainer: IAvatarFigureContainer, partType: string, colorIndex: number = 0): IPartColor
{
const _local_4 = container.getPartColorIds(_arg_2);
const colorIds = figureContainer.getPartColorIds(partType);
if((!(_local_4)) || (_local_4.length < _arg_3)) return null;
if(!colorIds || (colorIds.length < colorIndex)) return null;
const _local_5 = this._figureData.getSetType(_arg_2);
const setType = this._figureData.getSetType(partType);
if(_local_5 == null) return null;
if(setType == null) return null;
const _local_6 = this._figureData.getPalette(_local_5.paletteID);
const palette = this._figureData.getPalette(setType.paletteID);
if(!_local_6) return null;
if(!palette) return null;
return _local_6.getColor(_local_4[_arg_3]);
return palette.getColor(colorIds[colorIndex]);
}
public getBodyPartData(animation: string, frameCount: number, spriteId: string): AvatarAnimationLayerData
@@ -139,98 +139,98 @@ export class AvatarStructure
return this._animationManager.getLayerData(animation, frameCount, spriteId) as AvatarAnimationLayerData;
}
public getAnimation(k: string): Animation
public getAnimation(name: string): Animation
{
return this._animationManager.getAnimation(k);
return this._animationManager.getAnimation(name);
}
public getActionDefinition(k: string): ActionDefinition
public getActionDefinition(id: string): ActionDefinition
{
return this._actionManager.getActionDefinition(k);
return this._actionManager.getActionDefinition(id);
}
public getActionDefinitionWithState(k: string): ActionDefinition
public getActionDefinitionWithState(state: string): ActionDefinition
{
return this._actionManager.getActionDefinitionWithState(k);
return this._actionManager.getActionDefinitionWithState(state);
}
public isMainAvatarSet(k: string): boolean
public isMainAvatarSet(setType: string): boolean
{
return this._geometry.isMainAvatarSet(k);
return this._geometry.isMainAvatarSet(setType);
}
public sortActions(k: IActiveActionData[]): IActiveActionData[]
public sortActions(actions: IActiveActionData[]): IActiveActionData[]
{
return this._actionManager.sortActions(k);
return this._actionManager.sortActions(actions);
}
public maxFrames(k: IActiveActionData[]): number
public maxFrames(actions: IActiveActionData[]): number
{
let _local_2 = 0;
let maxFrameCount = 0;
for(const _local_3 of k)
for(const action of actions)
{
_local_2 = Math.max(_local_2, this._animationData.getFrameCount(_local_3.definition));
}
return _local_2;
}
public getMandatorySetTypeIds(k: string, _arg_2: number): string[]
{
if(!this._mandatorySetTypeIds[k])
{
this._mandatorySetTypeIds[k] = [];
maxFrameCount = Math.max(maxFrameCount, this._animationData.getFrameCount(action.definition));
}
if(this._mandatorySetTypeIds[k][_arg_2])
return maxFrameCount;
}
public getMandatorySetTypeIds(gender: string, clubLevel: number): string[]
{
if(!this._mandatorySetTypeIds[gender])
{
return this._mandatorySetTypeIds[k][_arg_2];
this._mandatorySetTypeIds[gender] = [];
}
this._mandatorySetTypeIds[k][_arg_2] = this._figureData.getMandatorySetTypeIds(k, _arg_2);
return this._mandatorySetTypeIds[k][_arg_2];
}
public getDefaultPartSet(k: string, _arg_2: string): IFigurePartSet
{
return this._figureData.getDefaultPartSet(k, _arg_2);
}
public getCanvasOffsets(k: IActiveActionData[], _arg_2: string, _arg_3: number): number[]
{
return this._actionManager.getCanvasOffsets(k, _arg_2, _arg_3);
}
public getCanvas(k: string, _arg_2: string): AvatarCanvas
{
return this._geometry.getCanvas(k, _arg_2);
}
public removeDynamicItems(k: IAvatarImage): void
{
this._geometry.removeDynamicItems(k);
}
public getActiveBodyPartIds(k: IActiveActionData, _arg_2: IAvatarImage): string[]
{
let _local_3: string[] = [];
const _local_4: string[] = [];
const _local_5 = k.definition.geometryType;
if(k.definition.isAnimation)
if(this._mandatorySetTypeIds[gender][clubLevel])
{
const _local_7 = ((k.definition.state + '.') + k.actionParameter);
const _local_8 = this._animationManager.getAnimation(_local_7);
return this._mandatorySetTypeIds[gender][clubLevel];
}
if(_local_8)
this._mandatorySetTypeIds[gender][clubLevel] = this._figureData.getMandatorySetTypeIds(gender, clubLevel);
return this._mandatorySetTypeIds[gender][clubLevel];
}
public getDefaultPartSet(partType: string, gender: string): IFigurePartSet
{
return this._figureData.getDefaultPartSet(partType, gender);
}
public getCanvasOffsets(actions: IActiveActionData[], scale: string, direction: number): number[]
{
return this._actionManager.getCanvasOffsets(actions, scale, direction);
}
public getCanvas(scale: string, geometryType: string): AvatarCanvas
{
return this._geometry.getCanvas(scale, geometryType);
}
public removeDynamicItems(avatar: IAvatarImage): void
{
this._geometry.removeDynamicItems(avatar);
}
public getActiveBodyPartIds(action: IActiveActionData, avatar: IAvatarImage): string[]
{
let partTypeIds: string[] = [];
const bodyPartIds: string[] = [];
const geometryType = action.definition.geometryType;
if(action.definition.isAnimation)
{
const animationKey = ((action.definition.state + '.') + action.actionParameter);
const animation = this._animationManager.getAnimation(animationKey);
if(animation)
{
_local_3 = _local_8.getAnimatedBodyPartIds(0, k.overridingAction);
partTypeIds = animation.getAnimatedBodyPartIds(0, action.overridingAction);
if(_local_8.hasAddData())
if(animation.hasAddData())
{
const _local_11 = {
const dynamicPart = {
id: '',
x: 0,
y: 0,
@@ -242,110 +242,121 @@ export class AvatarStructure
double: 1
};
const _local_12 = {
const partSetDefinition = {
setType: ''
};
for(const _local_13 of _local_8.addData)
for(const addData of animation.addData)
{
const _local_6 = this._geometry.getBodyPart(_local_5, _local_13.align);
const bodyPart = this._geometry.getBodyPart(geometryType, addData.align);
if(_local_6)
if(bodyPart)
{
_local_11.id = _local_13.id;
_local_6.addPart(_local_11, _arg_2);
dynamicPart.id = addData.id;
bodyPart.addPart(dynamicPart, avatar);
_local_12.setType = _local_13.id;
partSetDefinition.setType = addData.id;
const _local_10 = this._partSetsData.addPartDefinition(_local_12);
_local_10.appendToFigure = true;
const partDefinition = this._partSetsData.addPartDefinition(partSetDefinition);
partDefinition.appendToFigure = true;
if(_local_13.base === '') _local_10.staticId = 1;
if(addData.base === '') partDefinition.staticId = 1;
if(_local_4.indexOf(_local_6.id) === -1) _local_4.push(_local_6.id);
if(bodyPartIds.indexOf(bodyPart.id) === -1) bodyPartIds.push(bodyPart.id);
}
}
}
}
for(const _local_9 of _local_3)
for(const partTypeId of partTypeIds)
{
const _local_6 = this._geometry.getBodyPart(_local_5, _local_9);
const bodyPart = this._geometry.getBodyPart(geometryType, partTypeId);
if(_local_6 && (_local_4.indexOf(_local_6.id) === -1)) _local_4.push(_local_6.id);
if(bodyPart && (bodyPartIds.indexOf(bodyPart.id) === -1)) bodyPartIds.push(bodyPart.id);
}
if(bodyPartIds.length === 0)
{
partTypeIds = this._partSetsData.getActiveParts(action.definition);
for(const partType of partTypeIds)
{
const bodyPart = this._geometry.getBodyPartOfItem(geometryType, partType, avatar);
if(bodyPart && (bodyPartIds.indexOf(bodyPart.id) === -1)) bodyPartIds.push(bodyPart.id);
}
}
}
else
{
_local_3 = this._partSetsData.getActiveParts(k.definition);
partTypeIds = this._partSetsData.getActiveParts(action.definition);
for(const _local_14 of _local_3)
for(const partType of partTypeIds)
{
const _local_6 = this._geometry.getBodyPartOfItem(_local_5, _local_14, _arg_2);
const bodyPart = this._geometry.getBodyPartOfItem(geometryType, partType, avatar);
if(_local_6 && (_local_4.indexOf(_local_6.id) === -1)) _local_4.push(_local_6.id);
if(bodyPart && (bodyPartIds.indexOf(bodyPart.id) === -1)) bodyPartIds.push(bodyPart.id);
}
}
return _local_4;
return bodyPartIds;
}
public getBodyPartsUnordered(k: string): string[]
public getBodyPartsUnordered(avatarSet: string): string[]
{
return this._geometry.getBodyPartIdsInAvatarSet(k);
return this._geometry.getBodyPartIdsInAvatarSet(avatarSet);
}
public getBodyParts(k: string, _arg_2: string, _arg_3: number): string[]
public getBodyParts(avatarSet: string, geometryType: string, direction: number): string[]
{
const _local_4 = AvatarDirectionAngle.DIRECTION_TO_ANGLE[_arg_3];
const angle = AvatarDirectionAngle.DIRECTION_TO_ANGLE[direction];
return this._geometry.getBodyPartsAtAngle(k, _local_4, _arg_2);
return this._geometry.getBodyPartsAtAngle(avatarSet, angle, geometryType);
}
public getFrameBodyPartOffset(k: IActiveActionData, _arg_2: number, _arg_3: number, _arg_4: string): Point
public getFrameBodyPartOffset(action: IActiveActionData, direction: number, frameCount: number, bodyPartId: string): Point
{
const _local_5 = this._animationData.getAction(k.definition);
const animationAction = this._animationData.getAction(action.definition);
if(_local_5) return _local_5.getFrameBodyPartOffset(_arg_2, _arg_3, _arg_4);
if(animationAction) return animationAction.getFrameBodyPartOffset(direction, frameCount, bodyPartId);
return AnimationAction.DEFAULT_OFFSET;
}
public getParts(k: string, _arg_2: IAvatarFigureContainer, _arg_3: IActiveActionData, _arg_4: string, _arg_5: number, removes: string[], _arg_7: IAvatarImage, _arg_8: Map<string, string> = null): AvatarImagePartContainer[]
public getParts(bodyPartId: string, figureContainer: IAvatarFigureContainer, action: IActiveActionData, geometryType: string, direction: number, removes: string[], avatar: IAvatarImage, itemOverrides: Map<string, string> = null): AvatarImagePartContainer[]
{
const _local_10: Animation = null;
let _local_34: IActionDefinition = null;
const effectAnimation: Animation = null;
let actionDefinition: IActionDefinition = null;
let animationFrames: AvatarAnimationFrame[] = [];
let partColor: IPartColor = null;
let _local_20: AvatarAnimationFrame[] = [];
let _local_36: IPartColor = null;
if(!action) return [];
if(!_arg_3) return [];
const activePartTypes = this._partSetsData.getActiveParts(action.definition);
const partContainers: AvatarImagePartContainer[] = [];
let defaultFrames: any[] = [0];
const animationAction = this._animationData.getAction(action.definition);
const _local_9 = this._partSetsData.getActiveParts(_arg_3.definition);
const _local_11: AvatarImagePartContainer[] = [];
let _local_14: any[] = [0];
const _local_15 = this._animationData.getAction(_arg_3.definition);
if(_arg_3.definition.isAnimation)
if(action.definition.isAnimation)
{
const _local_24 = ((_arg_3.definition.state + '.') + _arg_3.actionParameter);
const _local_10 = this._animationManager.getAnimation(_local_24);
const animationKey = ((action.definition.state + '.') + action.actionParameter);
const spriteAnimation = this._animationManager.getAnimation(animationKey);
if(_local_10)
if(spriteAnimation)
{
_local_14 = this.getPopulatedArray(_local_10.frameCount(_arg_3.overridingAction));
defaultFrames = this.getPopulatedArray(spriteAnimation.frameCount(action.overridingAction));
for(const _local_25 of _local_10.getAnimatedBodyPartIds(0, _arg_3.overridingAction))
for(const animatedPartId of spriteAnimation.getAnimatedBodyPartIds(0, action.overridingAction))
{
if(_local_25 === k)
if(animatedPartId === bodyPartId)
{
const _local_26 = this._geometry.getBodyPart(_arg_4, _local_25);
const geometryBodyPart = this._geometry.getBodyPart(geometryType, animatedPartId);
if(_local_26)
if(geometryBodyPart)
{
for(const _local_27 of _local_26.getDynamicParts(_arg_7))
for(const dynamicPart of geometryBodyPart.getDynamicParts(avatar))
{
_local_9.push(_local_27.id);
activePartTypes.push(dynamicPart.id);
}
}
}
@@ -353,75 +364,73 @@ export class AvatarStructure
}
}
const _local_16 = this._geometry.getParts(_arg_4, k, _arg_5, _local_9, _arg_7);
const _local_21 = _arg_2.getPartTypeIds();
const visiblePartTypes = this._geometry.getParts(geometryType, bodyPartId, direction, activePartTypes, avatar);
const figurePartTypeIds = figureContainer.getPartTypeIds();
for(const _local_17 of _local_21)
for(const figurePartType of figurePartTypeIds)
{
if(_arg_8)
if(itemOverrides)
{
if(_arg_8.get(_local_17)) continue;
if(itemOverrides.get(figurePartType)) continue;
}
const _local_28 = _arg_2.getPartSetId(_local_17);
const _local_29 = _arg_2.getPartColorIds(_local_17);
const _local_30 = this._figureData.getSetType(_local_17);
const partSetId = figureContainer.getPartSetId(figurePartType);
const partColorIds = figureContainer.getPartColorIds(figurePartType);
const setType = this._figureData.getSetType(figurePartType);
if(_local_30)
if(setType)
{
const _local_31 = this._figureData.getPalette(_local_30.paletteID);
const palette = this._figureData.getPalette(setType.paletteID);
if(_local_31)
if(palette)
{
const _local_32 = _local_30.getPartSet(_local_28);
const figurePartSet = setType.getPartSet(partSetId);
if(_local_32)
if(figurePartSet)
{
removes = removes.concat(_local_32.hiddenLayers);
removes = removes.concat(figurePartSet.hiddenLayers);
for(const _local_33 of _local_32.parts)
for(const figurePart of figurePartSet.parts)
{
if(_local_16.indexOf(_local_33.type) > -1)
if(visiblePartTypes.indexOf(figurePart.type) > -1)
{
if(_local_15)
if(animationAction)
{
const _local_19 = _local_15.getPart(_local_33.type);
const animationPart = animationAction.getPart(figurePart.type);
if(_local_19)
if(animationPart)
{
_local_20 = _local_19.frames;
animationFrames = animationPart.frames;
}
else
{
_local_20 = _local_14;
animationFrames = defaultFrames;
}
}
else
{
_local_20 = _local_14;
animationFrames = defaultFrames;
}
_local_34 = _arg_3.definition;
actionDefinition = action.definition;
if(_local_9.indexOf(_local_33.type) === -1) _local_34 = this._defaultAction;
if(activePartTypes.indexOf(figurePart.type) === -1) actionDefinition = this._defaultAction;
const _local_13 = this._partSetsData.getPartDefinition(_local_33.type);
const partDefinition = this._partSetsData.getPartDefinition(figurePart.type);
let _local_35 = (!_local_13) ? _local_33.type : _local_13.flippedSetType;
let flippedPartType = (!partDefinition) ? figurePart.type : partDefinition.flippedSetType;
if(!_local_35 || (_local_35 === '')) _local_35 = _local_33.type;
if(!flippedPartType || (flippedPartType === '')) flippedPartType = figurePart.type;
if(_local_29 && (_local_29.length > (_local_33.colorLayerIndex - 1)))
if(partColorIds && (partColorIds.length > (figurePart.colorLayerIndex - 1)))
{
_local_36 = _local_31.getColor(_local_29[(_local_33.colorLayerIndex - 1)]);
partColor = palette.getColor(partColorIds[(figurePart.colorLayerIndex - 1)]);
}
const _local_37 = (_local_33.colorLayerIndex > 0);
const _local_18 = new AvatarImagePartContainer(k, _local_33.type, _local_33.id.toString(), _local_36, _local_20, _local_34, _local_37, _local_33.paletteMap, _local_35);
const isColorable = (figurePart.colorLayerIndex > 0);
const container = new AvatarImagePartContainer(bodyPartId, figurePart.type, figurePart.id.toString(), partColor, animationFrames, actionDefinition, isColorable, figurePart.paletteMap, flippedPartType);
_local_11.push(_local_18);
partContainers.push(container);
}
}
}
@@ -429,132 +438,132 @@ export class AvatarStructure
}
}
const _local_22: AvatarImagePartContainer[] = [];
const sortedContainers: AvatarImagePartContainer[] = [];
for(const _local_12 of _local_16)
for(const visiblePartType of visiblePartTypes)
{
let _local_39: IPartColor = null;
let _local_38 = false;
let overrideColor: IPartColor = null;
let partFound = false;
const _local_40 = ((_arg_8) && (_arg_8.get(_local_12)));
const hasItemOverride = ((itemOverrides) && (itemOverrides.get(visiblePartType)));
for(const _local_23 of _local_11)
for(const container of partContainers)
{
if(_local_23.partType === _local_12)
if(container.partType === visiblePartType)
{
if(_local_40)
if(hasItemOverride)
{
_local_39 = _local_23.color;
overrideColor = container.color;
}
else
{
_local_38 = true;
partFound = true;
if(removes.indexOf(_local_12) === -1) _local_22.push(_local_23);
if(removes.indexOf(visiblePartType) === -1) sortedContainers.push(container);
}
}
}
if(!_local_38)
if(!partFound)
{
if(_local_40)
if(hasItemOverride)
{
const _local_41 = _arg_8.get(_local_12);
const itemId = itemOverrides.get(visiblePartType);
let _local_42 = 0;
let _local_43 = 0;
let charCodeSum = 0;
let charIndex = 0;
while(_local_43 < _local_41.length)
while(charIndex < itemId.length)
{
_local_42 = (_local_42 + _local_41.charCodeAt(_local_43));
_local_43++;
charCodeSum = (charCodeSum + itemId.charCodeAt(charIndex));
charIndex++;
}
if(_local_15)
if(animationAction)
{
const _local_19 = _local_15.getPart(_local_12);
const animationPart = animationAction.getPart(visiblePartType);
if(_local_19)
if(animationPart)
{
_local_20 = _local_19.frames;
animationFrames = animationPart.frames;
}
else
{
_local_20 = _local_14;
animationFrames = defaultFrames;
}
}
else
{
_local_20 = _local_14;
animationFrames = defaultFrames;
}
const _local_18 = new AvatarImagePartContainer(k, _local_12, _local_41, _local_39, _local_20, _arg_3.definition, (!(_local_39 == null)), -1, _local_12, false, 1);
const container = new AvatarImagePartContainer(bodyPartId, visiblePartType, itemId, overrideColor, animationFrames, action.definition, (!(overrideColor == null)), -1, visiblePartType, false, 1);
_local_22.push(_local_18);
sortedContainers.push(container);
}
else
{
if(_local_9.indexOf(_local_12) > -1)
if(activePartTypes.indexOf(visiblePartType) > -1)
{
const _local_44 = this._geometry.getBodyPartOfItem(_arg_4, _local_12, _arg_7);
const ownerBodyPart = this._geometry.getBodyPartOfItem(geometryType, visiblePartType, avatar);
if(k !== _local_44.id)
if(bodyPartId !== ownerBodyPart.id)
{
//
}
else
{
const _local_13 = this._partSetsData.getPartDefinition(_local_12);
const partDefinition = this._partSetsData.getPartDefinition(visiblePartType);
let _local_45 = false;
let _local_46 = 1;
let isBlended = false;
let blendFactor = 1;
if(_local_13.appendToFigure)
if(partDefinition.appendToFigure)
{
let _local_47 = '1';
let partId = '1';
if(_arg_3.actionParameter !== '')
if(action.actionParameter !== '')
{
_local_47 = _arg_3.actionParameter;
partId = action.actionParameter;
}
if(_local_13.hasStaticId())
if(partDefinition.hasStaticId())
{
_local_47 = _local_13.staticId.toString();
partId = partDefinition.staticId.toString();
}
if(_local_10 != null)
if(effectAnimation != null)
{
const _local_48 = _local_10.getAddData(_local_12);
const addData = effectAnimation.getAddData(visiblePartType);
if(_local_48)
if(addData)
{
_local_45 = _local_48.isBlended;
_local_46 = _local_48.blend;
isBlended = addData.isBlended;
blendFactor = addData.blend;
}
}
if(_local_15)
if(animationAction)
{
const _local_19 = _local_15.getPart(_local_12);
const animationPart = animationAction.getPart(visiblePartType);
if(_local_19)
if(animationPart)
{
_local_20 = _local_19.frames;
animationFrames = animationPart.frames;
}
else
{
_local_20 = _local_14;
animationFrames = defaultFrames;
}
}
else
{
_local_20 = _local_14;
animationFrames = defaultFrames;
}
const _local_18 = new AvatarImagePartContainer(k, _local_12, _local_47, null, _local_20, _arg_3.definition, false, -1, _local_12, _local_45, _local_46);
const container = new AvatarImagePartContainer(bodyPartId, visiblePartType, partId, null, animationFrames, action.definition, false, -1, visiblePartType, isBlended, blendFactor);
_local_22.push(_local_18);
sortedContainers.push(container);
}
}
}
@@ -562,36 +571,36 @@ export class AvatarStructure
}
}
return _local_22;
return sortedContainers;
}
private getPopulatedArray(k: number): number[]
private getPopulatedArray(count: number): number[]
{
const _local_2: number[] = [];
const result: number[] = [];
let index = 0;
while(index < k)
while(index < count)
{
_local_2.push(index);
result.push(index);
index++;
}
return _local_2;
return result;
}
public getItemIds(): string[]
{
if(this._actionManager)
{
const k = this._actionManager.getActionDefinition('CarryItem').params;
const params = this._actionManager.getActionDefinition('CarryItem').params;
const _local_2 = [];
const itemIds = [];
for(const _local_3 of k.values()) _local_2.push(_local_3);
for(const value of params.values()) itemIds.push(value);
return _local_2;
return itemIds;
}
return [];
@@ -117,7 +117,12 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
TextureUtils.writeToTexture(container, renderTexture);
return await TextureUtils.generateImage(renderTexture);
const image = await TextureUtils.generateImage(renderTexture);
container.destroy({ children: true });
renderTexture.destroy(true);
return image;
}
public get effects(): Map<string, IRoomCameraWidgetEffect>
@@ -62,7 +62,8 @@ export class CommunicationManager implements ICommunicationManager
t.shadowColor = 'blue';
t.fillRect(-20, 10, 234, 5);
const i = e.toDataURL();
document.body.appendChild(e);
e.width = 0;
e.height = 0;
let r = 0;
if (i.length === 0) return 'nothing!';
for (let n = 0; n < i.length; n++) {
File diff suppressed because one or more lines are too long
+3
View File
@@ -20,6 +20,7 @@ export * from './messages/incoming/competition';
export * from './messages/incoming/crafting';
export * from './messages/incoming/desktop';
export * from './messages/incoming/friendlist';
export * from './messages/incoming/furnieditor';
export * from './messages/incoming/game';
export * from './messages/incoming/game/directory';
export * from './messages/incoming/game/lobby';
@@ -94,6 +95,7 @@ export * from './messages/outgoing/crafting';
export * from './messages/outgoing/desktop';
export * from './messages/outgoing/friendfurni';
export * from './messages/outgoing/friendlist';
export * from './messages/outgoing/furnieditor';
export * from './messages/outgoing/game';
export * from './messages/outgoing/game/arena';
export * from './messages/outgoing/game/directory';
@@ -173,6 +175,7 @@ export * from './messages/parser/competition';
export * from './messages/parser/crafting';
export * from './messages/parser/desktop';
export * from './messages/parser/friendlist';
export * from './messages/parser/furnieditor';
export * from './messages/parser/game';
export * from './messages/parser/game/directory';
export * from './messages/parser/game/lobby';
@@ -269,6 +269,9 @@ export class IncomingHeader
public static WIRED_ACTION = 1434;
public static WIRED_CONDITION = 1108;
public static WIRED_ERROR = 156;
public static WIRED_MONITOR_DATA = 5101;
public static WIRED_ROOM_SETTINGS_DATA = 5102;
public static WIRED_USER_VARIABLES_DATA = 5103;
public static WIRED_OPEN = 1830;
public static WIRED_REWARD = 178;
public static WIRED_SAVE = 1155;
@@ -477,6 +480,12 @@ export class IncomingHeader
public static RENTABLE_FURNI_RENT_OR_BUYOUT_OFFER = 35;
public static HANDSHAKE_IDENTITY_ACCOUNT = 3523;
// Furni Editor
public static FURNI_EDITOR_SEARCH_RESULT = 10040;
public static FURNI_EDITOR_DETAIL_RESULT = 10041;
public static FURNI_EDITOR_INTERACTIONS_RESULT = 10043;
public static FURNI_EDITOR_RESULT = 10044;
// Catalog Admin
public static CATALOG_ADMIN_RESULT = 10059;
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { FurniEditorDetailResultMessageParser } from '../../parser';
export class FurniEditorDetailResultEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, FurniEditorDetailResultMessageParser);
}
public getParser(): FurniEditorDetailResultMessageParser
{
return this.parser as FurniEditorDetailResultMessageParser;
}
}
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { FurniEditorInteractionsResultMessageParser } from '../../parser';
export class FurniEditorInteractionsResultEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, FurniEditorInteractionsResultMessageParser);
}
public getParser(): FurniEditorInteractionsResultMessageParser
{
return this.parser as FurniEditorInteractionsResultMessageParser;
}
}
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { FurniEditorResultMessageParser } from '../../parser';
export class FurniEditorResultEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, FurniEditorResultMessageParser);
}
public getParser(): FurniEditorResultMessageParser
{
return this.parser as FurniEditorResultMessageParser;
}
}
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { FurniEditorSearchResultMessageParser } from '../../parser';
export class FurniEditorSearchResultEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, FurniEditorSearchResultMessageParser);
}
public getParser(): FurniEditorSearchResultMessageParser
{
return this.parser as FurniEditorSearchResultMessageParser;
}
}
@@ -0,0 +1,4 @@
export * from './FurniEditorDetailResultEvent';
export * from './FurniEditorInteractionsResultEvent';
export * from './FurniEditorResultEvent';
export * from './FurniEditorSearchResultEvent';
@@ -13,6 +13,7 @@ export * from './competition';
export * from './crafting';
export * from './desktop';
export * from './friendlist';
export * from './furnieditor';
export * from './game';
export * from './game/directory';
export * from './game/lobby';
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { WiredMonitorDataParser } from '../../parser';
export class WiredMonitorDataEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, WiredMonitorDataParser);
}
public getParser(): WiredMonitorDataParser
{
return this.parser as WiredMonitorDataParser;
}
}
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { WiredRoomSettingsDataParser } from '../../parser';
export class WiredRoomSettingsDataEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, WiredRoomSettingsDataParser);
}
public getParser(): WiredRoomSettingsDataParser
{
return this.parser as WiredRoomSettingsDataParser;
}
}
@@ -0,0 +1,16 @@
import { IMessageEvent } from '@nitrots/api';
import { MessageEvent } from '@nitrots/events';
import { WiredUserVariablesDataParser } from '../../parser';
export class WiredUserVariablesDataEvent extends MessageEvent implements IMessageEvent
{
constructor(callBack: Function)
{
super(callBack, WiredUserVariablesDataParser);
}
public getParser(): WiredUserVariablesDataParser
{
return this.parser as WiredUserVariablesDataParser;
}
}
@@ -1,7 +1,10 @@
export * from './WiredFurniActionEvent';
export * from './WiredFurniConditionEvent';
export * from './WiredFurniTriggerEvent';
export * from './WiredMonitorDataEvent';
export * from './WiredOpenEvent';
export * from './WiredRoomSettingsDataEvent';
export * from './WiredRewardResultMessageEvent';
export * from './WiredSaveSuccessEvent';
export * from './WiredUserVariablesDataEvent';
export * from './WiredValidationErrorEvent';
@@ -65,8 +65,8 @@ export class OutgoingHeader
public static GROUP_CREATE_OPTIONS = 798;
public static GROUP_FAVORITE = 3549;
public static GET_FORUM_STATS = 3149;
public static GET_FORUM_THREADS = 873;
public static GET_FORUMS_LIST = 436;
public static GET_FORUM_THREADS = 436;
public static GET_FORUMS_LIST = 873;
public static GET_FORUM_MESSAGES = 232;
public static GET_FORUM_THREAD = 3900;
public static GET_UNREAD_FORUMS_COUNT = 2908;
@@ -271,6 +271,13 @@ export class OutgoingHeader
public static WIRED_ACTION_SAVE = 2281;
public static WIRED_APPLY_SNAPSHOT = 3373;
public static WIRED_CONDITION_SAVE = 3203;
public static WIRED_MONITOR_REQUEST = 10021;
public static WIRED_ROOM_SETTINGS_REQUEST = 10022;
public static WIRED_ROOM_SETTINGS_SAVE = 10023;
public static WIRED_USER_VARIABLES_REQUEST = 10024;
public static WIRED_USER_VARIABLE_UPDATE = 10025;
public static WIRED_USER_VARIABLE_MANAGE = 10026;
public static WIRED_USER_INSPECT_MOVE = 10027;
public static WIRED_OPEN = 768;
public static WIRED_TRIGGER_SAVE = 1520;
public static GET_ITEM_DATA = 3964;
@@ -476,6 +483,14 @@ export class OutgoingHeader
public static FURNITURE_PICKUP_ALL = 10017;
// Furni Editor
public static FURNI_EDITOR_SEARCH = 10040;
public static FURNI_EDITOR_DETAIL = 10041;
public static FURNI_EDITOR_BY_SPRITE = 10042;
public static FURNI_EDITOR_INTERACTIONS = 10043;
public static FURNI_EDITOR_UPDATE = 10044;
public static FURNI_EDITOR_DELETE = 10045;
public static CATALOG_ADMIN_SAVE_PAGE = 10050;
public static CATALOG_ADMIN_CREATE_PAGE = 10051;
public static CATALOG_ADMIN_DELETE_PAGE = 10052;
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class FurniEditorBySpriteComposer implements IMessageComposer<ConstructorParameters<typeof FurniEditorBySpriteComposer>>
{
private _data: ConstructorParameters<typeof FurniEditorBySpriteComposer>;
constructor(spriteId: number)
{
this._data = [ spriteId ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class FurniEditorDeleteComposer implements IMessageComposer<ConstructorParameters<typeof FurniEditorDeleteComposer>>
{
private _data: ConstructorParameters<typeof FurniEditorDeleteComposer>;
constructor(id: number)
{
this._data = [ id ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class FurniEditorDetailComposer implements IMessageComposer<ConstructorParameters<typeof FurniEditorDetailComposer>>
{
private _data: ConstructorParameters<typeof FurniEditorDetailComposer>;
constructor(id: number)
{
this._data = [ id ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class FurniEditorInteractionsComposer implements IMessageComposer<ConstructorParameters<typeof FurniEditorInteractionsComposer>>
{
private _data: ConstructorParameters<typeof FurniEditorInteractionsComposer>;
constructor()
{
this._data = [];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class FurniEditorSearchComposer implements IMessageComposer<ConstructorParameters<typeof FurniEditorSearchComposer>>
{
private _data: ConstructorParameters<typeof FurniEditorSearchComposer>;
constructor(query: string, type: string, page: number)
{
this._data = [ query, type, page ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class FurniEditorUpdateComposer implements IMessageComposer<ConstructorParameters<typeof FurniEditorUpdateComposer>>
{
private _data: ConstructorParameters<typeof FurniEditorUpdateComposer>;
constructor(id: number, jsonFields: string)
{
this._data = [ id, jsonFields ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,6 @@
export * from './FurniEditorBySpriteComposer';
export * from './FurniEditorDeleteComposer';
export * from './FurniEditorDetailComposer';
export * from './FurniEditorInteractionsComposer';
export * from './FurniEditorSearchComposer';
export * from './FurniEditorUpdateComposer';
@@ -4,9 +4,9 @@ export class GroupSavePreferencesComposer implements IMessageComposer<Constructo
{
private _data: ConstructorParameters<typeof GroupSavePreferencesComposer>;
constructor(groupId: number, state: number, onlyAdminCanDecorate: number)
constructor(groupId: number, state: number, onlyAdminCanDecorate: number, forumEnabled: boolean)
{
this._data = [groupId, state, onlyAdminCanDecorate];
this._data = [groupId, state, onlyAdminCanDecorate, forumEnabled];
}
public getMessageArray()
@@ -9,6 +9,7 @@ export * from './crafting';
export * from './desktop';
export * from './friendfurni';
export * from './friendlist';
export * from './furnieditor';
export * from './game';
export * from './game/arena';
export * from './game/directory';
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredMonitorRequestComposer implements IMessageComposer<ConstructorParameters<typeof WiredMonitorRequestComposer>>
{
private _data: ConstructorParameters<typeof WiredMonitorRequestComposer>;
constructor(action: number = 0)
{
this._data = [ action ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,14 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredRoomSettingsRequestComposer implements IMessageComposer<ConstructorParameters<typeof WiredRoomSettingsRequestComposer>>
{
public getMessageArray()
{
return [];
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredRoomSettingsSaveComposer implements IMessageComposer<ConstructorParameters<typeof WiredRoomSettingsSaveComposer>>
{
private _data: ConstructorParameters<typeof WiredRoomSettingsSaveComposer>;
constructor(inspectMask: number, modifyMask: number)
{
this._data = [ inspectMask, modifyMask ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredUserInspectMoveComposer implements IMessageComposer<ConstructorParameters<typeof WiredUserInspectMoveComposer>>
{
private _data: ConstructorParameters<typeof WiredUserInspectMoveComposer>;
constructor(roomUnitId: number, x: number, y: number, direction: number)
{
this._data = [ roomUnitId, x, y, direction ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredUserVariableManageComposer implements IMessageComposer<ConstructorParameters<typeof WiredUserVariableManageComposer>>
{
private _data: ConstructorParameters<typeof WiredUserVariableManageComposer>;
constructor(action: number, targetType: number, targetId: number, variableItemId: number, value: number)
{
this._data = [ action, targetType, targetId, variableItemId, value ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredUserVariableUpdateComposer implements IMessageComposer<ConstructorParameters<typeof WiredUserVariableUpdateComposer>>
{
private _data: ConstructorParameters<typeof WiredUserVariableUpdateComposer>;
constructor(targetType: number, targetId: number, variableItemId: number, value: number)
{
this._data = [ targetType, targetId, variableItemId, value ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,14 @@
import { IMessageComposer } from '@nitrots/api';
export class WiredUserVariablesRequestComposer implements IMessageComposer<ConstructorParameters<typeof WiredUserVariablesRequestComposer>>
{
public getMessageArray()
{
return [];
}
public dispose(): void
{
return;
}
}
@@ -4,3 +4,10 @@ export * from './RoomMuteComposer';
export * from './UpdateActionMessageComposer';
export * from './UpdateConditionMessageComposer';
export * from './UpdateTriggerMessageComposer';
export * from './WiredMonitorRequestComposer';
export * from './WiredRoomSettingsRequestComposer';
export * from './WiredRoomSettingsSaveComposer';
export * from './WiredUserInspectMoveComposer';
export * from './WiredUserVariableManageComposer';
export * from './WiredUserVariablesRequestComposer';
export * from './WiredUserVariableUpdateComposer';
@@ -0,0 +1,23 @@
import { IMessageDataWrapper } from '@nitrots/api';
export class CatalogRefData
{
public id: number;
public catalogName: string;
public costCredits: number;
public costPoints: number;
public pointsType: number;
public pageId: number;
public pageName: string;
public parse(wrapper: IMessageDataWrapper): void
{
this.id = wrapper.readInt();
this.catalogName = wrapper.readString();
this.costCredits = wrapper.readInt();
this.costPoints = wrapper.readInt();
this.pointsType = wrapper.readInt();
this.pageId = wrapper.readInt();
this.pageName = wrapper.readString();
}
}
@@ -0,0 +1,38 @@
import { IMessageDataWrapper } from '@nitrots/api';
import { FurniItemData } from './FurniItemData';
export class FurniDetailData extends FurniItemData
{
public allowGift: boolean;
public allowTrade: boolean;
public allowRecycle: boolean;
public allowMarketplaceSell: boolean;
public allowInventoryStack: boolean;
public vendingIds: string;
public customparams: string;
public effectIdMale: number;
public effectIdFemale: number;
public clothingOnWalk: string;
public multiheight: string;
public description: string;
public usageCount: number;
public override parse(wrapper: IMessageDataWrapper): void
{
super.parse(wrapper);
this.allowGift = wrapper.readBoolean();
this.allowTrade = wrapper.readBoolean();
this.allowRecycle = wrapper.readBoolean();
this.allowMarketplaceSell = wrapper.readBoolean();
this.allowInventoryStack = wrapper.readBoolean();
this.vendingIds = wrapper.readString();
this.customparams = wrapper.readString();
this.effectIdMale = wrapper.readInt();
this.effectIdFemale = wrapper.readInt();
this.clothingOnWalk = wrapper.readString();
this.multiheight = wrapper.readString();
this.description = wrapper.readString();
this.usageCount = wrapper.readInt();
}
}
@@ -0,0 +1,57 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
import { CatalogRefData } from './CatalogRefData';
import { FurniDetailData } from './FurniDetailData';
export class FurniEditorDetailResultMessageParser implements IMessageParser
{
private _item: FurniDetailData;
private _catalogItems: CatalogRefData[];
private _furniDataJson: string;
public flush(): boolean
{
this._item = null;
this._catalogItems = [];
this._furniDataJson = '';
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._item = new FurniDetailData();
this._item.parse(wrapper);
const catalogCount = wrapper.readInt();
this._catalogItems = [];
for(let i = 0; i < catalogCount; i++)
{
const ref = new CatalogRefData();
ref.parse(wrapper);
this._catalogItems.push(ref);
}
this._furniDataJson = wrapper.readString();
return true;
}
public get item(): FurniDetailData
{
return this._item;
}
public get catalogItems(): CatalogRefData[]
{
return this._catalogItems;
}
public get furniDataJson(): string
{
return this._furniDataJson;
}
}
@@ -0,0 +1,34 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export class FurniEditorInteractionsResultMessageParser implements IMessageParser
{
private _interactions: string[];
public flush(): boolean
{
this._interactions = [];
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
const count = wrapper.readInt();
this._interactions = [];
for(let i = 0; i < count; i++)
{
this._interactions.push(wrapper.readString());
}
return true;
}
public get interactions(): string[]
{
return this._interactions;
}
}
@@ -0,0 +1,43 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export class FurniEditorResultMessageParser implements IMessageParser
{
private _success: boolean;
private _message: string;
private _id: number;
public flush(): boolean
{
this._success = false;
this._message = '';
this._id = -1;
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._success = wrapper.readBoolean();
this._message = wrapper.readString();
this._id = wrapper.readInt();
return true;
}
public get success(): boolean
{
return this._success;
}
public get message(): string
{
return this._message;
}
public get id(): number
{
return this._id;
}
}
@@ -0,0 +1,54 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
import { FurniItemData } from './FurniItemData';
export class FurniEditorSearchResultMessageParser implements IMessageParser
{
private _items: FurniItemData[];
private _total: number;
private _page: number;
public flush(): boolean
{
this._items = [];
this._total = 0;
this._page = 1;
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
const count = wrapper.readInt();
this._items = [];
for(let i = 0; i < count; i++)
{
const item = new FurniItemData();
item.parse(wrapper);
this._items.push(item);
}
this._total = wrapper.readInt();
this._page = wrapper.readInt();
return true;
}
public get items(): FurniItemData[]
{
return this._items;
}
public get total(): number
{
return this._total;
}
public get page(): number
{
return this._page;
}
}
@@ -0,0 +1,37 @@
import { IMessageDataWrapper } from '@nitrots/api';
export class FurniItemData
{
public id: number;
public spriteId: number;
public itemName: string;
public publicName: string;
public type: string;
public width: number;
public length: number;
public stackHeight: number;
public allowStack: boolean;
public allowWalk: boolean;
public allowSit: boolean;
public allowLay: boolean;
public interactionType: string;
public interactionModesCount: number;
public parse(wrapper: IMessageDataWrapper): void
{
this.id = wrapper.readInt();
this.spriteId = wrapper.readInt();
this.itemName = wrapper.readString();
this.publicName = wrapper.readString();
this.type = wrapper.readString();
this.width = wrapper.readInt();
this.length = wrapper.readInt();
this.stackHeight = wrapper.readDouble();
this.allowStack = wrapper.readBoolean();
this.allowWalk = wrapper.readBoolean();
this.allowSit = wrapper.readBoolean();
this.allowLay = wrapper.readBoolean();
this.interactionType = wrapper.readString();
this.interactionModesCount = wrapper.readInt();
}
}
@@ -0,0 +1,7 @@
export * from './CatalogRefData';
export * from './FurniDetailData';
export * from './FurniEditorDetailResultMessageParser';
export * from './FurniEditorInteractionsResultMessageParser';
export * from './FurniEditorResultMessageParser';
export * from './FurniEditorSearchResultMessageParser';
export * from './FurniItemData';
@@ -19,6 +19,7 @@ export class GroupInformationParser implements IMessageParser
private _flag: boolean;
private _canMembersDecorate: boolean;
private _pendingRequestsCount: number;
private _hasForum: boolean;
public flush(): boolean
{
@@ -39,6 +40,7 @@ export class GroupInformationParser implements IMessageParser
this._flag = false;
this._canMembersDecorate = false;
this._pendingRequestsCount = 0;
this._hasForum = false;
return true;
}
@@ -65,6 +67,7 @@ export class GroupInformationParser implements IMessageParser
this._flag = wrapper.readBoolean();
this._canMembersDecorate = wrapper.readBoolean();
this._pendingRequestsCount = wrapper.readInt();
this._hasForum = wrapper.readBoolean();
return true;
}
@@ -153,4 +156,9 @@ export class GroupInformationParser implements IMessageParser
{
return this._pendingRequestsCount;
}
public get hasForum(): boolean
{
return this._hasForum;
}
}
@@ -15,6 +15,7 @@ export class GroupSettingsParser implements IMessageParser
private _badgeParts: Map<number, GroupDataBadgePart>;
private _badgeCode: string;
private _membersCount: number;
private _hasForum: boolean;
public flush(): boolean
{
@@ -30,6 +31,7 @@ export class GroupSettingsParser implements IMessageParser
this._badgeParts = new Map();
this._badgeCode = null;
this._membersCount = 0;
this._hasForum = false;
return true;
}
@@ -83,6 +85,7 @@ export class GroupSettingsParser implements IMessageParser
this._badgeCode = wrapper.readString();
this._membersCount = wrapper.readInt();
this._hasForum = wrapper.readBoolean();
return true;
}
@@ -146,4 +149,9 @@ export class GroupSettingsParser implements IMessageParser
{
return this._membersCount;
}
public get hasForum(): boolean
{
return this._hasForum;
}
}
@@ -12,6 +12,7 @@ export * from './competition';
export * from './crafting';
export * from './desktop';
export * from './friendlist';
export * from './furnieditor';
export * from './game';
export * from './game/directory';
export * from './game/lobby';
@@ -0,0 +1,222 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export interface IWiredMonitorLogData
{
amount: number;
latestOccurrenceSeconds: number;
latestReason: string;
latestSourceId: number;
latestSourceLabel: string;
severity: string;
type: string;
}
export interface IWiredMonitorHistoryData
{
occurredAtSeconds: number;
reason: string;
sourceId: number;
sourceLabel: string;
severity: string;
type: string;
}
export class WiredMonitorDataParser implements IMessageParser
{
private _usageCurrentWindow: number;
private _usageLimitPerWindow: number;
private _isHeavy: boolean;
private _delayedEventsPending: number;
private _delayedEventsLimit: number;
private _averageExecutionMs: number;
private _peakExecutionMs: number;
private _recursionDepthCurrent: number;
private _recursionDepthLimit: number;
private _killedRemainingSeconds: number;
private _usageWindowMs: number;
private _overloadAverageThresholdMs: number;
private _overloadPeakThresholdMs: number;
private _heavyUsageThresholdPercent: number;
private _heavyConsecutiveWindowsThreshold: number;
private _overloadConsecutiveWindowsThreshold: number;
private _heavyDelayedThresholdPercent: number;
private _logs: IWiredMonitorLogData[];
private _history: IWiredMonitorHistoryData[];
public flush(): boolean
{
this._usageCurrentWindow = 0;
this._usageLimitPerWindow = 0;
this._isHeavy = false;
this._delayedEventsPending = 0;
this._delayedEventsLimit = 0;
this._averageExecutionMs = 0;
this._peakExecutionMs = 0;
this._recursionDepthCurrent = 0;
this._recursionDepthLimit = 0;
this._killedRemainingSeconds = 0;
this._usageWindowMs = 0;
this._overloadAverageThresholdMs = 0;
this._overloadPeakThresholdMs = 0;
this._heavyUsageThresholdPercent = 0;
this._heavyConsecutiveWindowsThreshold = 0;
this._overloadConsecutiveWindowsThreshold = 0;
this._heavyDelayedThresholdPercent = 0;
this._logs = [];
this._history = [];
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._usageCurrentWindow = wrapper.readInt();
this._usageLimitPerWindow = wrapper.readInt();
this._isHeavy = wrapper.readBoolean();
this._delayedEventsPending = wrapper.readInt();
this._delayedEventsLimit = wrapper.readInt();
this._averageExecutionMs = wrapper.readInt();
this._peakExecutionMs = wrapper.readInt();
this._recursionDepthCurrent = wrapper.readInt();
this._recursionDepthLimit = wrapper.readInt();
this._killedRemainingSeconds = wrapper.readInt();
this._usageWindowMs = wrapper.readInt();
this._overloadAverageThresholdMs = wrapper.readInt();
this._overloadPeakThresholdMs = wrapper.readInt();
this._heavyUsageThresholdPercent = wrapper.readInt();
this._heavyConsecutiveWindowsThreshold = wrapper.readInt();
this._overloadConsecutiveWindowsThreshold = wrapper.readInt();
this._heavyDelayedThresholdPercent = wrapper.readInt();
const totalLogs = wrapper.readInt();
this._logs = [];
this._history = [];
for(let i = 0; i < totalLogs; i++)
{
this._logs.push({
type: wrapper.readString(),
severity: wrapper.readString(),
amount: wrapper.readInt(),
latestOccurrenceSeconds: wrapper.readInt(),
latestReason: wrapper.readString(),
latestSourceLabel: wrapper.readString(),
latestSourceId: wrapper.readInt()
});
}
const totalHistory = wrapper.readInt();
for(let i = 0; i < totalHistory; i++)
{
this._history.push({
type: wrapper.readString(),
severity: wrapper.readString(),
occurredAtSeconds: wrapper.readInt(),
reason: wrapper.readString(),
sourceLabel: wrapper.readString(),
sourceId: wrapper.readInt()
});
}
return true;
}
public get usageCurrentWindow(): number
{
return this._usageCurrentWindow;
}
public get usageLimitPerWindow(): number
{
return this._usageLimitPerWindow;
}
public get isHeavy(): boolean
{
return this._isHeavy;
}
public get delayedEventsPending(): number
{
return this._delayedEventsPending;
}
public get delayedEventsLimit(): number
{
return this._delayedEventsLimit;
}
public get averageExecutionMs(): number
{
return this._averageExecutionMs;
}
public get peakExecutionMs(): number
{
return this._peakExecutionMs;
}
public get recursionDepthCurrent(): number
{
return this._recursionDepthCurrent;
}
public get recursionDepthLimit(): number
{
return this._recursionDepthLimit;
}
public get killedRemainingSeconds(): number
{
return this._killedRemainingSeconds;
}
public get usageWindowMs(): number
{
return this._usageWindowMs;
}
public get overloadAverageThresholdMs(): number
{
return this._overloadAverageThresholdMs;
}
public get overloadPeakThresholdMs(): number
{
return this._overloadPeakThresholdMs;
}
public get heavyUsageThresholdPercent(): number
{
return this._heavyUsageThresholdPercent;
}
public get heavyConsecutiveWindowsThreshold(): number
{
return this._heavyConsecutiveWindowsThreshold;
}
public get overloadConsecutiveWindowsThreshold(): number
{
return this._overloadConsecutiveWindowsThreshold;
}
public get heavyDelayedThresholdPercent(): number
{
return this._heavyDelayedThresholdPercent;
}
public get logs(): IWiredMonitorLogData[]
{
return this._logs;
}
public get history(): IWiredMonitorHistoryData[]
{
return this._history;
}
}
@@ -0,0 +1,67 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export class WiredRoomSettingsDataParser implements IMessageParser
{
private _roomId: number;
private _inspectMask: number;
private _modifyMask: number;
private _canInspect: boolean;
private _canModify: boolean;
private _canManageSettings: boolean;
public flush(): boolean
{
this._roomId = 0;
this._inspectMask = 0;
this._modifyMask = 0;
this._canInspect = false;
this._canModify = false;
this._canManageSettings = false;
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._roomId = wrapper.readInt();
this._inspectMask = wrapper.readInt();
this._modifyMask = wrapper.readInt();
this._canInspect = wrapper.readBoolean();
this._canModify = wrapper.readBoolean();
this._canManageSettings = wrapper.readBoolean();
return true;
}
public get roomId(): number
{
return this._roomId;
}
public get inspectMask(): number
{
return this._inspectMask;
}
public get modifyMask(): number
{
return this._modifyMask;
}
public get canInspect(): boolean
{
return this._canInspect;
}
public get canModify(): boolean
{
return this._canModify;
}
public get canManageSettings(): boolean
{
return this._canManageSettings;
}
}
@@ -0,0 +1,301 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export interface IWiredUserVariableDefinitionData
{
availability: number;
hasValue: boolean;
isReadOnly: boolean;
isTextConnected: boolean;
itemId: number;
name: string;
}
export interface IWiredUserVariableAssignmentData
{
createdAt: number;
hasValue: boolean;
updatedAt: number;
value: number | null;
variableItemId: number;
}
export interface IWiredUserVariablesUserData
{
assignments: IWiredUserVariableAssignmentData[];
userId: number;
}
export interface IWiredFurniVariableDefinitionData
{
availability: number;
hasValue: boolean;
isReadOnly: boolean;
isTextConnected: boolean;
itemId: number;
name: string;
}
export interface IWiredUserVariablesFurniData
{
assignments: IWiredUserVariableAssignmentData[];
furniId: number;
}
export interface IWiredRoomVariableDefinitionData
{
availability: number;
hasValue: boolean;
isReadOnly: boolean;
isTextConnected: boolean;
itemId: number;
name: string;
}
export interface IWiredRoomVariableAssignmentData
{
createdAt: number;
hasValue: boolean;
updatedAt: number;
value: number | null;
variableItemId: number;
}
export interface IWiredContextVariableDefinitionData
{
availability: number;
hasValue: boolean;
isReadOnly: boolean;
isTextConnected: boolean;
itemId: number;
name: string;
}
export class WiredUserVariablesDataParser implements IMessageParser
{
private _roomId: number;
private _definitions: IWiredUserVariableDefinitionData[];
private _users: IWiredUserVariablesUserData[];
private _furniDefinitions: IWiredFurniVariableDefinitionData[];
private _furnis: IWiredUserVariablesFurniData[];
private _roomDefinitions: IWiredRoomVariableDefinitionData[];
private _roomAssignments: IWiredRoomVariableAssignmentData[];
private _contextDefinitions: IWiredContextVariableDefinitionData[];
public flush(): boolean
{
this._roomId = 0;
this._definitions = [];
this._users = [];
this._furniDefinitions = [];
this._furnis = [];
this._roomDefinitions = [];
this._roomAssignments = [];
this._contextDefinitions = [];
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._roomId = wrapper.readInt();
let totalDefinitions = wrapper.readInt();
this._definitions = [];
this._users = [];
this._furniDefinitions = [];
this._furnis = [];
this._roomDefinitions = [];
this._roomAssignments = [];
this._contextDefinitions = [];
while(totalDefinitions > 0)
{
this._definitions.push({
itemId: wrapper.readInt(),
name: wrapper.readString(),
hasValue: wrapper.readBoolean(),
availability: wrapper.readInt(),
isTextConnected: wrapper.readBoolean(),
isReadOnly: wrapper.readBoolean()
});
totalDefinitions--;
}
let totalUsers = wrapper.readInt();
while(totalUsers > 0)
{
const userId = wrapper.readInt();
let totalAssignments = wrapper.readInt();
const assignments: IWiredUserVariableAssignmentData[] = [];
while(totalAssignments > 0)
{
const variableItemId = wrapper.readInt();
const hasValue = wrapper.readBoolean();
const rawValue = wrapper.readInt();
const createdAt = wrapper.readInt();
const updatedAt = wrapper.readInt();
assignments.push({
variableItemId,
hasValue,
value: (hasValue ? rawValue : null),
createdAt,
updatedAt
});
totalAssignments--;
}
this._users.push({ userId, assignments });
totalUsers--;
}
let totalFurniDefinitions = wrapper.readInt();
while(totalFurniDefinitions > 0)
{
this._furniDefinitions.push({
itemId: wrapper.readInt(),
name: wrapper.readString(),
hasValue: wrapper.readBoolean(),
availability: wrapper.readInt(),
isTextConnected: wrapper.readBoolean(),
isReadOnly: wrapper.readBoolean()
});
totalFurniDefinitions--;
}
let totalFurnis = wrapper.readInt();
while(totalFurnis > 0)
{
const furniId = wrapper.readInt();
let totalAssignments = wrapper.readInt();
const assignments: IWiredUserVariableAssignmentData[] = [];
while(totalAssignments > 0)
{
const variableItemId = wrapper.readInt();
const hasValue = wrapper.readBoolean();
const rawValue = wrapper.readInt();
const createdAt = wrapper.readInt();
const updatedAt = wrapper.readInt();
assignments.push({
variableItemId,
hasValue,
value: (hasValue ? rawValue : null),
createdAt,
updatedAt
});
totalAssignments--;
}
this._furnis.push({ furniId, assignments });
totalFurnis--;
}
let totalRoomDefinitions = wrapper.readInt();
while(totalRoomDefinitions > 0)
{
this._roomDefinitions.push({
itemId: wrapper.readInt(),
name: wrapper.readString(),
hasValue: wrapper.readBoolean(),
availability: wrapper.readInt(),
isTextConnected: wrapper.readBoolean(),
isReadOnly: wrapper.readBoolean()
});
totalRoomDefinitions--;
}
let totalRoomAssignments = wrapper.readInt();
while(totalRoomAssignments > 0)
{
const variableItemId = wrapper.readInt();
const hasValue = wrapper.readBoolean();
const rawValue = wrapper.readInt();
const createdAt = wrapper.readInt();
const updatedAt = wrapper.readInt();
this._roomAssignments.push({
variableItemId,
hasValue,
value: (hasValue ? rawValue : null),
createdAt,
updatedAt
});
totalRoomAssignments--;
}
let totalContextDefinitions = wrapper.readInt();
while(totalContextDefinitions > 0)
{
this._contextDefinitions.push({
itemId: wrapper.readInt(),
name: wrapper.readString(),
hasValue: wrapper.readBoolean(),
availability: wrapper.readInt(),
isTextConnected: wrapper.readBoolean(),
isReadOnly: wrapper.readBoolean()
});
totalContextDefinitions--;
}
return true;
}
public get roomId(): number
{
return this._roomId;
}
public get definitions(): IWiredUserVariableDefinitionData[]
{
return this._definitions;
}
public get users(): IWiredUserVariablesUserData[]
{
return this._users;
}
public get furniDefinitions(): IWiredFurniVariableDefinitionData[]
{
return this._furniDefinitions;
}
public get furnis(): IWiredUserVariablesFurniData[]
{
return this._furnis;
}
public get roomDefinitions(): IWiredRoomVariableDefinitionData[]
{
return this._roomDefinitions;
}
public get roomAssignments(): IWiredRoomVariableAssignmentData[]
{
return this._roomAssignments;
}
public get contextDefinitions(): IWiredContextVariableDefinitionData[]
{
return this._contextDefinitions;
}
}
@@ -5,7 +5,10 @@ export * from './WiredActionDefinition';
export * from './WiredFurniActionParser';
export * from './WiredFurniConditionParser';
export * from './WiredFurniTriggerParser';
export * from './WiredMonitorDataParser';
export * from './WiredRoomSettingsDataParser';
export * from './WiredOpenParser';
export * from './WiredRewardResultMessageParser';
export * from './WiredSaveSuccessParser';
export * from './WiredUserVariablesDataParser';
export * from './WiredValidationErrorParser';
+15 -1
View File
@@ -607,6 +607,19 @@ export class RoomMessageHandler
return true;
}
private getReleasedWiredStatusLocation(status: RoomUnitStatusMessage): IVector3D
{
const activeMovement = this._activeWiredUserMovements.get(status.id);
if(!activeMovement) return null;
if(activeMovement.expiresAt <= Date.now()) return null;
if(!this.shouldReleaseWiredStatusLocation(status, activeMovement)) return null;
return new Vector3d(activeMovement.targetX, activeMovement.targetY, activeMovement.targetZ);
}
private shouldReleaseWiredStatusLocation(status: RoomUnitStatusMessage, activeMovement: { expiresAt: number, targetX: number, targetY: number, targetZ: number }): boolean
{
if(!status.didMove)
@@ -967,7 +980,8 @@ export class RoomMessageHandler
if(height) height = (height / zScale);
const location = new Vector3d(status.x, status.y, (status.z + height));
const releasedWiredLocation = this.getReleasedWiredStatusLocation(status);
const location = (releasedWiredLocation || new Vector3d(status.x, status.y, (status.z + height)));
const direction = new Vector3d(status.direction);
let goal: IVector3D = null;
@@ -283,6 +283,8 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali
tempCtx.putImageData(patchData, 0, 0);
accCtx.drawImage(tempCanvas, frame.dims.left, frame.dims.top);
tempCanvas.width = 0;
tempCanvas.height = 0;
// Create a new canvas for this frame and create a texture from it
const frameCanvas = document.createElement('canvas');
@@ -299,6 +301,9 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali
frameDelays.push(frame.delay || 10);
}
accCanvas.width = 0;
accCanvas.height = 0;
// Create AnimatedSprite with frame textures
if(this._frameTextures.length > 1)
{
@@ -340,6 +345,13 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali
ctx.clearRect(0, 0, badgeCanvas.width, badgeCanvas.height);
ctx.drawImage(img, 0, 0, badgeCanvas.width, badgeCanvas.height);
tex.source.update();
img.onload = null;
img.onerror = null;
};
img.onerror = () =>
{
img.onload = null;
img.onerror = null;
};
img.src = badgeUrl;
}
@@ -28,10 +28,19 @@ export class FurnitureDynamicThumbnailVisualization extends IsometricImageFurniV
if (image.complete && image.width > 0 && image.height > 0) {
const texture = Texture.from(image);
texture.source.scaleMode = 'linear';
this.setThumbnailImages(texture, thumbnailUrl); // Pass URL here
this.setThumbnailImages(texture, thumbnailUrl);
} else {
console.error("Image failed to load properly:", thumbnailUrl);
this.setThumbnailImages(null);
}
image.onload = null;
image.onerror = null;
};
image.onerror = () => {
this.setThumbnailImages(null);
image.onload = null;
image.onerror = null;
};
} else {
this.setThumbnailImages(null);
@@ -5,6 +5,13 @@ export class FurnitureYoutubeVisualization extends FurnitureDynamicThumbnailVisu
{
protected static THUMBNAIL_URL: string = 'THUMBNAIL_URL';
constructor()
{
super();
this._hasOutline = false;
}
protected getThumbnailURL(): string
{
if(!this.object) return null;
@@ -1,15 +1,16 @@
import { IGraphicAsset } from '@nitrots/api';
import { GetRenderer, TextureUtils } from '@nitrots/utils';
import { Container, Graphics, Matrix, Sprite, Texture, RenderTexture } from 'pixi.js';
import { GetRenderer } from '@nitrots/utils';
import { Container, Matrix, Sprite, Texture, RenderTexture } from 'pixi.js';
import { FurnitureAnimatedVisualization } from './FurnitureAnimatedVisualization';
export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualization {
protected static THUMBNAIL: string = 'THUMBNAIL';
private _thumbnailAssetNameNormal: string;
private _thumbnailImageNormal: Texture;
private _thumbnailDirection: number;
private _thumbnailChanged: boolean;
private _thumbnailLayerId: number;
private _thumbnailTexture: Texture;
private _uniqueId: string;
private _photoUrl: string;
protected _hasOutline: boolean;
@@ -17,10 +18,11 @@ export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualiza
constructor() {
super();
this._thumbnailAssetNameNormal = null;
this._thumbnailImageNormal = null;
this._thumbnailDirection = -1;
this._thumbnailChanged = false;
this._thumbnailLayerId = -1;
this._thumbnailTexture = null;
this._uniqueId = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
this._photoUrl = null;
}
@@ -56,13 +58,14 @@ export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualiza
return;
}
const thumbnailAssetName = this.getThumbnailAssetName(64);
if (this._thumbnailImageNormal) {
this.addThumbnailAsset(this._thumbnailImageNormal, 64);
} else {
const layerId = 2;
const sprite = this.getSprite(layerId);
if (this._thumbnailTexture instanceof RenderTexture) {
this._thumbnailTexture.destroy(true);
}
this._thumbnailTexture = null;
this._thumbnailLayerId = -1;
}
this._thumbnailChanged = false;
@@ -76,21 +79,16 @@ export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualiza
const layerTag = this.getLayerTag(scale, this.direction, layerId);
if (layerTag === IsometricImageFurniVisualization.THUMBNAIL) {
this._thumbnailLayerId = layerId;
const assetName = (this.cacheSpriteAssetName(scale, layerId, false) + this.getFrameNumber(scale, layerId));
const asset = this.getAsset(assetName, layerId);
const thumbnailAssetName = `${this.getThumbnailAssetName(scale)}-${this._uniqueId}`;
const transformedTexture = this.generateTransformedThumbnail(k, asset || { width: 64, height: 64 });
// Use the original asset's registered offsets so the thumbnail is drawn at the
// furniture-defined sprite position. Fall back to centering when no asset exists.
const offsetX = asset ? asset.offsetX : -Math.floor(transformedTexture.width / 2);
const offsetY = asset ? asset.offsetY : -Math.floor(transformedTexture.height / 2);
this.asset.addAsset(thumbnailAssetName, transformedTexture, true, offsetX, offsetY, false, false);
const placedSprite = this.getSprite(layerId);
if (placedSprite) {
placedSprite.texture = transformedTexture;
if (asset) {
if (this._thumbnailTexture instanceof RenderTexture) {
this._thumbnailTexture.destroy(true);
}
this._thumbnailTexture = this.generateTransformedThumbnail(k, asset);
}
return;
@@ -100,78 +98,117 @@ export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualiza
}
}
protected generateTransformedThumbnail(texture: Texture, asset: IGraphicAsset): Texture {
const scaleFactor = (asset?.width || 64) / texture.width;
const verticalScale = 1.0265;
const matrix = new Matrix();
const frameThickness = 20;
const frameColor = 0x000000;
protected updateSprite(scale: number, layerId: number): void {
super.updateSprite(scale, layerId);
switch (this.direction) {
if (this._thumbnailTexture && this._thumbnailLayerId === layerId) {
const sprite = this.getSprite(layerId);
if (sprite) {
sprite.texture = this._thumbnailTexture;
}
}
}
protected generateTransformedThumbnail(texture: Texture, asset: IGraphicAsset): Texture {
const assetWidth = asset.width;
const assetHeight = asset.height;
let outlineTexture: RenderTexture = null;
if(this._hasOutline)
{
const borderSize = 20;
const bgWidth = texture.width + borderSize * 2;
const bgHeight = texture.height + borderSize * 2;
const container = new Container();
const background = new Sprite(Texture.WHITE);
background.tint = 0x000000;
background.width = bgWidth;
background.height = bgHeight;
const imageSprite = new Sprite(texture);
imageSprite.position.set(borderSize, borderSize);
container.addChild(background, imageSprite);
outlineTexture = RenderTexture.create({ width: bgWidth, height: bgHeight, resolution: 1 });
GetRenderer().render({ container, target: outlineTexture, clear: true });
texture = outlineTexture;
}
texture.source.scaleMode = 'linear';
const texW = texture.width;
const texH = texture.height;
const scaleX = assetWidth / texW;
const scaleY = assetHeight / texH;
const matrix = new Matrix();
switch(this.direction)
{
case 2:
matrix.a = scaleFactor;
matrix.b = (-0.5 * scaleFactor);
matrix.a = scaleX;
matrix.b = -(0.5 * scaleX);
matrix.c = 0;
matrix.d = (scaleFactor * verticalScale);
matrix.d = (scaleY / 1.6);
matrix.tx = 0;
matrix.ty = (0.5 * scaleFactor * texture.width);
matrix.ty = (0.5 * scaleX * texW);
break;
case 0:
case 4:
matrix.a = scaleFactor;
matrix.b = (0.5 * scaleFactor);
matrix.a = scaleX;
matrix.b = (0.5 * scaleX);
matrix.c = 0;
matrix.d = (scaleFactor * verticalScale);
matrix.d = (scaleY / 1.6);
matrix.tx = 0;
matrix.ty = 0;
break;
default:
matrix.a = scaleFactor;
matrix.a = scaleX;
matrix.b = 0;
matrix.c = 0;
matrix.d = scaleFactor;
matrix.d = scaleY;
matrix.tx = 0;
matrix.ty = 0;
}
const imgWidth = texture.width;
const imgHeight = texture.height;
const flatWidth = imgWidth + frameThickness * 2;
const flatHeight = imgHeight + frameThickness * 2;
const flatRenderTexture = TextureUtils.createAndFillRenderTexture(flatWidth, flatHeight, frameColor);
const imageSprite = new Sprite(texture);
imageSprite.position.set(frameThickness, frameThickness);
TextureUtils.writeToTexture(imageSprite, flatRenderTexture, false);
const flatTexture = flatRenderTexture;
const transformedSprite = new Sprite(flatTexture);
transformedSprite.setFromMatrix(matrix);
const width = 80;
const height = 80;
const finalContainer = new Container();
const posX = (width - transformedSprite.width) / 2;
const posY = (height - transformedSprite.height) / 2;
transformedSprite.position.set(posX, posY);
finalContainer.addChild(transformedSprite);
// Calculate transformed corners manually for accurate bounds
const corners = [
{ x: matrix.tx, y: matrix.ty },
{ x: matrix.a * texW + matrix.tx, y: matrix.b * texW + matrix.ty },
{ x: matrix.c * texH + matrix.tx, y: matrix.d * texH + matrix.ty },
{ x: matrix.a * texW + matrix.c * texH + matrix.tx, y: matrix.b * texW + matrix.d * texH + matrix.ty }
];
const renderTexture = RenderTexture.create({ width, height, resolution: 1 });
GetRenderer().render({ container: finalContainer, target: renderTexture, clear: true });
let minX = corners[0].x, minY = corners[0].y;
let maxX = corners[0].x, maxY = corners[0].y;
for (const corner of corners) {
if (corner.x < minX) minX = corner.x;
if (corner.y < minY) minY = corner.y;
if (corner.x > maxX) maxX = corner.x;
if (corner.y > maxY) maxY = corner.y;
}
const renderWidth = Math.ceil(maxX - minX);
const renderHeight = Math.ceil(maxY - minY);
matrix.tx -= minX;
matrix.ty -= minY;
const transformedSprite = new Sprite(texture);
transformedSprite.setFromMatrix(matrix);
const renderTexture = RenderTexture.create({ width: renderWidth, height: renderHeight, resolution: 1 });
GetRenderer().render({ container: transformedSprite, target: renderTexture, clear: true });
if (outlineTexture) {
outlineTexture.destroy(true);
}
return renderTexture;
}
protected getSpriteAssetName(scale: number, layerId: number): string {
if (this._thumbnailImageNormal && (this.getLayerTag(scale, this.direction, layerId) === IsometricImageFurniVisualization.THUMBNAIL)) {
return `${this.getThumbnailAssetName(scale)}-${this._uniqueId}`;
}
return super.getSpriteAssetName(scale, layerId);
}
protected getThumbnailAssetName(scale: number): string {
return this.cacheSpriteAssetName(scale, 2, false) + this.getFrameNumber(scale, 2);
}
protected getFullThumbnailAssetName(k: number, _arg_2: number): string {
return [this._type, k, 'thumb', _arg_2].join('_');
}
}
}
@@ -867,203 +867,218 @@ export class RoomPlane implements IRoomPlane
}
private renderWindowReflections(): void
{
if(!this._planeTexture || !this._leftSide || !this._rightSide || !this._normal) return;
if(this._leftSide.length <= 0 || this._rightSide.length <= 0) return;
const now = Date.now();
const fadeDurationMs = 150;
const avatars = RoomWindowReflectionState.getAvatars();
const canvasWidth = this._landscapeRenderWidth;
const canvasHeight = this._landscapeRenderHeight;
if(canvasWidth <= 0 || canvasHeight <= 0) return;
const container = new Container();
const visibleAvatarIds = new Set<number>();
const addReflectionSprite = (
texture: Texture,
oppositeTexture: Texture,
location: IVector3D,
alpha: number,
verticalOffset: number = 0,
direction: number = 0,
avatarId: number = -1
): boolean =>
{
if(!this._planeTexture || !this._leftSide || !this._rightSide || !this._normal) return;
if(!texture?.source || texture.source.destroyed || !texture.source.style || !location || alpha < 0)
return false;
if(this._leftSide.length <= 0 || this._rightSide.length <= 0) return;
const relative = Vector3d.dif(location, this._location);
const planeDistance = Math.abs(Vector3d.scalarProjection(relative, this._normal));
const now = Date.now();
const fadeDurationMs = 150;
const avatars = RoomWindowReflectionState.getAvatars();
const canvasWidth = this._landscapeRenderWidth;
const canvasHeight = this._landscapeRenderHeight;
if(planeDistance > 0.8) return false;
if(canvasWidth <= 0 || canvasHeight <= 0) return;
const leftSideLoc = Vector3d.scalarProjection(relative, this._leftSide);
const rightSideLoc = Vector3d.scalarProjection(relative, this._rightSide);
const container = new Container();
const visibleAvatarIds = new Set<number>();
const addReflectionSprite = (texture: Texture, oppositeTexture: Texture, location: IVector3D, alpha: number, verticalOffset: number = 0, direction: number = 0, avatarId: number = -1): boolean => {
if(!texture?.source || texture.source.destroyed || !texture.source.style || !location || alpha < 0) return false;
const relative = Vector3d.dif(location, this._location);
const planeDistance = Math.abs(Vector3d.scalarProjection(relative, this._normal));
if(planeDistance > 0.8) return false;
const leftSideLoc = Vector3d.scalarProjection(relative, this._leftSide);
const rightSideLoc = Vector3d.scalarProjection(relative, this._rightSide);
const closestMask = this._windowMasks.reduce((best, mask) => {
const score = Math.abs(mask.leftSideLoc - leftSideLoc) + Math.abs(mask.rightSideLoc - rightSideLoc);
if(!best || (score < best.score)) return { mask, score };
return best;
}, null as { mask: { leftSideLoc: number; rightSideLoc: number }; score: number } | null);
if(!closestMask || (closestMask.score > 3)) return false;
const x = (canvasWidth - ((canvasWidth * leftSideLoc) / this._leftSide.length));
const y = (canvasHeight - ((canvasHeight * rightSideLoc) / this._rightSide.length)) + verticalOffset;
const toPlaneX = (this._location.x - location.x);
const toPlaneY = (this._location.y - location.y);
const toPlaneLength = Math.hypot(toPlaneX, toPlaneY);
const facingRadians = ((((direction - 90) % 360) + 360) % 360) * (Math.PI / 180);
const facingX = Math.cos(facingRadians);
const facingY = Math.sin(facingRadians);
const facingWindow = (toPlaneLength > 0.001)
? (((facingX * toPlaneX) + (facingY * toPlaneY)) / toPlaneLength) > 0.5
: false;
const deltaLeft = Math.abs(closestMask.mask.leftSideLoc - leftSideLoc);
const deltaRight = Math.abs(closestMask.mask.rightSideLoc - rightSideLoc);
const isInFrontOfWindow = ((closestMask.score <= 2) && ((deltaLeft <= 0.9) || (deltaRight <= 0.9)));
const shouldMirror = isInFrontOfWindow;
const normal2DLength = Math.hypot(this._normal.x, this._normal.y);
const normalX = (normal2DLength > 0.0001) ? (this._normal.x / normal2DLength) : 0;
const normalY = (normal2DLength > 0.0001) ? (this._normal.y / normal2DLength) : 0;
const normalFacingDot = Math.abs((facingX * normalX) + (facingY * normalY));
const transitionLow = 0.6;
const transitionHigh = 0.8;
let oppositeWeight = 0;
if(shouldMirror && oppositeTexture)
{
if(normalFacingDot >= transitionHigh) oppositeWeight = 1;
else if(normalFacingDot > transitionLow) oppositeWeight = (normalFacingDot - transitionLow) / (transitionHigh - transitionLow);
}
if(oppositeWeight < 1)
{
const sprite = new Sprite(texture);
sprite.anchor.set(0.5, 1);
sprite.position.set(Math.trunc(x), Math.trunc(y));
sprite.scale.set(1, 1);
sprite.tint = 0xCFE3FF;
sprite.alpha = alpha * (1 - oppositeWeight);
container.addChild(sprite);
}
if(oppositeWeight > 0 && oppositeTexture)
{
const sprite = new Sprite(oppositeTexture);
sprite.anchor.set(0.5, 1);
sprite.position.set(Math.trunc(x), Math.trunc(y));
sprite.scale.set(1, 1);
sprite.tint = 0xCFE3FF;
sprite.alpha = alpha * oppositeWeight;
container.addChild(sprite);
}
return true;
};
for(const avatar of avatars)
const closestMask = this._windowMasks.reduce((best, mask) =>
{
if(!avatar?.texture?.source || avatar.texture.source.destroyed || !avatar.texture.source.style || !avatar.location) continue;
const score = Math.abs(mask.leftSideLoc - leftSideLoc) + Math.abs(mask.rightSideLoc - rightSideLoc);
let firstSeenAt = this._windowReflectionFirstSeenAt.get(avatar.id);
if(!best || (score < best.score)) return { mask, score };
if(firstSeenAt === undefined)
{
firstSeenAt = now;
}
return best;
}, null as { mask: { leftSideLoc: number; rightSideLoc: number }; score: number } | null);
const elapsed = Math.min(fadeDurationMs, Math.max(0, (now - firstSeenAt)));
const progress = (elapsed / fadeDurationMs);
const alpha = (0.4 * progress);
if(!closestMask || (closestMask.score > 3)) return false;
if(!addReflectionSprite(avatar.texture, avatar.oppositeTexture, avatar.location, alpha, avatar.verticalOffset || 0, avatar.direction || 0, avatar.id)) continue;
const x = (canvasWidth - ((canvasWidth * leftSideLoc) / this._leftSide.length));
const y = (canvasHeight - ((canvasHeight * rightSideLoc) / this._rightSide.length)) + verticalOffset;
if(!this._windowReflectionFirstSeenAt.has(avatar.id)) this._windowReflectionFirstSeenAt.set(avatar.id, firstSeenAt);
const toPlaneX = (this._location.x - location.x);
const toPlaneY = (this._location.y - location.y);
const toPlaneLength = Math.hypot(toPlaneX, toPlaneY);
visibleAvatarIds.add(avatar.id);
this._windowReflectionFadeOut.delete(avatar.id);
const facingRadians = ((((direction - 90) % 360) + 360) % 360) * (Math.PI / 180);
const facingX = Math.cos(facingRadians);
const facingY = Math.sin(facingRadians);
const facingWindow = (toPlaneLength > 0.001)
? (((facingX * toPlaneX) + (facingY * toPlaneY)) / toPlaneLength) > 0.5
: false;
const storedLocation = new Vector3d();
storedLocation.assign(avatar.location);
const deltaLeft = Math.abs(closestMask.mask.leftSideLoc - leftSideLoc);
const deltaRight = Math.abs(closestMask.mask.rightSideLoc - rightSideLoc);
this._windowReflectionLastVisible.set(avatar.id, {
texture: avatar.texture,
oppositeTexture: avatar.oppositeTexture,
location: storedLocation,
verticalOffset: avatar.verticalOffset || 0,
direction: avatar.direction || 0
});
const isInFrontOfWindow = ((closestMask.score <= 2) && ((deltaLeft <= 0.9) || (deltaRight <= 0.9)));
const shouldMirror = isInFrontOfWindow;
const normal2DLength = Math.hypot(this._normal.x, this._normal.y);
const normalX = (normal2DLength > 0.0001) ? (this._normal.x / normal2DLength) : 0;
const normalY = (normal2DLength > 0.0001) ? (this._normal.y / normal2DLength) : 0;
const normalFacingDot = Math.abs((facingX * normalX) + (facingY * normalY));
const transitionLow = 0.6;
const transitionHigh = 0.8;
let oppositeWeight = 0;
if(shouldMirror && oppositeTexture)
{
if(normalFacingDot >= transitionHigh) oppositeWeight = 1;
else if(normalFacingDot > transitionLow)
oppositeWeight = (normalFacingDot - transitionLow) / (transitionHigh - transitionLow);
}
for(const [id, lastVisible] of this._windowReflectionLastVisible)
if(oppositeWeight < 1)
{
if(visibleAvatarIds.has(id) || this._windowReflectionFadeOut.has(id)) continue;
if(!lastVisible.texture?.source || lastVisible.texture.source.destroyed || !lastVisible.texture.source.style)
{
this._windowReflectionLastVisible.delete(id);
this._windowReflectionFirstSeenAt.delete(id);
continue;
}
this._windowReflectionFadeOut.set(id, {
texture: lastVisible.texture,
oppositeTexture: lastVisible.oppositeTexture,
location: lastVisible.location,
verticalOffset: lastVisible.verticalOffset,
direction: lastVisible.direction,
startedAt: now
});
this._windowReflectionLastVisible.delete(id);
this._windowReflectionFirstSeenAt.delete(id);
const sprite = new Sprite(texture);
sprite.anchor.set(0.5, 1);
sprite.position.set(Math.trunc(x), Math.trunc(y));
sprite.tint = 0xCFE3FF;
sprite.alpha = alpha * (1 - oppositeWeight);
container.addChild(sprite);
}
for(const [id, fadeOut] of this._windowReflectionFadeOut)
if(oppositeWeight > 0 && oppositeTexture)
{
const elapsed = (now - fadeOut.startedAt);
if(elapsed >= fadeDurationMs)
{
this._windowReflectionFadeOut.delete(id);
continue;
}
const alpha = (0.4 * (1 - (elapsed / fadeDurationMs)));
if(!addReflectionSprite(fadeOut.texture, fadeOut.oppositeTexture, fadeOut.location, alpha, fadeOut.verticalOffset, fadeOut.direction, id)) this._windowReflectionFadeOut.delete(id);
const sprite = new Sprite(oppositeTexture);
sprite.anchor.set(0.5, 1);
sprite.position.set(Math.trunc(x), Math.trunc(y));
sprite.tint = 0xCFE3FF;
sprite.alpha = alpha * oppositeWeight;
container.addChild(sprite);
}
if(!container.children.length)
{
container.destroy({ children: true });
return true;
};
if(!avatars.length)
{
this._windowReflectionFirstSeenAt.clear();
this._windowReflectionLastVisible.clear();
}
for(const avatar of avatars)
{
if(!avatar?.texture?.source || avatar.texture.source.destroyed || !avatar.texture.source.style || !avatar.location)
continue;
return;
}
let firstSeenAt = this._windowReflectionFirstSeenAt.get(avatar.id);
if(this._maskFilter) container.filters = [this._maskFilter];
if(firstSeenAt === undefined) firstSeenAt = now;
GetRenderer().render({
target: this._planeTexture,
container,
transform: this.getMatrixForDimensions(canvasWidth, canvasHeight),
clear: false
const elapsed = Math.min(fadeDurationMs, Math.max(0, (now - firstSeenAt)));
const alpha = (0.4 * (elapsed / fadeDurationMs));
if(!addReflectionSprite(
avatar.texture,
avatar.oppositeTexture,
avatar.location,
alpha,
avatar.verticalOffset || 0,
avatar.direction || 0,
avatar.id))
continue;
if(!this._windowReflectionFirstSeenAt.has(avatar.id))
this._windowReflectionFirstSeenAt.set(avatar.id, firstSeenAt);
visibleAvatarIds.add(avatar.id);
this._windowReflectionFadeOut.delete(avatar.id);
const storedLocation = new Vector3d();
storedLocation.assign(avatar.location);
this._windowReflectionLastVisible.set(avatar.id, {
texture: avatar.texture,
oppositeTexture: avatar.oppositeTexture,
location: storedLocation,
verticalOffset: avatar.verticalOffset || 0,
direction: avatar.direction || 0
});
}
// move to fade-out (NO destruction)
for(const [id, lastVisible] of this._windowReflectionLastVisible)
{
if(visibleAvatarIds.has(id) || this._windowReflectionFadeOut.has(id)) continue;
this._windowReflectionFadeOut.set(id, {
...lastVisible,
startedAt: now
});
container.destroy({ children: true });
this._windowReflectionLastVisible.delete(id);
this._windowReflectionFirstSeenAt.delete(id);
}
// fade-out rendering (NO destruction)
for(const [id, fadeOut] of this._windowReflectionFadeOut)
{
const elapsed = (now - fadeOut.startedAt);
if(elapsed >= fadeDurationMs)
{
this._windowReflectionFadeOut.delete(id);
continue;
}
const alpha = (0.4 * (1 - (elapsed / fadeDurationMs)));
if(!addReflectionSprite(
fadeOut.texture,
fadeOut.oppositeTexture,
fadeOut.location,
alpha,
fadeOut.verticalOffset,
fadeOut.direction,
id))
{
this._windowReflectionFadeOut.delete(id);
}
}
if(!container.children.length)
{
container.destroy({ children: true });
if(!avatars.length)
{
this._windowReflectionFirstSeenAt.clear();
this._windowReflectionLastVisible.clear();
}
return;
}
if(this._maskFilter) container.filters = [this._maskFilter];
GetRenderer().render({
target: this._planeTexture,
container,
transform: this.getMatrixForDimensions(canvasWidth, canvasHeight),
clear: false
});
container.destroy({ children: true });
}
private updateCorners(geometry: IRoomGeometry): void
{
this._cornerA.assign(geometry.getScreenPosition(this._location));
@@ -248,6 +248,7 @@ export class BadgeImageManager
if(!renderedLayers) return false;
const texture = TextureUtils.generateTexture(container);
container.destroy({ children: true });
GetAssetManager().setTexture(groupBadge.code, texture);
GetEventDispatcher().dispatchEvent(new BadgeImageReadyEvent(groupBadge.code, texture));
+367 -396
View File
@@ -88,37 +88,15 @@
integrity sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==
"@csstools/css-syntax-patches-for-csstree@^1.0.21":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.1.tgz#ce4c9a0cbe30590491fcd5c03fe6426d22ba89e4"
integrity sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==
version "1.1.2"
resolved "https://registry.yarnpkg.com/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.2.tgz#bef07c507732a052b662302e7cb4e9fdf522af90"
integrity sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==
"@csstools/css-tokenizer@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz#798a33950d11226a0ebb6acafa60f5594424967f"
integrity sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==
"@emnapi/core@^1.7.1":
version "1.9.1"
resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.9.1.tgz#2143069c744ca2442074f8078462e51edd63c7bd"
integrity sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==
dependencies:
"@emnapi/wasi-threads" "1.2.0"
tslib "^2.4.0"
"@emnapi/runtime@^1.7.1":
version "1.9.1"
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.9.1.tgz#115ff2a0d589865be6bd8e9d701e499c473f2a8d"
integrity sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==
dependencies:
tslib "^2.4.0"
"@emnapi/wasi-threads@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz#a19d9772cc3d195370bf6e2a805eec40aa75e18e"
integrity sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==
dependencies:
tslib "^2.4.0"
"@esbuild/aix-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
@@ -349,12 +327,10 @@
"@jridgewell/sourcemap-codec" "^1.4.14"
"@napi-rs/wasm-runtime@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz#c3705ab549d176b8dc5172723d6156c3dc426af2"
integrity sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.2.tgz#e25454b4d44cfabd21d1bc801705359870e33ecc"
integrity sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==
dependencies:
"@emnapi/core" "^1.7.1"
"@emnapi/runtime" "^1.7.1"
"@tybys/wasm-util" "^0.10.1"
"@oxc-project/types@=0.122.0":
@@ -372,87 +348,87 @@
resolved "https://registry.yarnpkg.com/@pixi/gif/-/gif-3.0.1.tgz#2709d6559d316161cde1821b0f29cc2c05f88794"
integrity sha512-oGl0nkbFAe1vaRLyIvGbJc3fcIrS8vF1E00cwjiV+9f1pYe072D+yijJxHsgYnXs6jdzERh+D0MqSrEag0jRzg==
"@rolldown/binding-android-arm64@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.11.tgz#25a584227ed97239fd564451c0db2c359751b42a"
integrity sha512-SJ+/g+xNnOh6NqYxD0V3uVN4W3VfnrGsC9/hoglicgTNfABFG9JjISvkkU0dNY84MNHLWyOgxP9v9Y9pX4S7+A==
"@rolldown/binding-android-arm64@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz#4e6af08b89da02596cc5da4b105082b68673ffec"
integrity sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==
"@rolldown/binding-darwin-arm64@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.11.tgz#dcfa96c4d8c7baa47f5b90294ce8ebf1b0b1dbf9"
integrity sha512-7WQgR8SfOPwmDZGFkThUvsmd/nwAWv91oCO4I5LS7RKrssPZmOt7jONN0cW17ydGC1n/+puol1IpoieKqQidmg==
"@rolldown/binding-darwin-arm64@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz#a06890f4c9b48ff0fc97edbedfc762bef7cffd73"
integrity sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==
"@rolldown/binding-darwin-x64@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.11.tgz#6e751ea2067cacee0c94f0e8b087761dde62f9ea"
integrity sha512-39Ks6UvIHq4rEogIfQBoBRusj0Q0nPVWIvqmwBLaT6aqQGIakHdESBVOPRRLacy4WwUPIx4ZKzfZ9PMW+IeyUQ==
"@rolldown/binding-darwin-x64@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz#eddf6aa3ed3509171fe21711f1e8ec8e0fd7ec49"
integrity sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==
"@rolldown/binding-freebsd-x64@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.11.tgz#b7582b959398c5871034b94ba0a8ecde0425a8e7"
integrity sha512-jfsm0ZHfhiqrvWjJAmzsqiIFPz5e7mAoCOPBNTcNgkiid/LaFKiq92+0ojH+nmJmKYkre4t71BWXUZDNp7vsag==
"@rolldown/binding-freebsd-x64@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz#2102dfed19fd1f1b53435fcaaf0bc61129a266a3"
integrity sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==
"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.11.tgz#3b8c5e071d6a0ed1cb1880c1948c6fece553502a"
integrity sha512-zjQaUtSyq1nVe3nxmlSCuR96T1LPlpvmJ0SZy0WJFEsV4kFbXcq2u68L4E6O0XeFj4aex9bEauqjW8UQBeAvfQ==
"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz#b2c13f40e990fd1e1935492850536c768c961a0f"
integrity sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==
"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.11.tgz#2533165620137b077ae4ede92b752a63cd85cfcb"
integrity sha512-WMW1yE6IOnehTcFE9eipFkm3XN63zypWlrJQ2iF7NrQ9b2LDRjumFoOGJE8RJJTJCTBAdmLMnJ8uVitACUUo1Q==
"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz#32ca9f77c1e76b2913b3d53d2029dc171c0532d6"
integrity sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==
"@rolldown/binding-linux-arm64-musl@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.11.tgz#b04cf5b806a012027a4e8b139e0f86b2ff7621c0"
integrity sha512-jfndI9tsfm4APzjNt6QdBkYwre5lRPUgHeDHoI7ydKUuJvz3lZeCfMsI56BZj+7BYqiKsJm7cfd/6KYV7ubrBg==
"@rolldown/binding-linux-arm64-musl@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz#f4337ddd52f0ed3ada2105b59ee1b757a2c4858c"
integrity sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==
"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.11.tgz#bda9c11fe03482033d5dac6a943802b3e7579550"
integrity sha512-ZlFgw46NOAGMgcdvdYwAGu2Q+SLFA9LzbJLW+iyMOJyhj5wk6P3KEE9Gct4xWwSzFoPI7JCdYmYMzVtlgQ+zfw==
"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz#22fdd14cb00ee8208c28a39bab7f28860ec6705d"
integrity sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==
"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.11.tgz#55daa2d35f92f62e958fc44e12db1c16e1f271c5"
integrity sha512-hIOYmuT6ofM4K04XAZd3OzMySEO4K0/nc9+jmNcxNAxRi6c5UWpqfw3KMFV4MVFWL+jQsSh+bGw2VqmaPMTLyw==
"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz#838215096d1de6d3d509e0410801cb7cda8161ff"
integrity sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==
"@rolldown/binding-linux-x64-gnu@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.11.tgz#8ca1abf607bbe2f7fdd6f6416192937dc9ea1e54"
integrity sha512-qXBQQO9OvkjjQPLdUVr7Nr2t3QTZI7s4KZtfw7HzBgjbmAPSFwSv4rmET9lLSgq3rH/ndA3ngv3Qb8l2njoPNA==
"@rolldown/binding-linux-x64-gnu@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz#f7d71d97f6bd43198596b26dc2cb364586e12673"
integrity sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==
"@rolldown/binding-linux-x64-musl@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.11.tgz#36a52beee8ac97a79d1ed8f1b94fab677e3e4d11"
integrity sha512-/tpFfoSTzUkH9LPY+cYbqZBDyyX62w5fICq9qzsHLL8uTI6BHip3Q9Uzft0wylk/i8OOwKik8OxW+QAhDmzwmg==
"@rolldown/binding-linux-x64-musl@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz#a2ca737f01b0ad620c4c404ca176ea3e3ad804c3"
integrity sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==
"@rolldown/binding-openharmony-arm64@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.11.tgz#91c74fd23b3f3f3942fe4b3aefc9428ecbaa55fd"
integrity sha512-mcp3Rio2w72IvdZG0oQ4bM2c2oumtwHfUfKncUM6zGgz0KgPz4YmDPQfnXEiY5t3+KD/i8HG2rOB/LxdmieK2g==
"@rolldown/binding-openharmony-arm64@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz#f66317e29eafcc300bed7af8dddac26ab3b1bf82"
integrity sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==
"@rolldown/binding-wasm32-wasi@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.11.tgz#6520bafe57ff1cd2fb45f8f22b1cb6d57be44e79"
integrity sha512-LXk5Hii1Ph9asuGRjBuz8TUxdc1lWzB7nyfdoRgI0WGPZKmCxvlKk8KfYysqtr4MfGElu/f/pEQRh8fcEgkrWw==
"@rolldown/binding-wasm32-wasi@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz#8825523fdffa1f1dc4683be9650ffaa9e4a77f04"
integrity sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==
dependencies:
"@napi-rs/wasm-runtime" "^1.1.1"
"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.11.tgz#73dd1c4737473c8270b61cd2e42b05a34453ffc0"
integrity sha512-dDwf5otnx0XgRY1yqxOC4ITizcdzS/8cQ3goOWv3jFAo4F+xQYni+hnMuO6+LssHHdJW7+OCVL3CoU4ycnh35Q==
"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz#4f3a17e3d68a58309c27c0930b0f7986ccabef47"
integrity sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==
"@rolldown/binding-win32-x64-msvc@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.11.tgz#4d922aa6dd6bf27c73eba93fec9a0aed62549095"
integrity sha512-LN4/skhSggybX71ews7dAj6r2geaMJfm3kMbK2KhFMg9B10AZXnKoLCVVgzhMHL0S+aKtr4p8QbAW8k+w95bAA==
"@rolldown/binding-win32-x64-msvc@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz#d762765d5660598a96b570b513f535c151272985"
integrity sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==
"@rolldown/pluginutils@1.0.0-rc.11":
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.11.tgz#110d8cc72990c4e36a79791eeafe7cca979e00c9"
integrity sha512-xQO9vbwBecJRv9EUcQ/y0dzSTJgA7Q6UVN7xp6B81+tBGSLVAK03yJ9NkJaUA7JFD91kbjxRSC/mDnmvXzbHoQ==
"@rolldown/pluginutils@1.0.0-rc.12":
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz#74163aec62fa51cee18d62709483963dceb3f6dc"
integrity sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==
"@rollup/plugin-typescript@^11.1.6":
version "11.1.6"
@@ -471,130 +447,130 @@
estree-walker "^2.0.2"
picomatch "^4.0.2"
"@rollup/rollup-android-arm-eabi@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz#7e158ddfc16f78da99c0d5ccbae6cae403ef3284"
integrity sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==
"@rollup/rollup-android-arm-eabi@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz#043f145716234529052ef9e1ce1d847ffbe9e674"
integrity sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==
"@rollup/rollup-android-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz#49f4ae0e22b6f9ffbcd3818b9a0758fa2d10b1cd"
integrity sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==
"@rollup/rollup-android-arm64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz#023e1bd146e7519087dfd9e8b29e4cf9f8ecd35c"
integrity sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==
"@rollup/rollup-darwin-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz#bb200269069acf5c1c4d79ad142524f77e8b8236"
integrity sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==
"@rollup/rollup-darwin-arm64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz#55ccb5487c02419954c57a7a80602885d616e1ee"
integrity sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==
"@rollup/rollup-darwin-x64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz#1bf7a92b27ebdd5e0d1d48503c7811160773be1a"
integrity sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==
"@rollup/rollup-darwin-x64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz#254b65404b14488c83225e88b8819376ad71a784"
integrity sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==
"@rollup/rollup-freebsd-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz#5ccf537b99c5175008444702193ad0b1c36f7f16"
integrity sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==
"@rollup/rollup-freebsd-arm64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz#6377ff38c052c76fcaffb7b2728d3172fe676fe6"
integrity sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==
"@rollup/rollup-freebsd-x64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz#1196ecd7bf4e128624ef83cd1f9d785114474a77"
integrity sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==
"@rollup/rollup-freebsd-x64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz#ba3902309d088eaf7139b916f09b7140b28b406d"
integrity sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==
"@rollup/rollup-linux-arm-gnueabihf@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz#cc147633a4af229fee83a737bf2334fbac3dc28e"
integrity sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==
"@rollup/rollup-linux-arm-gnueabihf@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz#e011b9a14638267e53b446286e838dbdaf53f167"
integrity sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==
"@rollup/rollup-linux-arm-musleabihf@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz#3559f9f060153ea54594a42c3b87a297bedcc26e"
integrity sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==
"@rollup/rollup-linux-arm-musleabihf@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz#0bce9ce9a009490abd28fd922dd97ed521311afe"
integrity sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==
"@rollup/rollup-linux-arm64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz#e91f887b154123485cfc4b59befe2080fcd8f2df"
integrity sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==
"@rollup/rollup-linux-arm64-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz#6f6cfbbf324fbb4ceff213abdf7f322fd45d25ff"
integrity sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==
"@rollup/rollup-linux-arm64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz#660752f040df9ba44a24765df698928917c0bf21"
integrity sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==
"@rollup/rollup-linux-arm64-musl@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz#f7cb3eecaea9c151ef77342af05f38ae924bf795"
integrity sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==
"@rollup/rollup-linux-loong64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz#cb0e939a5fa479ccef264f3f45b31971695f869c"
integrity sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==
"@rollup/rollup-linux-loong64-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz#499bfac6bb669fd88bb664357bf6be996a28b92f"
integrity sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==
"@rollup/rollup-linux-loong64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz#42f86fbc82cd1a81be2d346476dd3231cf5ee442"
integrity sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==
"@rollup/rollup-linux-loong64-musl@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz#127dfac08764764396bbe04453c545d38a3ab518"
integrity sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==
"@rollup/rollup-linux-ppc64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz#39776a647a789dc95ea049277c5ef8f098df77f9"
integrity sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==
"@rollup/rollup-linux-ppc64-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz#6a72f4d95852aac18326c5bf708393e8f3a41b70"
integrity sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==
"@rollup/rollup-linux-ppc64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz#466f20029a8e8b3bb2954c7ddebc9586420cac2c"
integrity sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==
"@rollup/rollup-linux-ppc64-musl@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz#ba8674666b00d6f9066cb9a5771a8430c34d2de6"
integrity sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==
"@rollup/rollup-linux-riscv64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz#cff9877c78f12e7aa6246f6902ad913e99edb2b7"
integrity sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==
"@rollup/rollup-linux-riscv64-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz#17cc38b2a71e302547cad29bcf78d0db2618c922"
integrity sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==
"@rollup/rollup-linux-riscv64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz#9a762fb99b5a82a921017f56491b7e892b9fb17d"
integrity sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==
"@rollup/rollup-linux-riscv64-musl@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz#e36a41e2d8bd247331bd5cfc13b8c951d33454a2"
integrity sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==
"@rollup/rollup-linux-s390x-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz#9d25ad8ac7dab681935baf78ac5ea92d14629cdf"
integrity sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==
"@rollup/rollup-linux-s390x-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz#1687265f1f4bdea0726c761a58c2db9933609d68"
integrity sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==
"@rollup/rollup-linux-x64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz#5e5139e11819fa38a052368da79422cb4afcf466"
integrity sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==
"@rollup/rollup-linux-x64-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz#56a6a0d9076f2a05a976031493b24a20ddcc0e77"
integrity sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==
"@rollup/rollup-linux-x64-musl@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz#b6211d46e11b1f945f5504cc794fce839331ed08"
integrity sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==
"@rollup/rollup-linux-x64-musl@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz#bc240ebb5b9fd8d41ca8a80cb458452e8c187e0f"
integrity sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==
"@rollup/rollup-openbsd-x64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz#e6e09eebaa7012bb9c7331b437a9e992bd94ca35"
integrity sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==
"@rollup/rollup-openbsd-x64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz#6f80d48a006c4b2ffa7724e95a3e33f6975872af"
integrity sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==
"@rollup/rollup-openharmony-arm64@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz#f7d99ae857032498e57a5e7259fb7100fd24a87e"
integrity sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==
"@rollup/rollup-openharmony-arm64@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz#8f6db6f70d0a48abd833b263cd6dd3e7199c4c0e"
integrity sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==
"@rollup/rollup-win32-arm64-msvc@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz#41e392f5d9f3bf1253fdaf2f6d6f6b1bfc452856"
integrity sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==
"@rollup/rollup-win32-arm64-msvc@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz#b68989bfa815d0b3d4e302ecd90bda744438b177"
integrity sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==
"@rollup/rollup-win32-ia32-msvc@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz#f41b0490be0e5d3cf459b4dc076a192b532adea9"
integrity sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==
"@rollup/rollup-win32-ia32-msvc@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz#c098e45338c50f22f1b288476354f025b746285b"
integrity sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==
"@rollup/rollup-win32-x64-gnu@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz#0fcf9f1fcb750f0317b13aac3b3231687e6397a5"
integrity sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==
"@rollup/rollup-win32-x64-gnu@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz#2c9e15be155b79d05999953b1737b2903842e903"
integrity sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==
"@rollup/rollup-win32-x64-msvc@4.60.0":
version "4.60.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz#3afdb30405f6d4248df5e72e1ca86c5eab55fab8"
integrity sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==
"@rollup/rollup-win32-x64-msvc@4.60.1":
version "4.60.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz#23b860113e9f87eea015d1fa3a4240a52b42fcd4"
integrity sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==
"@standard-schema/spec@^1.1.0":
version "1.1.0"
@@ -658,109 +634,109 @@
resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.4.tgz#c3575ef8125e176c345fa0e7b301c1db41170c15"
integrity sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==
"@typescript-eslint/eslint-plugin@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz#ad0dcefeca9c2ecbe09f730d478063666aee010b"
integrity sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==
"@typescript-eslint/eslint-plugin@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.0.tgz#ad40e492f1931f46da1bd888e52b9e56df9063aa"
integrity sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==
dependencies:
"@eslint-community/regexpp" "^4.12.2"
"@typescript-eslint/scope-manager" "8.57.2"
"@typescript-eslint/type-utils" "8.57.2"
"@typescript-eslint/utils" "8.57.2"
"@typescript-eslint/visitor-keys" "8.57.2"
"@typescript-eslint/scope-manager" "8.58.0"
"@typescript-eslint/type-utils" "8.58.0"
"@typescript-eslint/utils" "8.58.0"
"@typescript-eslint/visitor-keys" "8.58.0"
ignore "^7.0.5"
natural-compare "^1.4.0"
ts-api-utils "^2.4.0"
ts-api-utils "^2.5.0"
"@typescript-eslint/parser@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.57.2.tgz#b819955e39f976c0d4f95b5ed67fe22f85cd6898"
integrity sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==
"@typescript-eslint/parser@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.58.0.tgz#da04ece1967b6c2fe8f10c3473dabf3825795ef7"
integrity sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==
dependencies:
"@typescript-eslint/scope-manager" "8.57.2"
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/typescript-estree" "8.57.2"
"@typescript-eslint/visitor-keys" "8.57.2"
"@typescript-eslint/scope-manager" "8.58.0"
"@typescript-eslint/types" "8.58.0"
"@typescript-eslint/typescript-estree" "8.58.0"
"@typescript-eslint/visitor-keys" "8.58.0"
debug "^4.4.3"
"@typescript-eslint/project-service@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.57.2.tgz#dfbc7777f9f633f2b06b558cda3836e76f856e3c"
integrity sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==
"@typescript-eslint/project-service@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.58.0.tgz#66ceda0aabf7427aec3e2713fa43eb278dead2aa"
integrity sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==
dependencies:
"@typescript-eslint/tsconfig-utils" "^8.57.2"
"@typescript-eslint/types" "^8.57.2"
"@typescript-eslint/tsconfig-utils" "^8.58.0"
"@typescript-eslint/types" "^8.58.0"
debug "^4.4.3"
"@typescript-eslint/scope-manager@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz#734dcde40677f430b5d963108337295bdbc09dae"
integrity sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==
"@typescript-eslint/scope-manager@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.58.0.tgz#e304142775e49a1b7ac3c8bf2536714447c72cab"
integrity sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==
dependencies:
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/visitor-keys" "8.57.2"
"@typescript-eslint/types" "8.58.0"
"@typescript-eslint/visitor-keys" "8.58.0"
"@typescript-eslint/tsconfig-utils@8.57.2", "@typescript-eslint/tsconfig-utils@^8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz#cf82dc11e884103ec13188a7352591efaa1a887e"
integrity sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==
"@typescript-eslint/tsconfig-utils@8.58.0", "@typescript-eslint/tsconfig-utils@^8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.0.tgz#c5a8edb21f31e0fdee565724e1b984171c559482"
integrity sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==
"@typescript-eslint/type-utils@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz#3ec65a94e73776252991a3cf0a15d220734c28f5"
integrity sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==
"@typescript-eslint/type-utils@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.58.0.tgz#ce0e72cd967ffbbe8de322db6089bd4374be352f"
integrity sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==
dependencies:
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/typescript-estree" "8.57.2"
"@typescript-eslint/utils" "8.57.2"
"@typescript-eslint/types" "8.58.0"
"@typescript-eslint/typescript-estree" "8.58.0"
"@typescript-eslint/utils" "8.58.0"
debug "^4.4.3"
ts-api-utils "^2.4.0"
ts-api-utils "^2.5.0"
"@typescript-eslint/types@8.57.2", "@typescript-eslint/types@^8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.57.2.tgz#efe0da4c28b505ed458f113aa960dce2c5c671f4"
integrity sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==
"@typescript-eslint/types@8.58.0", "@typescript-eslint/types@^8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.58.0.tgz#e94ae7abdc1c6530e71183c1007b61fa93112a5a"
integrity sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==
"@typescript-eslint/typescript-estree@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz#432e61a6cf2ab565837da387e5262c159672abea"
integrity sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==
"@typescript-eslint/typescript-estree@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.0.tgz#ed233faa8e2f2a2e1357c3e7d553d6465a0ee59a"
integrity sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==
dependencies:
"@typescript-eslint/project-service" "8.57.2"
"@typescript-eslint/tsconfig-utils" "8.57.2"
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/visitor-keys" "8.57.2"
"@typescript-eslint/project-service" "8.58.0"
"@typescript-eslint/tsconfig-utils" "8.58.0"
"@typescript-eslint/types" "8.58.0"
"@typescript-eslint/visitor-keys" "8.58.0"
debug "^4.4.3"
minimatch "^10.2.2"
semver "^7.7.3"
tinyglobby "^0.2.15"
ts-api-utils "^2.4.0"
ts-api-utils "^2.5.0"
"@typescript-eslint/utils@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.57.2.tgz#46a8974c24326fb8899486728428a0f1a3115014"
integrity sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==
"@typescript-eslint/utils@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.58.0.tgz#21a74a7963b0d288b719a4121c7dd555adaab3c3"
integrity sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==
dependencies:
"@eslint-community/eslint-utils" "^4.9.1"
"@typescript-eslint/scope-manager" "8.57.2"
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/typescript-estree" "8.57.2"
"@typescript-eslint/scope-manager" "8.58.0"
"@typescript-eslint/types" "8.58.0"
"@typescript-eslint/typescript-estree" "8.58.0"
"@typescript-eslint/visitor-keys@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz#a5c9605774247336c0412beb7dc288ab2a07c11e"
integrity sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==
"@typescript-eslint/visitor-keys@8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.0.tgz#2abd55a4be70fd55967aceaba4330b9ba9f45189"
integrity sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==
dependencies:
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/types" "8.58.0"
eslint-visitor-keys "^5.0.0"
"@vitest/coverage-v8@^4.0.18":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-4.1.1.tgz#579ba2f997b8863a37b6689221ba74e364d53118"
integrity sha512-nZ4RWwGCoGOQRMmU/Q9wlUY540RVRxJZ9lxFsFfy0QV7Zmo5VVBhB6Sl9Xa0KIp2iIs3zWfPlo9LcY1iqbpzCw==
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-4.1.2.tgz#2617f76d12065d2caadedb92bb7bb86cd2af1131"
integrity sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==
dependencies:
"@bcoe/v8-coverage" "^1.0.2"
"@vitest/utils" "4.1.1"
"@vitest/utils" "4.1.2"
ast-v8-to-istanbul "^1.0.0"
istanbul-lib-coverage "^3.2.2"
istanbul-lib-report "^3.0.1"
@@ -768,67 +744,67 @@
magicast "^0.5.2"
obug "^2.1.1"
std-env "^4.0.0-rc.1"
tinyrainbow "^3.0.3"
tinyrainbow "^3.1.0"
"@vitest/expect@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.1.tgz#875b3fcfa3e8803d6a69cf6ddb58613eab7ae772"
integrity sha512-xAV0fqBTk44Rn6SjJReEQkHP3RrqbJo6JQ4zZ7/uVOiJZRarBtblzrOfFIZeYUrukp2YD6snZG6IBqhOoHTm+A==
"@vitest/expect@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.2.tgz#2aec02233db4eac14777e6a7d14a535c63ae2d9b"
integrity sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==
dependencies:
"@standard-schema/spec" "^1.1.0"
"@types/chai" "^5.2.2"
"@vitest/spy" "4.1.1"
"@vitest/utils" "4.1.1"
"@vitest/spy" "4.1.2"
"@vitest/utils" "4.1.2"
chai "^6.2.2"
tinyrainbow "^3.0.3"
tinyrainbow "^3.1.0"
"@vitest/mocker@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.1.tgz#fe804fbb561e6638864ea8ac4f16a71f5a6f1b91"
integrity sha512-h3BOylsfsCLPeceuCPAAJ+BvNwSENgJa4hXoXu4im0bs9Lyp4URc4JYK4pWLZ4pG/UQn7AT92K6IByi6rE6g3A==
"@vitest/mocker@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.2.tgz#3f23523697f9ab9e851b58b2213c4ab6181aa0e6"
integrity sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==
dependencies:
"@vitest/spy" "4.1.1"
"@vitest/spy" "4.1.2"
estree-walker "^3.0.3"
magic-string "^0.30.21"
"@vitest/pretty-format@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.1.tgz#ec0e5e7c1def39c5fac037429166278ef2f85de8"
integrity sha512-GM+TEQN5WhOygr1lp7skeVjdLPqqWMHsfzXrcHAqZJi/lIVh63H0kaRCY8MDhNWikx19zBUK8ceaLB7X5AH9NQ==
"@vitest/pretty-format@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.2.tgz#c2671aa1c931dc8f2759589fc87ea4b2602892c5"
integrity sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==
dependencies:
tinyrainbow "^3.0.3"
tinyrainbow "^3.1.0"
"@vitest/runner@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.1.tgz#bedc6eef9f932788a0253c97f7bee82c0b52334c"
integrity sha512-f7+FPy75vN91QGWsITueq0gedwUZy1fLtHOCMeQpjs8jTekAHeKP80zfDEnhrleviLHzVSDXIWuCIOFn3D3f8A==
"@vitest/runner@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.2.tgz#6f744fa0d92d31f4c8c255b64bbe073cb75fd96e"
integrity sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==
dependencies:
"@vitest/utils" "4.1.1"
"@vitest/utils" "4.1.2"
pathe "^2.0.3"
"@vitest/snapshot@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.1.tgz#ffc080d1aa15ce976bf61dcef29dbe489099be69"
integrity sha512-kMVSgcegWV2FibXEx9p9WIKgje58lcTbXgnJixfcg15iK8nzCXhmalL0ZLtTWLW9PH1+1NEDShiFFedB3tEgWg==
"@vitest/snapshot@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.2.tgz#3972b8ed7a311133e12cb833bf86463d26cdd455"
integrity sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==
dependencies:
"@vitest/pretty-format" "4.1.1"
"@vitest/utils" "4.1.1"
"@vitest/pretty-format" "4.1.2"
"@vitest/utils" "4.1.2"
magic-string "^0.30.21"
pathe "^2.0.3"
"@vitest/spy@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.1.tgz#7eb25de32a3d65810cb9adb31a2872c1e8341be5"
integrity sha512-6Ti/KT5OVaiupdIZEuZN7l3CZcR0cxnxt70Z0//3CtwgObwA6jZhmVBA3yrXSVN3gmwjgd7oDNLlsXz526gpRA==
"@vitest/spy@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.2.tgz#1f312cef5756256639b4c0614f74c8ad9a036ef9"
integrity sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==
"@vitest/utils@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.1.tgz#1c8b1f3405008a10bc2cf74eb8ba1b32c1dbc789"
integrity sha512-cNxAlaB3sHoCdL6pj6yyUXv9Gry1NHNg0kFTXdvSIZXLHsqKH7chiWOkwJ5s5+d/oMwcoG9T0bKU38JZWKusrQ==
"@vitest/utils@4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.2.tgz#32be8f42eb6683a598b1c61d7ec9f55596c60ecb"
integrity sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==
dependencies:
"@vitest/pretty-format" "4.1.1"
"@vitest/pretty-format" "4.1.2"
convert-source-map "^2.0.0"
tinyrainbow "^3.0.3"
tinyrainbow "^3.1.0"
"@webgpu/types@^0.1.69":
version "0.1.69"
@@ -836,9 +812,9 @@
integrity sha512-RPmm6kgRbI8e98zSD3RVACvnuktIja5+yLgDAkTmxLr90BEwdTXRQWNLF3ETTTyH/8mKhznZuN5AveXYFEsMGQ==
"@xmldom/xmldom@^0.8.11":
version "0.8.11"
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608"
integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==
version "0.8.12"
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.12.tgz#cf488a5435fa06c7374ad1449c69cea0f823624b"
integrity sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==
acorn-jsx@^5.3.2:
version "5.3.2"
@@ -859,11 +835,6 @@ ajv@^6.14.0:
version "6.14.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a"
integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==
dependencies:
fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
ansi-styles@^4.1.0:
version "4.3.0"
@@ -909,17 +880,17 @@ bidi-js@^1.0.3:
require-from-string "^2.0.2"
brace-expansion@^1.1.7:
version "1.1.12"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
version "1.1.13"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.13.tgz#d37875c01dc9eff988dd49d112a57cb67b54efe6"
integrity sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
brace-expansion@^5.0.2:
version "5.0.4"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.4.tgz#614daaecd0a688f660bbbc909a8748c3d80d4336"
integrity sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==
brace-expansion@^5.0.5:
version "5.0.5"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb"
integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==
dependencies:
balanced-match "^4.0.2"
@@ -1644,11 +1615,11 @@ mdn-data@2.27.1:
integrity sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==
minimatch@^10.2.2:
version "10.2.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.4.tgz#465b3accbd0218b8281f5301e27cedc697f96fde"
integrity sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==
version "10.2.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1"
integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==
dependencies:
brace-expansion "^5.0.2"
brace-expansion "^5.0.5"
minimatch@^3.1.5:
version "3.1.5"
@@ -1762,7 +1733,7 @@ picocolors@^1.1.1:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^4.0.2, picomatch@^4.0.3:
picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
@@ -1828,62 +1799,62 @@ resolve@^1.22.1:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
rolldown@1.0.0-rc.11:
version "1.0.0-rc.11"
resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.11.tgz#6eaf091b1bbb5ed92e5302171a3d59f0d026d9c0"
integrity sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==
rolldown@1.0.0-rc.12:
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.12.tgz#e226fa74a4c21c71a13f8e44f778f81d58853ad5"
integrity sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==
dependencies:
"@oxc-project/types" "=0.122.0"
"@rolldown/pluginutils" "1.0.0-rc.11"
"@rolldown/pluginutils" "1.0.0-rc.12"
optionalDependencies:
"@rolldown/binding-android-arm64" "1.0.0-rc.11"
"@rolldown/binding-darwin-arm64" "1.0.0-rc.11"
"@rolldown/binding-darwin-x64" "1.0.0-rc.11"
"@rolldown/binding-freebsd-x64" "1.0.0-rc.11"
"@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.11"
"@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.11"
"@rolldown/binding-linux-arm64-musl" "1.0.0-rc.11"
"@rolldown/binding-linux-ppc64-gnu" "1.0.0-rc.11"
"@rolldown/binding-linux-s390x-gnu" "1.0.0-rc.11"
"@rolldown/binding-linux-x64-gnu" "1.0.0-rc.11"
"@rolldown/binding-linux-x64-musl" "1.0.0-rc.11"
"@rolldown/binding-openharmony-arm64" "1.0.0-rc.11"
"@rolldown/binding-wasm32-wasi" "1.0.0-rc.11"
"@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.11"
"@rolldown/binding-win32-x64-msvc" "1.0.0-rc.11"
"@rolldown/binding-android-arm64" "1.0.0-rc.12"
"@rolldown/binding-darwin-arm64" "1.0.0-rc.12"
"@rolldown/binding-darwin-x64" "1.0.0-rc.12"
"@rolldown/binding-freebsd-x64" "1.0.0-rc.12"
"@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.12"
"@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.12"
"@rolldown/binding-linux-arm64-musl" "1.0.0-rc.12"
"@rolldown/binding-linux-ppc64-gnu" "1.0.0-rc.12"
"@rolldown/binding-linux-s390x-gnu" "1.0.0-rc.12"
"@rolldown/binding-linux-x64-gnu" "1.0.0-rc.12"
"@rolldown/binding-linux-x64-musl" "1.0.0-rc.12"
"@rolldown/binding-openharmony-arm64" "1.0.0-rc.12"
"@rolldown/binding-wasm32-wasi" "1.0.0-rc.12"
"@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.12"
"@rolldown/binding-win32-x64-msvc" "1.0.0-rc.12"
rollup@^4.20.0:
version "4.60.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.0.tgz#d7d68c8cda873e96e08b2443505609b7e7be9eb8"
integrity sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==
version "4.60.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.1.tgz#b4aa2bcb3a5e1437b5fad40d43fe42d4bde7a42d"
integrity sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==
dependencies:
"@types/estree" "1.0.8"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.60.0"
"@rollup/rollup-android-arm64" "4.60.0"
"@rollup/rollup-darwin-arm64" "4.60.0"
"@rollup/rollup-darwin-x64" "4.60.0"
"@rollup/rollup-freebsd-arm64" "4.60.0"
"@rollup/rollup-freebsd-x64" "4.60.0"
"@rollup/rollup-linux-arm-gnueabihf" "4.60.0"
"@rollup/rollup-linux-arm-musleabihf" "4.60.0"
"@rollup/rollup-linux-arm64-gnu" "4.60.0"
"@rollup/rollup-linux-arm64-musl" "4.60.0"
"@rollup/rollup-linux-loong64-gnu" "4.60.0"
"@rollup/rollup-linux-loong64-musl" "4.60.0"
"@rollup/rollup-linux-ppc64-gnu" "4.60.0"
"@rollup/rollup-linux-ppc64-musl" "4.60.0"
"@rollup/rollup-linux-riscv64-gnu" "4.60.0"
"@rollup/rollup-linux-riscv64-musl" "4.60.0"
"@rollup/rollup-linux-s390x-gnu" "4.60.0"
"@rollup/rollup-linux-x64-gnu" "4.60.0"
"@rollup/rollup-linux-x64-musl" "4.60.0"
"@rollup/rollup-openbsd-x64" "4.60.0"
"@rollup/rollup-openharmony-arm64" "4.60.0"
"@rollup/rollup-win32-arm64-msvc" "4.60.0"
"@rollup/rollup-win32-ia32-msvc" "4.60.0"
"@rollup/rollup-win32-x64-gnu" "4.60.0"
"@rollup/rollup-win32-x64-msvc" "4.60.0"
"@rollup/rollup-android-arm-eabi" "4.60.1"
"@rollup/rollup-android-arm64" "4.60.1"
"@rollup/rollup-darwin-arm64" "4.60.1"
"@rollup/rollup-darwin-x64" "4.60.1"
"@rollup/rollup-freebsd-arm64" "4.60.1"
"@rollup/rollup-freebsd-x64" "4.60.1"
"@rollup/rollup-linux-arm-gnueabihf" "4.60.1"
"@rollup/rollup-linux-arm-musleabihf" "4.60.1"
"@rollup/rollup-linux-arm64-gnu" "4.60.1"
"@rollup/rollup-linux-arm64-musl" "4.60.1"
"@rollup/rollup-linux-loong64-gnu" "4.60.1"
"@rollup/rollup-linux-loong64-musl" "4.60.1"
"@rollup/rollup-linux-ppc64-gnu" "4.60.1"
"@rollup/rollup-linux-ppc64-musl" "4.60.1"
"@rollup/rollup-linux-riscv64-gnu" "4.60.1"
"@rollup/rollup-linux-riscv64-musl" "4.60.1"
"@rollup/rollup-linux-s390x-gnu" "4.60.1"
"@rollup/rollup-linux-x64-gnu" "4.60.1"
"@rollup/rollup-linux-x64-musl" "4.60.1"
"@rollup/rollup-openbsd-x64" "4.60.1"
"@rollup/rollup-openharmony-arm64" "4.60.1"
"@rollup/rollup-win32-arm64-msvc" "4.60.1"
"@rollup/rollup-win32-ia32-msvc" "4.60.1"
"@rollup/rollup-win32-x64-gnu" "4.60.1"
"@rollup/rollup-win32-x64-msvc" "4.60.1"
fsevents "~2.3.2"
saxes@^6.0.0:
@@ -1975,7 +1946,7 @@ tinyglobby@^0.2.15:
fdir "^6.5.0"
picomatch "^4.0.3"
tinyrainbow@^3.0.3:
tinyrainbow@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.1.0.tgz#1d8a623893f95cf0a2ddb9e5d11150e191409421"
integrity sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==
@@ -2006,7 +1977,7 @@ tr46@^6.0.0:
dependencies:
punycode "^2.3.1"
ts-api-utils@^2.4.0:
ts-api-utils@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1"
integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==
@@ -2024,14 +1995,14 @@ type-check@^0.4.0, type-check@~0.4.0:
prelude-ls "^1.2.1"
typescript-eslint@^8.26.1:
version "8.57.2"
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.57.2.tgz#d64c6648dda5b15176708701537ab0b55ba3c83d"
integrity sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==
version "8.58.0"
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.58.0.tgz#5758b1b68ae7ec05d756b98c63a1f6953a01172b"
integrity sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==
dependencies:
"@typescript-eslint/eslint-plugin" "8.57.2"
"@typescript-eslint/parser" "8.57.2"
"@typescript-eslint/typescript-estree" "8.57.2"
"@typescript-eslint/utils" "8.57.2"
"@typescript-eslint/eslint-plugin" "8.58.0"
"@typescript-eslint/parser" "8.58.0"
"@typescript-eslint/typescript-estree" "8.58.0"
"@typescript-eslint/utils" "8.58.0"
typescript@~5.5.4:
version "5.5.4"
@@ -2072,30 +2043,30 @@ vite@^5.4.9:
fsevents "~2.3.3"
"vite@^6.0.0 || ^7.0.0 || ^8.0.0":
version "8.0.2"
resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.2.tgz#fcee428eb0ad3d4aa9843d7f7ba981679bbe5edc"
integrity sha512-1gFhNi+bHhRE/qKZOJXACm6tX4bA3Isy9KuKF15AgSRuRazNBOJfdDemPBU16/mpMxApDPrWvZ08DcLPEoRnuA==
version "8.0.3"
resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.3.tgz#036d9e3b077ff57b128660b3e3a5d2d12bac9b42"
integrity sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==
dependencies:
lightningcss "^1.32.0"
picomatch "^4.0.3"
picomatch "^4.0.4"
postcss "^8.5.8"
rolldown "1.0.0-rc.11"
rolldown "1.0.0-rc.12"
tinyglobby "^0.2.15"
optionalDependencies:
fsevents "~2.3.3"
vitest@^4.0.18:
version "4.1.1"
resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.1.tgz#04700de9cb16898640ebfb4613abecfa83fac4fc"
integrity sha512-yF+o4POL41rpAzj5KVILUxm1GCjKnELvaqmU9TLLUbMfDzuN0UpUR9uaDs+mCtjPe+uYPksXDRLQGGPvj1cTmA==
version "4.1.2"
resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.2.tgz#3f7b36838ddf1067160489bea9a21ef465496265"
integrity sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==
dependencies:
"@vitest/expect" "4.1.1"
"@vitest/mocker" "4.1.1"
"@vitest/pretty-format" "4.1.1"
"@vitest/runner" "4.1.1"
"@vitest/snapshot" "4.1.1"
"@vitest/spy" "4.1.1"
"@vitest/utils" "4.1.1"
"@vitest/expect" "4.1.2"
"@vitest/mocker" "4.1.2"
"@vitest/pretty-format" "4.1.2"
"@vitest/runner" "4.1.2"
"@vitest/snapshot" "4.1.2"
"@vitest/spy" "4.1.2"
"@vitest/utils" "4.1.2"
es-module-lexer "^2.0.0"
expect-type "^1.3.0"
magic-string "^0.30.21"
@@ -2106,7 +2077,7 @@ vitest@^4.0.18:
tinybench "^2.9.0"
tinyexec "^1.0.2"
tinyglobby "^0.2.15"
tinyrainbow "^3.0.3"
tinyrainbow "^3.1.0"
vite "^6.0.0 || ^7.0.0 || ^8.0.0"
why-is-node-running "^2.3.0"