You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 15:06:20 +00:00
Merge pull request #47 from Lorenzune/feat/wired-fixes-apr08
Feat/wired fixes apr08
This commit is contained in:
@@ -80,6 +80,8 @@ export class RoomObjectVariable
|
||||
public static FURNITURE_BADGE_ASSET_NAME: string = 'furniture_badge_asset_name';
|
||||
public static FURNITURE_BADGE_VISIBLE_IN_STATE: string = 'furniture_badge_visible_in_state';
|
||||
public static FURNITURE_ALPHA_MULTIPLIER: string = 'furniture_alpha_multiplier';
|
||||
public static FURNITURE_CONF_INVIS_HIDDEN: string = 'furniture_conf_invis_hidden';
|
||||
public static FURNITURE_AREA_HIDE_HIDDEN: string = 'furniture_area_hide_hidden';
|
||||
public static FURNITURE_USAGE_POLICY: string = 'furniture_usage_policy';
|
||||
public static FURNITURE_OWNER_ID: string = 'furniture_owner_id';
|
||||
public static FURNITURE_OWNER_NAME: string = 'furniture_owner_name';
|
||||
@@ -103,6 +105,7 @@ export class RoomObjectVariable
|
||||
public static FURNITURE_USES_PLANE_MASK: string = 'furniture_uses_plane_mask';
|
||||
public static FURNITURE_PLANE_MASK_TYPE: string = 'furniture_plane_mask_type';
|
||||
public static FURNITURE_IS_VARIABLE_HEIGHT: string = 'furniture_is_variable_height';
|
||||
public static FURNITURE_IS_WALK_HEIGHT_HELPER: string = 'furniture_is_walk_height_helper';
|
||||
public static FURNITURE_VOTE_MAJORITY_RESULT: string = 'furniture_vote_majority_result';
|
||||
public static FURNITURE_VOTE_COUNTER_COUNT: string = 'furniture_vote_counter_count';
|
||||
public static FURNITURE_SOUNDBLOCK_RELATIVE_ANIMATION_SPEED: string = 'furniture_soundblock_relative_animation_speed';
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -269,6 +269,11 @@ 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 CONF_INVIS_STATE = 5104;
|
||||
public static HANDITEM_BLOCK_STATE = 5105;
|
||||
public static WIRED_OPEN = 1830;
|
||||
public static WIRED_REWARD = 178;
|
||||
public static WIRED_SAVE = 1155;
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '@nitrots/api';
|
||||
import { MessageEvent } from '@nitrots/events';
|
||||
import { ConfInvisStateMessageParser } from '../../../parser';
|
||||
|
||||
export class ConfInvisStateMessageEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, ConfInvisStateMessageParser);
|
||||
}
|
||||
|
||||
public getParser(): ConfInvisStateMessageParser
|
||||
{
|
||||
return this.parser as ConfInvisStateMessageParser;
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '@nitrots/api';
|
||||
import { MessageEvent } from '@nitrots/events';
|
||||
import { HanditemBlockStateMessageParser } from '../../../parser';
|
||||
|
||||
export class HanditemBlockStateMessageEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, HanditemBlockStateMessageParser);
|
||||
}
|
||||
|
||||
public getParser(): HanditemBlockStateMessageParser
|
||||
{
|
||||
return this.parser as HanditemBlockStateMessageParser;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
export * from './AreaHideMessageEvent';
|
||||
export * from './ConfInvisStateMessageEvent';
|
||||
export * from './CustomUserNotificationMessageEvent';
|
||||
export * from './DiceValueMessageEvent';
|
||||
export * from './FurniRentOrBuyoutOfferMessageEvent';
|
||||
@@ -6,6 +7,7 @@ export * from './FurnitureAliasesEvent';
|
||||
export * from './FurnitureDataEvent';
|
||||
export * from './FurnitureStackHeightEvent';
|
||||
export * from './GroupFurniContextMenuInfoMessageEvent';
|
||||
export * from './HanditemBlockStateMessageEvent';
|
||||
export * from './ItemDataUpdateMessageEvent';
|
||||
export * from './LoveLockFurniFinishedEvent';
|
||||
export * from './LoveLockFurniFriendConfirmedEvent';
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
+16
@@ -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';
|
||||
|
||||
@@ -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;
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminCreateOfferComposer implements IMessageComposer<Constru
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminCreateOfferComposer>;
|
||||
|
||||
constructor(pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number)
|
||||
constructor(pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber ];
|
||||
this._data = [ pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminCreatePageComposer implements IMessageComposer<Construc
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminCreatePageComposer>;
|
||||
|
||||
constructor(caption: string, caption2: string, layout: string, iconType: number, minRank: number, visible: boolean, enabled: boolean, orderNum: number, parentId: number)
|
||||
constructor(caption: string, caption2: string, layout: string, iconType: number, minRank: number, visible: boolean, enabled: boolean, orderNum: number, parentId: number, targetCatalogType: string, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ caption, caption2, layout, iconType, minRank, visible, enabled, orderNum, parentId ];
|
||||
this._data = [ caption, caption2, layout, iconType, minRank, visible, enabled, orderNum, parentId, targetCatalogType, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminDeleteOfferComposer implements IMessageComposer<Constru
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminDeleteOfferComposer>;
|
||||
|
||||
constructor(offerId: number)
|
||||
constructor(offerId: number, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ offerId ];
|
||||
this._data = [ offerId, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminDeletePageComposer implements IMessageComposer<Construc
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminDeletePageComposer>;
|
||||
|
||||
constructor(pageId: number)
|
||||
constructor(pageId: number, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ pageId ];
|
||||
this._data = [ pageId, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminMoveOfferComposer implements IMessageComposer<Construct
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminMoveOfferComposer>;
|
||||
|
||||
constructor(offerId: number, orderNumber: number)
|
||||
constructor(offerId: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ offerId, orderNumber ];
|
||||
this._data = [ offerId, orderNumber, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminMovePageComposer implements IMessageComposer<Constructo
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminMovePageComposer>;
|
||||
|
||||
constructor(pageId: number, newParentId: number, newIndex: number)
|
||||
constructor(pageId: number, newParentId: number, newIndex: number, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ pageId, newParentId, newIndex ];
|
||||
this._data = [ pageId, newParentId, newIndex, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminSaveOfferComposer implements IMessageComposer<Construct
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminSaveOfferComposer>;
|
||||
|
||||
constructor(offerId: number, pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number)
|
||||
constructor(offerId: number, pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ offerId, pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber ];
|
||||
this._data = [ offerId, pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminSavePageComposer implements IMessageComposer<Constructo
|
||||
{
|
||||
private _data: ConstructorParameters<typeof CatalogAdminSavePageComposer>;
|
||||
|
||||
constructor(pageId: number, caption: string, caption2: string, layout: string, iconType: number, minRank: number, visible: boolean, enabled: boolean, orderNum: number, parentId: number, headline: string, teaser: string, textDetails: string)
|
||||
constructor(pageId: number, caption: string, caption2: string, layout: string, iconType: number, minRank: number, visible: boolean, enabled: boolean, orderNum: number, parentId: number, headline: string, teaser: string, textDetails: string, targetCatalogType: string, catalogMode: string = 'NORMAL')
|
||||
{
|
||||
this._data = [ pageId, caption, caption2, layout, iconType, minRank, visible, enabled, orderNum, parentId, headline, teaser, textDetails ];
|
||||
this._data = [ pageId, caption, caption2, layout, iconType, minRank, visible, enabled, orderNum, parentId, headline, teaser, textDetails, targetCatalogType, catalogMode ];
|
||||
}
|
||||
|
||||
dispose(): void
|
||||
|
||||
+21
@@ -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;
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
import { IMessageComposer } from '@nitrots/api';
|
||||
|
||||
export class WiredRoomSettingsRequestComposer implements IMessageComposer<ConstructorParameters<typeof WiredRoomSettingsRequestComposer>>
|
||||
{
|
||||
public getMessageArray()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public dispose(): void
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
+21
@@ -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;
|
||||
}
|
||||
}
|
||||
+21
@@ -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;
|
||||
}
|
||||
}
|
||||
+21
@@ -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;
|
||||
}
|
||||
}
|
||||
+21
@@ -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;
|
||||
}
|
||||
}
|
||||
+14
@@ -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';
|
||||
|
||||
+20
@@ -6,6 +6,8 @@ export class BuildersClubSubscriptionStatusMessageParser implements IMessagePars
|
||||
private _furniLimit: number;
|
||||
private _maxFurniLimit: number;
|
||||
private _secondsLeftWithGrace: number;
|
||||
private _placementBlockedByVisitors: boolean;
|
||||
private _placementAllowedInCurrentRoom: boolean;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
@@ -13,6 +15,8 @@ export class BuildersClubSubscriptionStatusMessageParser implements IMessagePars
|
||||
this._furniLimit = 0;
|
||||
this._maxFurniLimit = 0;
|
||||
this._secondsLeftWithGrace = 0;
|
||||
this._placementBlockedByVisitors = false;
|
||||
this._placementAllowedInCurrentRoom = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -28,6 +32,12 @@ export class BuildersClubSubscriptionStatusMessageParser implements IMessagePars
|
||||
if(wrapper.bytesAvailable) this._secondsLeftWithGrace = wrapper.readInt();
|
||||
else this._secondsLeftWithGrace = this._secondsLeft;
|
||||
|
||||
if(wrapper.bytesAvailable) this._placementBlockedByVisitors = wrapper.readBoolean();
|
||||
else this._placementBlockedByVisitors = false;
|
||||
|
||||
if(wrapper.bytesAvailable) this._placementAllowedInCurrentRoom = wrapper.readBoolean();
|
||||
else this._placementAllowedInCurrentRoom = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -50,4 +60,14 @@ export class BuildersClubSubscriptionStatusMessageParser implements IMessagePars
|
||||
{
|
||||
return this._secondsLeftWithGrace;
|
||||
}
|
||||
|
||||
public get placementBlockedByVisitors(): boolean
|
||||
{
|
||||
return this._placementBlockedByVisitors;
|
||||
}
|
||||
|
||||
public get placementAllowedInCurrentRoom(): boolean
|
||||
{
|
||||
return this._placementAllowedInCurrentRoom;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,12 @@ import { ClubOfferData } from './ClubOfferData';
|
||||
export class HabboClubOffersMessageParser implements IMessageParser
|
||||
{
|
||||
private _offers: ClubOfferData[];
|
||||
private _windowId = 1;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._offers = [];
|
||||
this._windowId = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -25,6 +27,8 @@ export class HabboClubOffersMessageParser implements IMessageParser
|
||||
totalOffers--;
|
||||
}
|
||||
|
||||
if(wrapper.bytesAvailable) this._windowId = wrapper.readInt();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -32,4 +36,9 @@ export class HabboClubOffersMessageParser implements IMessageParser
|
||||
{
|
||||
return this._offers;
|
||||
}
|
||||
|
||||
public get windowId(): number
|
||||
{
|
||||
return this._windowId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ export class AreaHideMessageData
|
||||
private _width: number;
|
||||
private _length: number;
|
||||
private _invert: boolean;
|
||||
private _wallItems: boolean;
|
||||
private _invisibility: boolean;
|
||||
|
||||
constructor(wrapper: IMessageDataWrapper)
|
||||
{
|
||||
@@ -19,6 +21,8 @@ export class AreaHideMessageData
|
||||
this._width = wrapper.readInt();
|
||||
this._length = wrapper.readInt();
|
||||
this._invert = wrapper.readBoolean();
|
||||
this._wallItems = wrapper.readBoolean();
|
||||
this._invisibility = wrapper.readBoolean();
|
||||
}
|
||||
|
||||
public get furniId(): number
|
||||
@@ -55,4 +59,14 @@ export class AreaHideMessageData
|
||||
{
|
||||
return this._invert;
|
||||
}
|
||||
|
||||
public get wallItems(): boolean
|
||||
{
|
||||
return this._wallItems;
|
||||
}
|
||||
|
||||
public get invisibility(): boolean
|
||||
{
|
||||
return this._invisibility;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
import { IMessageDataWrapper } from '@nitrots/api';
|
||||
|
||||
export class ConfInvisStateMessageData
|
||||
{
|
||||
private _roomId: number;
|
||||
private _active: boolean;
|
||||
private _hiddenItemIds: number[];
|
||||
|
||||
constructor(wrapper: IMessageDataWrapper)
|
||||
{
|
||||
this._roomId = wrapper.readInt();
|
||||
this._active = wrapper.readBoolean();
|
||||
|
||||
const totalHiddenItems = wrapper.readInt();
|
||||
|
||||
this._hiddenItemIds = [];
|
||||
|
||||
for(let index = 0; index < totalHiddenItems; index++)
|
||||
{
|
||||
this._hiddenItemIds.push(wrapper.readInt());
|
||||
}
|
||||
}
|
||||
|
||||
public get roomId(): number
|
||||
{
|
||||
return this._roomId;
|
||||
}
|
||||
|
||||
public get hiddenItemIds(): number[]
|
||||
{
|
||||
return this._hiddenItemIds;
|
||||
}
|
||||
|
||||
public get active(): boolean
|
||||
{
|
||||
return this._active;
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import { IMessageDataWrapper } from '@nitrots/api';
|
||||
|
||||
export class HanditemBlockStateMessageData
|
||||
{
|
||||
private _roomId: number;
|
||||
private _blocked: boolean;
|
||||
|
||||
constructor(wrapper: IMessageDataWrapper)
|
||||
{
|
||||
this._roomId = wrapper.readInt();
|
||||
this._blocked = wrapper.readBoolean();
|
||||
}
|
||||
|
||||
public get roomId(): number
|
||||
{
|
||||
return this._roomId;
|
||||
}
|
||||
|
||||
public get blocked(): boolean
|
||||
{
|
||||
return this._blocked;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
export * from './AreaHideMessageData';
|
||||
export * from './ConfInvisStateMessageData';
|
||||
export * from './HanditemBlockStateMessageData';
|
||||
export * from './FavoriteMembershipUpdateMessageParser';
|
||||
export * from './ObjectData';
|
||||
export * from './ObjectsDataUpdateParser';
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
||||
import { ConfInvisStateMessageData } from '../engine';
|
||||
|
||||
export class ConfInvisStateMessageParser implements IMessageParser
|
||||
{
|
||||
private _stateData: ConfInvisStateMessageData;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._stateData = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._stateData = new ConfInvisStateMessageData(wrapper);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get stateData(): ConfInvisStateMessageData
|
||||
{
|
||||
return this._stateData;
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
||||
import { HanditemBlockStateMessageData } from '../engine';
|
||||
|
||||
export class HanditemBlockStateMessageParser implements IMessageParser
|
||||
{
|
||||
private _stateData: HanditemBlockStateMessageData;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._stateData = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._stateData = new HanditemBlockStateMessageData(wrapper);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get stateData(): HanditemBlockStateMessageData
|
||||
{
|
||||
return this._stateData;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
export * from './AreaHideMessageParser';
|
||||
export * from './ConfInvisStateMessageParser';
|
||||
export * from './CustomUserNotificationMessageParser';
|
||||
export * from './DiceValueMessageParser';
|
||||
export * from './FurniRentOrBuyoutOfferMessageParser';
|
||||
@@ -6,6 +7,7 @@ export * from './FurnitureAliasesParser';
|
||||
export * from './FurnitureDataParser';
|
||||
export * from './FurnitureStackHeightParser';
|
||||
export * from './GroupFurniContextMenuInfoMessageParser';
|
||||
export * from './HanditemBlockStateMessageParser';
|
||||
export * from './ItemDataUpdateMessageParser';
|
||||
export * from './LoveLockFurniFinishedParser';
|
||||
export * from './LoveLockFurniFriendConfirmedParser';
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
+301
@@ -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';
|
||||
|
||||
@@ -22,6 +22,7 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
|
||||
{
|
||||
public static ROOM_OBJECT_ID: number = -1;
|
||||
public static ROOM_OBJECT_TYPE: string = 'room';
|
||||
private _areaHideHoleCounts = new Map<string, number>();
|
||||
|
||||
public static CURSOR_OBJECT_ID: number = -2;
|
||||
public static CURSOR_OBJECT_TYPE: string = 'tile_cursor';
|
||||
@@ -170,6 +171,11 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
|
||||
existing.dispose();
|
||||
}
|
||||
|
||||
for(const key of Array.from(this._areaHideHoleCounts.keys()))
|
||||
{
|
||||
if(key.startsWith(roomId + ':')) this._areaHideHoleCounts.delete(key);
|
||||
}
|
||||
|
||||
GetEventDispatcher().dispatchEvent(new RoomEngineEvent(RoomEngineEvent.DISPOSED, roomId));
|
||||
}
|
||||
|
||||
@@ -585,14 +591,106 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
|
||||
|
||||
GetEventDispatcher().dispatchEvent(new RoomEngineAreaHideStateEvent(roomId, furniId, RoomObjectCategory.FLOOR, on));
|
||||
|
||||
this.removeAreaHideFloorHoles(roomObject, roomId, furniId);
|
||||
|
||||
if(on)
|
||||
{
|
||||
roomObject.logic.processUpdateMessage(new ObjectRoomFloorHoleUpdateMessage(ObjectRoomFloorHoleUpdateMessage.ADD, furniId, rootX, rootY, width, length, invert));
|
||||
const rectangles = this.getAreaHideHoleRectangles(roomObject, rootX, rootY, width, length, invert);
|
||||
|
||||
for(let index = 0; index < rectangles.length; index++)
|
||||
{
|
||||
const rectangle = rectangles[index];
|
||||
|
||||
roomObject.logic.processUpdateMessage(new ObjectRoomFloorHoleUpdateMessage(ObjectRoomFloorHoleUpdateMessage.ADD, this.getAreaHideHoleId(furniId, index), rectangle.x, rectangle.y, rectangle.width, rectangle.length, false));
|
||||
}
|
||||
|
||||
this._areaHideHoleCounts.set(this.getAreaHideHoleKey(roomId, furniId), rectangles.length);
|
||||
}
|
||||
else
|
||||
{
|
||||
roomObject.logic.processUpdateMessage(new ObjectRoomFloorHoleUpdateMessage(ObjectRoomFloorHoleUpdateMessage.REMOVE, furniId));
|
||||
this._areaHideHoleCounts.delete(this.getAreaHideHoleKey(roomId, furniId));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private removeAreaHideFloorHoles(roomObject: IRoomObjectController, roomId: number, furniId: number): void
|
||||
{
|
||||
if(!roomObject?.logic) return;
|
||||
|
||||
roomObject.logic.processUpdateMessage(new ObjectRoomFloorHoleUpdateMessage(ObjectRoomFloorHoleUpdateMessage.REMOVE, furniId));
|
||||
|
||||
const count = this._areaHideHoleCounts.get(this.getAreaHideHoleKey(roomId, furniId)) ?? 0;
|
||||
|
||||
for(let index = 0; index < Math.max(count, 4); index++)
|
||||
{
|
||||
roomObject.logic.processUpdateMessage(new ObjectRoomFloorHoleUpdateMessage(ObjectRoomFloorHoleUpdateMessage.REMOVE, this.getAreaHideHoleId(furniId, index)));
|
||||
}
|
||||
}
|
||||
|
||||
private getAreaHideHoleKey(roomId: number, furniId: number): string
|
||||
{
|
||||
return roomId + ':' + furniId;
|
||||
}
|
||||
|
||||
private getAreaHideHoleId(furniId: number, index: number): number
|
||||
{
|
||||
return -((furniId * 10000) + index + 1);
|
||||
}
|
||||
|
||||
private getAreaHideHoleRectangles(roomObject: IRoomObjectController, rootX: number, rootY: number, width: number, length: number, invert: boolean): { x: number, y: number, width: number, length: number }[]
|
||||
{
|
||||
const rectangles: { x: number, y: number, width: number, length: number }[] = [];
|
||||
|
||||
if(width <= 0 || length <= 0) return rectangles;
|
||||
|
||||
const roomMap = roomObject?.model?.getValue<RoomMapData>(RoomObjectVariable.ROOM_MAP_DATA);
|
||||
const tileMap = roomMap?.tileMap;
|
||||
|
||||
if(!tileMap?.length) return rectangles;
|
||||
|
||||
const areaMinX = rootX;
|
||||
const areaMinY = rootY;
|
||||
const areaMaxX = (rootX + width);
|
||||
const areaMaxY = (rootY + length);
|
||||
const pushRectangle = (x: number, y: number, rectWidth: number) =>
|
||||
{
|
||||
if(rectWidth <= 0) return;
|
||||
|
||||
rectangles.push({ x, y, width: rectWidth, length: 1 });
|
||||
};
|
||||
|
||||
for(let y = 0; y < tileMap.length; y++)
|
||||
{
|
||||
const row = tileMap[y];
|
||||
|
||||
if(!row?.length) continue;
|
||||
|
||||
let segmentStart = -1;
|
||||
|
||||
for(let x = 0; x <= row.length; x++)
|
||||
{
|
||||
const tileHeight = (x < row.length) ? row[x]?.height : Number.NEGATIVE_INFINITY;
|
||||
const validTile = (tileHeight >= 0);
|
||||
const inSelection = (x >= areaMinX) && (x < areaMaxX) && (y >= areaMinY) && (y < areaMaxY);
|
||||
const shouldHide = validTile && (invert ? !inSelection : inSelection);
|
||||
|
||||
if(shouldHide)
|
||||
{
|
||||
if(segmentStart === -1) segmentStart = x;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if(segmentStart !== -1)
|
||||
{
|
||||
pushRectangle(segmentStart, y, (x - segmentStart));
|
||||
segmentStart = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rectangles;
|
||||
}
|
||||
|
||||
public updateObjectRoomColor(roomId: number, color: number, light: number, backgroundOnly: boolean): boolean
|
||||
@@ -1733,6 +1831,12 @@ export class RoomEngine implements IRoomEngine, IRoomCreator, IRoomEngineService
|
||||
object.processUpdateMessage(new RoomObjectUpdateMessage(location, direction));
|
||||
object.processUpdateMessage(new ObjectDataUpdateMessage(state, data, extra));
|
||||
|
||||
if(object.model && (extra === 2147483001))
|
||||
{
|
||||
object.model.setValue(RoomObjectVariable.FURNITURE_IS_VARIABLE_HEIGHT, 1);
|
||||
object.model.setValue(RoomObjectVariable.FURNITURE_IS_WALK_HEIGHT_HELPER, 1);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { AvatarGuideStatus, IConnection, IMessageEvent, IRoomCreator, IRoomObjectController, IVector3D, LegacyDataType, ObjectRolling, PetType, RoomObjectType, RoomObjectUserType, RoomObjectVariable } from '@nitrots/api';
|
||||
import { AreaHideMessageEvent, DiceValueMessageEvent, FloorHeightMapEvent, FurnitureAliasesComposer, FurnitureAliasesEvent, FurnitureDataEvent, FurnitureFloorAddEvent, FurnitureFloorDataParser, FurnitureFloorEvent, FurnitureFloorRemoveEvent, FurnitureFloorUpdateEvent, FurnitureWallAddEvent, FurnitureWallDataParser, FurnitureWallEvent, FurnitureWallRemoveEvent, FurnitureWallUpdateEvent, GetCommunication, GetRoomEntryDataMessageComposer, GuideSessionEndedMessageEvent, GuideSessionErrorMessageEvent, GuideSessionStartedMessageEvent, IgnoreResultEvent, ItemDataUpdateMessageEvent, ObjectsDataUpdateEvent, ObjectsRollingEvent, OneWayDoorStatusMessageEvent, PetExperienceEvent, PetFigureUpdateEvent, RoomEntryTileMessageEvent, RoomEntryTileMessageParser, RoomHeightMapEvent, RoomHeightMapUpdateEvent, RoomPaintEvent, RoomReadyMessageEvent, RoomUnitChatEvent, RoomUnitChatShoutEvent, RoomUnitChatWhisperEvent, RoomUnitDanceEvent, RoomUnitEffectEvent, RoomUnitEvent, RoomUnitExpressionEvent, RoomUnitHandItemEvent, RoomUnitIdleEvent, RoomUnitInfoEvent, RoomUnitNumberEvent, RoomUnitRemoveEvent, RoomUnitStatusEvent, RoomUnitStatusMessage, RoomUnitTypingEvent, RoomVisualizationSettingsEvent, UserInfoEvent, WiredFurniMovementData, WiredMovementsEvent, WiredUserDirectionUpdateData, WiredUserMovementData, YouArePlayingGameEvent } from '@nitrots/communication';
|
||||
import { AvatarGuideStatus, IConnection, IMessageEvent, IRoomCreator, IRoomObjectController, IRoomObject, IVector3D, LegacyDataType, ObjectRolling, PetType, RoomObjectCategory, RoomObjectType, RoomObjectUserType, RoomObjectVariable } from '@nitrots/api';
|
||||
import { AreaHideMessageEvent, ConfInvisStateMessageEvent, DiceValueMessageEvent, FloorHeightMapEvent, FurnitureAliasesComposer, FurnitureAliasesEvent, FurnitureDataEvent, FurnitureFloorAddEvent, FurnitureFloorDataParser, FurnitureFloorEvent, FurnitureFloorRemoveEvent, FurnitureFloorUpdateEvent, FurnitureWallAddEvent, FurnitureWallDataParser, FurnitureWallEvent, FurnitureWallRemoveEvent, FurnitureWallUpdateEvent, GetCommunication, GetRoomEntryDataMessageComposer, GuideSessionEndedMessageEvent, GuideSessionErrorMessageEvent, GuideSessionStartedMessageEvent, IgnoreResultEvent, ItemDataUpdateMessageEvent, ObjectsDataUpdateEvent, ObjectsRollingEvent, OneWayDoorStatusMessageEvent, PetExperienceEvent, PetFigureUpdateEvent, RoomEntryTileMessageEvent, RoomEntryTileMessageParser, RoomHeightMapEvent, RoomHeightMapUpdateEvent, RoomPaintEvent, RoomReadyMessageEvent, RoomUnitChatEvent, RoomUnitChatShoutEvent, RoomUnitChatWhisperEvent, RoomUnitDanceEvent, RoomUnitEffectEvent, RoomUnitEvent, RoomUnitExpressionEvent, RoomUnitHandItemEvent, RoomUnitIdleEvent, RoomUnitInfoEvent, RoomUnitNumberEvent, RoomUnitRemoveEvent, RoomUnitStatusEvent, RoomUnitStatusMessage, RoomUnitTypingEvent, RoomVisualizationSettingsEvent, UserInfoEvent, WiredFurniMovementData, WiredMovementsEvent, WiredUserDirectionUpdateData, WiredUserMovementData, YouArePlayingGameEvent } from '@nitrots/communication';
|
||||
import { GetRoomSessionManager, GetSessionDataManager } from '@nitrots/session';
|
||||
import { Vector3d } from '@nitrots/utils';
|
||||
import { GetRoomEngine } from './GetRoomEngine';
|
||||
@@ -7,6 +7,16 @@ import { RoomVariableEnum } from './RoomVariableEnum';
|
||||
import { RoomPlaneParser } from './object/RoomPlaneParser';
|
||||
import { FurnitureStackingHeightMap, LegacyWallGeometry } from './utils';
|
||||
|
||||
type AreaHideControllerState = {
|
||||
rootX: number;
|
||||
rootY: number;
|
||||
width: number;
|
||||
length: number;
|
||||
invert: boolean;
|
||||
wallItems: boolean;
|
||||
invisibility: boolean;
|
||||
};
|
||||
|
||||
export class RoomMessageHandler
|
||||
{
|
||||
private static WIRED_FURNI_ANCHOR_NONE = 0;
|
||||
@@ -21,8 +31,13 @@ export class RoomMessageHandler
|
||||
private _planeParser = new RoomPlaneParser();
|
||||
private _latestEntryTileEvent: RoomEntryTileMessageEvent = null;
|
||||
private _messageEvents: IMessageEvent[] = [];
|
||||
private _activeWiredUserMovements = new Map<number, { expiresAt: number, targetX: number, targetY: number, targetZ: number }>();
|
||||
private _activeWiredUserMovements = new Map<number, { expiresAt: number, sourceX: number, sourceY: number, sourceZ: number, targetX: number, targetY: number, targetZ: number }>();
|
||||
private _activeRoomUserWalks = new Map<number, { startedAt: number, targetX: number, targetY: number, targetZ: number, duration: number }>();
|
||||
private _activeConfInvisHiddenItemIds = new Set<number>();
|
||||
private _confInvisReapplyTimeouts: ReturnType<typeof setTimeout>[] = [];
|
||||
private _activeAreaHideControllers = new Map<number, AreaHideControllerState>();
|
||||
private _areaHideReapplyTimeouts: ReturnType<typeof setTimeout>[] = [];
|
||||
private _isConfInvisControlActive = false;
|
||||
|
||||
private _currentRoomId: number = 0;
|
||||
private _ownUserId: number = 0;
|
||||
@@ -62,6 +77,7 @@ export class RoomMessageHandler
|
||||
new ItemDataUpdateMessageEvent(this.onItemDataUpdateMessageEvent.bind(this)),
|
||||
new OneWayDoorStatusMessageEvent(this.onOneWayDoorStatusMessageEvent.bind(this)),
|
||||
new AreaHideMessageEvent(this.onAreaHideMessageEvent.bind(this)),
|
||||
new ConfInvisStateMessageEvent(this.onConfInvisStateMessageEvent.bind(this)),
|
||||
new RoomUnitDanceEvent(this.onRoomUnitDanceEvent.bind(this)),
|
||||
new RoomUnitEffectEvent(this.onRoomUnitEffectEvent.bind(this)),
|
||||
new RoomUnitEvent(this.onRoomUnitEvent.bind(this)),
|
||||
@@ -110,12 +126,16 @@ export class RoomMessageHandler
|
||||
this._latestEntryTileEvent = null;
|
||||
this._activeWiredUserMovements.clear();
|
||||
this._activeRoomUserWalks.clear();
|
||||
|
||||
if(this._planeParser)
|
||||
{
|
||||
this._planeParser.dispose();
|
||||
this._planeParser = null;
|
||||
}
|
||||
this._activeConfInvisHiddenItemIds.clear();
|
||||
this.clearConfInvisReapplyTimeouts();
|
||||
this._activeAreaHideControllers.clear();
|
||||
this.clearAreaHideReapplyTimeouts();
|
||||
this._isConfInvisControlActive = false;
|
||||
}
|
||||
|
||||
public setRoomId(id: number): void
|
||||
@@ -129,6 +149,11 @@ export class RoomMessageHandler
|
||||
this._latestEntryTileEvent = null;
|
||||
this._activeWiredUserMovements.clear();
|
||||
this._activeRoomUserWalks.clear();
|
||||
this._activeConfInvisHiddenItemIds.clear();
|
||||
this.clearConfInvisReapplyTimeouts();
|
||||
this._activeAreaHideControllers.clear();
|
||||
this.clearAreaHideReapplyTimeouts();
|
||||
this._isConfInvisControlActive = false;
|
||||
}
|
||||
|
||||
public clearRoomId(): void
|
||||
@@ -137,6 +162,11 @@ export class RoomMessageHandler
|
||||
this._latestEntryTileEvent = null;
|
||||
this._activeWiredUserMovements.clear();
|
||||
this._activeRoomUserWalks.clear();
|
||||
this._activeConfInvisHiddenItemIds.clear();
|
||||
this.clearConfInvisReapplyTimeouts();
|
||||
this._activeAreaHideControllers.clear();
|
||||
this.clearAreaHideReapplyTimeouts();
|
||||
this._isConfInvisControlActive = false;
|
||||
}
|
||||
|
||||
private onUserInfoEvent(event: UserInfoEvent): void
|
||||
@@ -383,6 +413,8 @@ export class RoomMessageHandler
|
||||
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, parser.rollerId, null, null, 1, null);
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, parser.rollerId, null, null, 2, null);
|
||||
this.applyConfInvisStateToFloorObjects([ parser.rollerId ]);
|
||||
this.applyAreaHideStateToFloorObjects([ parser.rollerId ]);
|
||||
|
||||
const furnitureRolling = parser.itemsRolling;
|
||||
|
||||
@@ -394,6 +426,8 @@ export class RoomMessageHandler
|
||||
|
||||
this._roomEngine.rollRoomObjectFloor(this._currentRoomId, rollData.id, rollData.location, rollData.targetLocation);
|
||||
}
|
||||
|
||||
this.scheduleAreaHideReapply(this._currentRoomId);
|
||||
}
|
||||
|
||||
const unitRollData = parser.unitRolling;
|
||||
@@ -584,6 +618,9 @@ export class RoomMessageHandler
|
||||
{
|
||||
this._activeWiredUserMovements.set(movement.id, {
|
||||
expiresAt: Date.now() + Math.max(movement.duration, 1) + RoomMessageHandler.WIRED_MOVEMENT_STATUS_GRACE,
|
||||
sourceX: movement.location.x,
|
||||
sourceY: movement.location.y,
|
||||
sourceZ: movement.location.z,
|
||||
targetX: movement.targetLocation.x,
|
||||
targetY: movement.targetLocation.y,
|
||||
targetZ: movement.targetLocation.z
|
||||
@@ -603,7 +640,8 @@ export class RoomMessageHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
if(this.shouldReleaseWiredStatusLocation(status, activeMovement))
|
||||
if(this.shouldDiscardWiredStatusLocation(status, activeMovement)
|
||||
|| !!this.getMatchedWiredStatusTargetLocation(status, activeMovement))
|
||||
{
|
||||
this._activeWiredUserMovements.delete(status.id);
|
||||
|
||||
@@ -613,37 +651,82 @@ export class RoomMessageHandler
|
||||
return true;
|
||||
}
|
||||
|
||||
private shouldReleaseWiredStatusLocation(status: RoomUnitStatusMessage, activeMovement: { expiresAt: number, targetX: number, targetY: number, targetZ: number }): boolean
|
||||
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.shouldDiscardWiredStatusLocation(status, activeMovement)) return null;
|
||||
|
||||
return this.getMatchedWiredStatusTargetLocation(status, activeMovement);
|
||||
}
|
||||
|
||||
private getMatchedWiredStatusTargetLocation(status: RoomUnitStatusMessage, activeMovement: { expiresAt: number, sourceX: number, sourceY: number, sourceZ: number, targetX: number, targetY: number, targetZ: number }): IVector3D
|
||||
{
|
||||
if(this.matchesWiredMovementTarget(status.x, status.y, (status.z + status.height), activeMovement))
|
||||
{
|
||||
return new Vector3d(activeMovement.targetX, activeMovement.targetY, activeMovement.targetZ);
|
||||
}
|
||||
|
||||
if(status.didMove && this.matchesWiredMovementTarget(status.targetX, status.targetY, status.targetZ, activeMovement))
|
||||
{
|
||||
return new Vector3d(activeMovement.targetX, activeMovement.targetY, activeMovement.targetZ);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private shouldDiscardWiredStatusLocation(status: RoomUnitStatusMessage, activeMovement: { expiresAt: number, sourceX: number, sourceY: number, sourceZ: number, targetX: number, targetY: number, targetZ: number }): boolean
|
||||
{
|
||||
if(!status.didMove)
|
||||
{
|
||||
return this.matchesWiredMovementTarget(status.x, status.y, (status.z + status.height), activeMovement);
|
||||
return !this.matchesWiredMovementSource(status.x, status.y, (status.z + status.height), activeMovement)
|
||||
&& !this.matchesWiredMovementTarget(status.x, status.y, (status.z + status.height), activeMovement);
|
||||
}
|
||||
|
||||
return !this.matchesWiredMovementTarget(status.targetX, status.targetY, status.targetZ, activeMovement);
|
||||
return !this.matchesWiredMovementSource(status.x, status.y, (status.z + status.height), activeMovement)
|
||||
&& !this.matchesWiredMovementTarget(status.x, status.y, (status.z + status.height), activeMovement)
|
||||
&& !this.matchesWiredMovementSource(status.targetX, status.targetY, status.targetZ, activeMovement)
|
||||
&& !this.matchesWiredMovementTarget(status.targetX, status.targetY, status.targetZ, activeMovement);
|
||||
}
|
||||
|
||||
private matchesWiredMovementTarget(x: number, y: number, z: number, activeMovement: { expiresAt: number, targetX: number, targetY: number, targetZ: number }): boolean
|
||||
private matchesWiredMovementSource(x: number, y: number, z: number, activeMovement: { expiresAt: number, sourceX: number, sourceY: number, sourceZ: number, targetX: number, targetY: number, targetZ: number }): boolean
|
||||
{
|
||||
if(!activeMovement) return false;
|
||||
|
||||
return ((x === activeMovement.targetX)
|
||||
&& (y === activeMovement.targetY)
|
||||
&& (Math.abs(z - activeMovement.targetZ) <= RoomMessageHandler.WIRED_MOVEMENT_Z_EPSILON));
|
||||
return this.matchesWiredMovementLocation(x, y, z, activeMovement.sourceX, activeMovement.sourceY, activeMovement.sourceZ);
|
||||
}
|
||||
|
||||
private matchesWiredMovementTarget(x: number, y: number, z: number, activeMovement: { expiresAt: number, sourceX: number, sourceY: number, sourceZ: number, targetX: number, targetY: number, targetZ: number }): boolean
|
||||
{
|
||||
if(!activeMovement) return false;
|
||||
|
||||
return this.matchesWiredMovementLocation(x, y, z, activeMovement.targetX, activeMovement.targetY, activeMovement.targetZ);
|
||||
}
|
||||
|
||||
private matchesWiredMovementLocation(x: number, y: number, z: number, movementX: number, movementY: number, movementZ: number): boolean
|
||||
{
|
||||
return ((x === movementX)
|
||||
&& (y === movementY)
|
||||
&& (Math.abs(z - movementZ) <= RoomMessageHandler.WIRED_MOVEMENT_Z_EPSILON));
|
||||
}
|
||||
|
||||
private applyWiredUserDirectionUpdate(update: WiredUserDirectionUpdateData): void
|
||||
{
|
||||
this._roomEngine.updateRoomObjectUserLocation(
|
||||
this._currentRoomId,
|
||||
update.id,
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
0,
|
||||
new Vector3d(update.bodyDirection),
|
||||
update.headDirection,
|
||||
true);
|
||||
const userObject = this._roomEngine.getRoomObjectUser(this._currentRoomId, update.id);
|
||||
|
||||
if(!userObject) return;
|
||||
|
||||
userObject.setDirection(new Vector3d(update.bodyDirection));
|
||||
|
||||
const model = userObject.model;
|
||||
|
||||
if(!model) return;
|
||||
|
||||
model.setValue(RoomObjectVariable.HEAD_DIRECTION, update.headDirection);
|
||||
}
|
||||
|
||||
private onObjectsDataUpdateEvent(event: ObjectsDataUpdateEvent): void
|
||||
@@ -658,6 +741,9 @@ export class RoomMessageHandler
|
||||
{
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, object.id, null, null, object.state, object.data);
|
||||
}
|
||||
|
||||
this.applyConfInvisStateToFloorObjects();
|
||||
this.applyAreaHideStateToFloorObjects();
|
||||
}
|
||||
|
||||
private onFurnitureAliasesEvent(event: FurnitureAliasesEvent): void
|
||||
@@ -678,6 +764,8 @@ export class RoomMessageHandler
|
||||
if(!item) return;
|
||||
|
||||
this.addRoomObjectFurnitureFloor(this._currentRoomId, item);
|
||||
this.applyConfInvisStateToFloorObjects([ item.itemId ]);
|
||||
this.applyAreaHideStateToFloorObjects([ item.itemId ]);
|
||||
}
|
||||
|
||||
private onFurnitureFloorEvent(event: FurnitureFloorEvent): void
|
||||
@@ -700,6 +788,10 @@ export class RoomMessageHandler
|
||||
|
||||
iterator++;
|
||||
}
|
||||
|
||||
this.applyConfInvisStateToFloorObjects();
|
||||
this.applyAreaHideStateToFloorObjects();
|
||||
this.scheduleAreaHideReapply(this._currentRoomId);
|
||||
}
|
||||
|
||||
private onFurnitureFloorRemoveEvent(event: FurnitureFloorRemoveEvent): void
|
||||
@@ -714,12 +806,18 @@ export class RoomMessageHandler
|
||||
{
|
||||
setTimeout(() =>
|
||||
{
|
||||
this._activeConfInvisHiddenItemIds.delete(parser.itemId);
|
||||
this._activeAreaHideControllers.delete(parser.itemId);
|
||||
this._roomEngine.removeRoomObjectFloor(this._currentRoomId, parser.itemId, (parser.isExpired) ? -1 : parser.userId, true);
|
||||
this.applyAreaHideStateToRoomObjects();
|
||||
}, parser.delay);
|
||||
}
|
||||
else
|
||||
{
|
||||
this._activeConfInvisHiddenItemIds.delete(parser.itemId);
|
||||
this._activeAreaHideControllers.delete(parser.itemId);
|
||||
this._roomEngine.removeRoomObjectFloor(this._currentRoomId, parser.itemId, (parser.isExpired) ? -1 : parser.userId, true);
|
||||
this.applyAreaHideStateToRoomObjects();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -737,6 +835,73 @@ export class RoomMessageHandler
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, item.itemId, location, direction, item.data.state, item.data, item.extra);
|
||||
this._roomEngine.updateRoomObjectFloorHeight(this._currentRoomId, item.itemId, item.stackHeight);
|
||||
this._roomEngine.updateRoomObjectFloorExpiration(this._currentRoomId, item.itemId, item.expires);
|
||||
this.applyConfInvisStateToFloorObjects([ item.itemId ]);
|
||||
this.applyAreaHideStateToFloorObjects([ item.itemId ]);
|
||||
}
|
||||
|
||||
private onConfInvisStateMessageEvent(event: ConfInvisStateMessageEvent): void
|
||||
{
|
||||
if(!(event instanceof ConfInvisStateMessageEvent) || !event.connection || !this._roomEngine) return;
|
||||
|
||||
const parser = event.getParser();
|
||||
|
||||
if(!parser?.stateData) return;
|
||||
if(parser.stateData.roomId !== this._currentRoomId) return;
|
||||
|
||||
this._isConfInvisControlActive = parser.stateData.active;
|
||||
this._activeConfInvisHiddenItemIds = new Set<number>(parser.stateData.hiddenItemIds);
|
||||
this.applyConfInvisStateToFloorObjects();
|
||||
this.applyAreaHideStateToRoomObjects();
|
||||
this.scheduleConfInvisReapply(parser.stateData.roomId);
|
||||
this.scheduleAreaHideReapply(parser.stateData.roomId);
|
||||
}
|
||||
|
||||
private applyConfInvisStateToFloorObjects(itemIds?: number[]): void
|
||||
{
|
||||
const floorObjects = ((this._roomEngine as any)?.getRoomObjects?.(this._currentRoomId, RoomObjectCategory.FLOOR) as IRoomObject[]) ?? [];
|
||||
|
||||
if(!floorObjects?.length) return;
|
||||
|
||||
const scopedIds = itemIds?.length ? new Set<number>(itemIds) : null;
|
||||
|
||||
for(const roomObject of floorObjects)
|
||||
{
|
||||
if(!roomObject?.model) continue;
|
||||
if(scopedIds && !scopedIds.has(roomObject.id)) continue;
|
||||
|
||||
roomObject.model.setValue(RoomObjectVariable.FURNITURE_CONF_INVIS_HIDDEN, this._activeConfInvisHiddenItemIds.has(roomObject.id) ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
private scheduleConfInvisReapply(roomId: number): void
|
||||
{
|
||||
this.clearConfInvisReapplyTimeouts();
|
||||
|
||||
const retryDelays = [ 0, 50, 150, 300, 600, 1000 ];
|
||||
|
||||
for(const delay of retryDelays)
|
||||
{
|
||||
const timeout = setTimeout(() =>
|
||||
{
|
||||
if(roomId !== this._currentRoomId) return;
|
||||
|
||||
this.applyConfInvisStateToFloorObjects();
|
||||
}, delay);
|
||||
|
||||
this._confInvisReapplyTimeouts.push(timeout);
|
||||
}
|
||||
}
|
||||
|
||||
private clearConfInvisReapplyTimeouts(): void
|
||||
{
|
||||
if(!this._confInvisReapplyTimeouts.length) return;
|
||||
|
||||
for(const timeout of this._confInvisReapplyTimeouts)
|
||||
{
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
|
||||
this._confInvisReapplyTimeouts = [];
|
||||
}
|
||||
|
||||
private onFurnitureWallAddEvent(event: FurnitureWallAddEvent): void
|
||||
@@ -748,6 +913,7 @@ export class RoomMessageHandler
|
||||
if(!data) return;
|
||||
|
||||
this.addRoomObjectFurnitureWall(this._currentRoomId, data);
|
||||
this.applyAreaHideStateToWallObjects([ data.itemId ]);
|
||||
}
|
||||
|
||||
private onFurnitureWallEvent(event: FurnitureWallEvent): void
|
||||
@@ -770,6 +936,9 @@ export class RoomMessageHandler
|
||||
|
||||
iterator++;
|
||||
}
|
||||
|
||||
this.applyAreaHideStateToWallObjects();
|
||||
this.scheduleAreaHideReapply(this._currentRoomId);
|
||||
}
|
||||
|
||||
private onFurnitureWallRemoveEvent(event: FurnitureWallRemoveEvent): void
|
||||
@@ -781,6 +950,7 @@ export class RoomMessageHandler
|
||||
if(!parser) return;
|
||||
|
||||
this._roomEngine.removeRoomObjectWall(this._currentRoomId, parser.itemId, parser.userId);
|
||||
this.applyAreaHideStateToWallObjects();
|
||||
}
|
||||
|
||||
private onFurnitureWallUpdateEvent(event: FurnitureWallUpdateEvent): void
|
||||
@@ -800,6 +970,7 @@ export class RoomMessageHandler
|
||||
|
||||
this._roomEngine.updateRoomObjectWall(this._currentRoomId, item.itemId, location, direction, item.state, item.stuffData);
|
||||
this._roomEngine.updateRoomObjectWallExpiration(this._currentRoomId, item.itemId, item.secondsToExpiration);
|
||||
this.applyAreaHideStateToWallObjects([ item.itemId ]);
|
||||
}
|
||||
|
||||
private onFurnitureDataEvent(event: FurnitureDataEvent): void
|
||||
@@ -809,6 +980,8 @@ export class RoomMessageHandler
|
||||
const parser = event.getParser();
|
||||
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, parser.furnitureId, null, null, parser.objectData.state, parser.objectData);
|
||||
this.applyConfInvisStateToFloorObjects([ parser.furnitureId ]);
|
||||
this.applyAreaHideStateToFloorObjects([ parser.furnitureId ]);
|
||||
}
|
||||
|
||||
private onItemDataUpdateMessageEvent(event: ItemDataUpdateMessageEvent): void
|
||||
@@ -818,6 +991,7 @@ export class RoomMessageHandler
|
||||
const parser = event.getParser();
|
||||
|
||||
this._roomEngine.updateRoomObjectWallItemData(this._currentRoomId, parser.furnitureId, parser.data);
|
||||
this.applyAreaHideStateToWallObjects([ parser.furnitureId ]);
|
||||
}
|
||||
|
||||
private onOneWayDoorStatusMessageEvent(event: OneWayDoorStatusMessageEvent): void
|
||||
@@ -827,6 +1001,8 @@ export class RoomMessageHandler
|
||||
const parser = event.getParser();
|
||||
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, parser.itemId, null, null, parser.state, new LegacyDataType());
|
||||
this.applyConfInvisStateToFloorObjects([ parser.itemId ]);
|
||||
this.applyAreaHideStateToFloorObjects([ parser.itemId ]);
|
||||
}
|
||||
|
||||
private onAreaHideMessageEvent(event: AreaHideMessageEvent): void
|
||||
@@ -837,6 +1013,26 @@ export class RoomMessageHandler
|
||||
const areaData = parser.areaData;
|
||||
|
||||
this._roomEngine.updateAreaHide(this._currentRoomId, areaData.furniId, areaData.on, areaData.rootX, areaData.rootY, areaData.width, areaData.length, areaData.invert);
|
||||
|
||||
if(areaData.on)
|
||||
{
|
||||
this._activeAreaHideControllers.set(areaData.furniId, {
|
||||
rootX: areaData.rootX,
|
||||
rootY: areaData.rootY,
|
||||
width: areaData.width,
|
||||
length: areaData.length,
|
||||
invert: areaData.invert,
|
||||
wallItems: areaData.wallItems,
|
||||
invisibility: areaData.invisibility
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
this._activeAreaHideControllers.delete(areaData.furniId);
|
||||
}
|
||||
|
||||
this.applyAreaHideStateToRoomObjects();
|
||||
this.scheduleAreaHideReapply(this._currentRoomId);
|
||||
}
|
||||
|
||||
private onDiceValueMessageEvent(event: DiceValueMessageEvent): void
|
||||
@@ -846,6 +1042,210 @@ export class RoomMessageHandler
|
||||
const parser = event.getParser();
|
||||
|
||||
this._roomEngine.updateRoomObjectFloor(this._currentRoomId, parser.itemId, null, null, parser.value, new LegacyDataType());
|
||||
this.applyConfInvisStateToFloorObjects([ parser.itemId ]);
|
||||
this.applyAreaHideStateToFloorObjects([ parser.itemId ]);
|
||||
}
|
||||
|
||||
private applyAreaHideStateToRoomObjects(floorItemIds?: number[], wallItemIds?: number[]): void
|
||||
{
|
||||
this.applyAreaHideStateToFloorObjects(floorItemIds);
|
||||
this.applyAreaHideStateToWallObjects(wallItemIds);
|
||||
}
|
||||
|
||||
private applyAreaHideStateToFloorObjects(itemIds?: number[]): void
|
||||
{
|
||||
const floorObjects = ((this._roomEngine as any)?.getRoomObjects?.(this._currentRoomId, RoomObjectCategory.FLOOR) as IRoomObject[]) ?? [];
|
||||
|
||||
if(!floorObjects?.length) return;
|
||||
|
||||
const scopedIds = itemIds?.length ? new Set<number>(itemIds) : null;
|
||||
|
||||
for(const roomObject of floorObjects)
|
||||
{
|
||||
if(!roomObject?.model) continue;
|
||||
if(scopedIds && !scopedIds.has(roomObject.id)) continue;
|
||||
|
||||
roomObject.model.setValue(RoomObjectVariable.FURNITURE_AREA_HIDE_HIDDEN, this.shouldHideRoomObjectByAreaHide(roomObject, RoomObjectCategory.FLOOR) ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
private applyAreaHideStateToWallObjects(itemIds?: number[]): void
|
||||
{
|
||||
const wallObjects = ((this._roomEngine as any)?.getRoomObjects?.(this._currentRoomId, RoomObjectCategory.WALL) as IRoomObject[]) ?? [];
|
||||
|
||||
if(!wallObjects?.length) return;
|
||||
|
||||
const scopedIds = itemIds?.length ? new Set<number>(itemIds) : null;
|
||||
|
||||
for(const roomObject of wallObjects)
|
||||
{
|
||||
if(!roomObject?.model) continue;
|
||||
if(scopedIds && !scopedIds.has(roomObject.id)) continue;
|
||||
|
||||
roomObject.model.setValue(RoomObjectVariable.FURNITURE_AREA_HIDE_HIDDEN, this.shouldHideRoomObjectByAreaHide(roomObject, RoomObjectCategory.WALL) ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
private shouldHideRoomObjectByAreaHide(roomObject: IRoomObject, category: number): boolean
|
||||
{
|
||||
if(!roomObject?.model) return false;
|
||||
|
||||
const controllerState = this.getAreaHideControllerStateFromObject(roomObject, category);
|
||||
|
||||
if(controllerState)
|
||||
{
|
||||
return (controllerState.invisibility && this._isConfInvisControlActive);
|
||||
}
|
||||
|
||||
if(!this._activeAreaHideControllers.size) return false;
|
||||
|
||||
for(const activeState of this._activeAreaHideControllers.values())
|
||||
{
|
||||
if((activeState.width <= 0) || (activeState.length <= 0)) continue;
|
||||
if((category === RoomObjectCategory.WALL) && !activeState.wallItems) continue;
|
||||
|
||||
const intersectsArea = (category === RoomObjectCategory.WALL)
|
||||
? this.isWallObjectInsideArea(roomObject, activeState)
|
||||
: this.doesFloorObjectIntersectArea(roomObject, activeState);
|
||||
const shouldHide = (activeState.invert ? !intersectsArea : intersectsArea);
|
||||
|
||||
if(shouldHide) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private doesFloorObjectIntersectArea(roomObject: IRoomObject, areaState: AreaHideControllerState): boolean
|
||||
{
|
||||
if(!roomObject?.model) return false;
|
||||
|
||||
const location = roomObject.getLocation();
|
||||
|
||||
if(!location) return false;
|
||||
|
||||
let sizeX = roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_SIZE_X);
|
||||
let sizeY = roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_SIZE_Y);
|
||||
|
||||
if(!sizeX || (sizeX < 1)) sizeX = 1;
|
||||
if(!sizeY || (sizeY < 1)) sizeY = 1;
|
||||
|
||||
const direction = roomObject.getDirection();
|
||||
const directionQuarterTurns = (((Math.trunc(((direction?.x ?? 0) + 45)) % 360) + 360) % 360) / 90;
|
||||
|
||||
if((directionQuarterTurns === 1) || (directionQuarterTurns === 3))
|
||||
{
|
||||
[ sizeX, sizeY ] = [ sizeY, sizeX ];
|
||||
}
|
||||
|
||||
const objectMinX = location.x;
|
||||
const objectMinY = location.y;
|
||||
const objectMaxX = objectMinX + sizeX;
|
||||
const objectMaxY = objectMinY + sizeY;
|
||||
const areaMinX = areaState.rootX;
|
||||
const areaMinY = areaState.rootY;
|
||||
const areaMaxX = areaMinX + areaState.width;
|
||||
const areaMaxY = areaMinY + areaState.length;
|
||||
|
||||
return (objectMinX < areaMaxX)
|
||||
&& (objectMaxX > areaMinX)
|
||||
&& (objectMinY < areaMaxY)
|
||||
&& (objectMaxY > areaMinY);
|
||||
}
|
||||
|
||||
private isWallObjectInsideArea(roomObject: IRoomObject, areaState: AreaHideControllerState): boolean
|
||||
{
|
||||
const location = roomObject?.getLocation();
|
||||
|
||||
if(!location) return false;
|
||||
|
||||
const xCandidates = Array.from(new Set([ Math.floor(location.x), Math.ceil(location.x), Math.round(location.x) ]));
|
||||
const yCandidates = Array.from(new Set([ Math.floor(location.y), Math.ceil(location.y), Math.round(location.y) ]));
|
||||
|
||||
for(const x of xCandidates)
|
||||
{
|
||||
for(const y of yCandidates)
|
||||
{
|
||||
if((x >= areaState.rootX)
|
||||
&& (x < (areaState.rootX + areaState.width))
|
||||
&& (y >= areaState.rootY)
|
||||
&& (y < (areaState.rootY + areaState.length)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private getAreaHideControllerStateFromObject(roomObject: IRoomObject, category: number): AreaHideControllerState
|
||||
{
|
||||
if(!roomObject?.model || (category !== RoomObjectCategory.FLOOR)) return null;
|
||||
|
||||
if(this._activeAreaHideControllers.has(roomObject.id))
|
||||
{
|
||||
return this._activeAreaHideControllers.get(roomObject.id);
|
||||
}
|
||||
|
||||
if(!this.isAreaHideControllerObject(roomObject)) return null;
|
||||
|
||||
return {
|
||||
rootX: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_ROOT_X) ?? 0),
|
||||
rootY: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_ROOT_Y) ?? 0),
|
||||
width: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_WIDTH) ?? 0),
|
||||
length: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_LENGTH) ?? 0),
|
||||
invert: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_INVERT) === 1),
|
||||
wallItems: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_WALL_ITEMS) === 1),
|
||||
invisibility: (roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_INVISIBILITY) === 1)
|
||||
};
|
||||
}
|
||||
|
||||
private isAreaHideControllerObject(roomObject: IRoomObject): boolean
|
||||
{
|
||||
if(!roomObject?.model) return false;
|
||||
|
||||
const furniData = GetSessionDataManager().getFloorItemDataByName(roomObject.type);
|
||||
const customParams = (furniData?.customParams || '').toLowerCase();
|
||||
|
||||
if(customParams.includes('area_hide_control') || customParams.includes('wf_conf_area_hide') || customParams.includes('conf_area_hide'))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
const stuffData = roomObject.model.getValue<number[]>(RoomObjectVariable.FURNITURE_DATA);
|
||||
|
||||
return Array.isArray(stuffData) && (stuffData.length >= 8);
|
||||
}
|
||||
|
||||
private scheduleAreaHideReapply(roomId: number): void
|
||||
{
|
||||
this.clearAreaHideReapplyTimeouts();
|
||||
|
||||
const retryDelays = [ 0, 50, 150, 300, 600, 1000 ];
|
||||
|
||||
for(const delay of retryDelays)
|
||||
{
|
||||
const timeout = setTimeout(() =>
|
||||
{
|
||||
if(roomId !== this._currentRoomId) return;
|
||||
|
||||
this.applyAreaHideStateToRoomObjects();
|
||||
}, delay);
|
||||
|
||||
this._areaHideReapplyTimeouts.push(timeout);
|
||||
}
|
||||
}
|
||||
|
||||
private clearAreaHideReapplyTimeouts(): void
|
||||
{
|
||||
if(!this._areaHideReapplyTimeouts.length) return;
|
||||
|
||||
for(const timeout of this._areaHideReapplyTimeouts)
|
||||
{
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
|
||||
this._areaHideReapplyTimeouts = [];
|
||||
}
|
||||
|
||||
private onRoomUnitDanceEvent(event: RoomUnitDanceEvent): void
|
||||
@@ -973,7 +1373,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;
|
||||
|
||||
@@ -87,6 +87,18 @@ export class RoomObjectEventHandler implements IRoomCanvasMouseListener, IRoomOb
|
||||
}
|
||||
}
|
||||
|
||||
if((event.type === MouseEventType.DOUBLE_CLICK) && (category === RoomObjectCategory.FLOOR) && object.model && (object.model.getValue<number>(RoomObjectVariable.FURNITURE_IS_VARIABLE_HEIGHT) > 0))
|
||||
{
|
||||
const roomIdString = object.model.getValue<string>(RoomObjectVariable.OBJECT_ROOM_ID);
|
||||
const roomId = ((roomIdString && (parseInt(roomIdString.split('_')[0]) || 0)) || -1);
|
||||
|
||||
if((roomId >= 0) && GetEventDispatcher())
|
||||
{
|
||||
GetEventDispatcher().dispatchEvent(new RoomEngineTriggerWidgetEvent(RoomEngineTriggerWidgetEvent.REQUEST_STACK_HEIGHT, roomId, object.id, category));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(object.mouseHandler) object.mouseHandler.mouseEvent(event, geometry);
|
||||
}
|
||||
|
||||
|
||||
@@ -623,7 +623,17 @@ export class RoomPlaneParser
|
||||
}
|
||||
_local_3++;
|
||||
}
|
||||
const _local_4: Point = RoomPlaneParser.findEntranceTile(this._tileMatrix);
|
||||
const _local_4: Point = (() =>
|
||||
{
|
||||
const matrixWithFloorHoles = this._tileMatrix.map((row, rowIndex) =>
|
||||
{
|
||||
const floorHoleRow = this._floorHoleMatrix[rowIndex] || [];
|
||||
|
||||
return row.map((value, columnIndex) => (floorHoleRow[columnIndex] ? RoomPlaneParser.TILE_HOLE : value));
|
||||
});
|
||||
|
||||
return RoomPlaneParser.findEntranceTile(matrixWithFloorHoles);
|
||||
})();
|
||||
|
||||
_local_3 = 0;
|
||||
while(_local_3 < this._height)
|
||||
|
||||
@@ -6,6 +6,7 @@ import { RoomObjectLogicBase } from './RoomObjectLogicBase';
|
||||
export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
{
|
||||
public static DEFAULT_UPDATE_INTERVAL: number = 500;
|
||||
private static LOCATION_EPSILON: number = 0.01;
|
||||
private static TEMP_VECTOR: Vector3d = new Vector3d();
|
||||
|
||||
private _liftAmount: number;
|
||||
@@ -17,6 +18,7 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
private _lastUpdateTime: number;
|
||||
private _changeTime: number;
|
||||
private _updateInterval: number;
|
||||
private _queuedMoveMessages: ObjectMoveUpdateMessage[];
|
||||
|
||||
constructor()
|
||||
{
|
||||
@@ -31,11 +33,13 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
this._lastUpdateTime = 0;
|
||||
this._changeTime = 0;
|
||||
this._updateInterval = MovingObjectLogic.DEFAULT_UPDATE_INTERVAL;
|
||||
this._queuedMoveMessages = [];
|
||||
}
|
||||
|
||||
public dispose(): void
|
||||
{
|
||||
this._liftAmount = 0;
|
||||
this._queuedMoveMessages = [];
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
@@ -46,6 +50,7 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
|
||||
const locationOffset = this.getLocationOffset();
|
||||
const model = this.object && this.object.model;
|
||||
let completedInterpolation = false;
|
||||
|
||||
if(model)
|
||||
{
|
||||
@@ -111,10 +116,13 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
this._locationDelta.x = 0;
|
||||
this._locationDelta.y = 0;
|
||||
this._locationDelta.z = 0;
|
||||
completedInterpolation = true;
|
||||
}
|
||||
}
|
||||
|
||||
this._lastUpdateTime = this.time;
|
||||
|
||||
if(completedInterpolation) this.processQueuedMoveMessage();
|
||||
}
|
||||
|
||||
public setObject(object: IRoomObjectController): void
|
||||
@@ -130,6 +138,17 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
|
||||
if(message instanceof ObjectMoveUpdateMessage)
|
||||
{
|
||||
if(this.shouldApplyInstantMoveMessage(message))
|
||||
{
|
||||
super.processUpdateMessage(message);
|
||||
|
||||
if(message.location) this._location.assign(message.location);
|
||||
|
||||
this.resetInterpolationState();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const requiresCustomMoveHandling = !!message.anchorObject || (message.elapsed > 0);
|
||||
|
||||
if(requiresCustomMoveHandling)
|
||||
@@ -147,15 +166,30 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
if(message instanceof ObjectMoveUpdateMessage) return this.processMoveMessage(message);
|
||||
}
|
||||
|
||||
private shouldApplyInstantMoveMessage(message: ObjectMoveUpdateMessage): boolean
|
||||
{
|
||||
if(!message || !message.location || message.isSlide || !!message.anchorObject || (message.elapsed > 0)) return false;
|
||||
|
||||
return this.matchesLocation(message.location, message.targetLocation);
|
||||
}
|
||||
|
||||
private processMoveMessage(message: ObjectMoveUpdateMessage): void
|
||||
{
|
||||
if(!message || !this.object || !message.location) return;
|
||||
|
||||
if(this.shouldQueueMoveMessage(message))
|
||||
{
|
||||
this.queueMoveMessage(message);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const hadActiveInterpolation = this.isInterpolating();
|
||||
const duration = ((message.duration > 0) ? message.duration : ObjectMoveUpdateMessage.DEFAULT_DURATION);
|
||||
const startLocation = hadActiveInterpolation
|
||||
? this.object.getLocation()
|
||||
: message.location;
|
||||
const elapsed = Math.max(0, Math.min(message.duration, message.elapsed));
|
||||
const elapsed = Math.max(0, Math.min(duration, message.elapsed));
|
||||
|
||||
this._location.assign(startLocation);
|
||||
this.object.setLocation(this._location);
|
||||
@@ -165,7 +199,7 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
else this._followOffset.assign(new Vector3d());
|
||||
|
||||
this._changeTime = (this._lastUpdateTime - elapsed);
|
||||
this.updateInterval = message.duration;
|
||||
this.updateInterval = duration;
|
||||
|
||||
this._locationDelta.assign(message.targetLocation);
|
||||
this._locationDelta.subtract(this._location);
|
||||
@@ -203,11 +237,86 @@ export class MovingObjectLogic extends RoomObjectLogicBase
|
||||
}
|
||||
}
|
||||
|
||||
private resetInterpolationState(): void
|
||||
{
|
||||
this._locationDelta.x = 0;
|
||||
this._locationDelta.y = 0;
|
||||
this._locationDelta.z = 0;
|
||||
this._followObject = null;
|
||||
this._followOffset.assign(new Vector3d());
|
||||
this._queuedMoveMessages = [];
|
||||
this._changeTime = this._lastUpdateTime;
|
||||
}
|
||||
|
||||
private isInterpolating(): boolean
|
||||
{
|
||||
return (this._locationDelta.length > 0) && ((this.time - this._changeTime) < this._updateInterval);
|
||||
}
|
||||
|
||||
private shouldQueueMoveMessage(message: ObjectMoveUpdateMessage): boolean
|
||||
{
|
||||
if(!message.isSlide || !!message.anchorObject || !this.isInterpolating() || !message.location || !message.targetLocation) return false;
|
||||
|
||||
const expectedStartLocation = this.getQueuedMovementTailLocation();
|
||||
|
||||
if(!expectedStartLocation) return false;
|
||||
|
||||
return this.matchesLocation(message.location, expectedStartLocation)
|
||||
&& !this.matchesLocation(message.targetLocation, expectedStartLocation);
|
||||
}
|
||||
|
||||
private queueMoveMessage(message: ObjectMoveUpdateMessage): void
|
||||
{
|
||||
this._queuedMoveMessages.push(new ObjectMoveUpdateMessage(
|
||||
message.location,
|
||||
message.targetLocation,
|
||||
message.direction,
|
||||
message.isSlide,
|
||||
message.duration,
|
||||
message.elapsed,
|
||||
message.anchorObject,
|
||||
message.anchorOffset));
|
||||
}
|
||||
|
||||
private processQueuedMoveMessage(): void
|
||||
{
|
||||
if(!this._queuedMoveMessages.length) return;
|
||||
|
||||
const nextMoveMessage = this._queuedMoveMessages.shift();
|
||||
|
||||
if(!nextMoveMessage) return;
|
||||
|
||||
this.processMoveMessage(nextMoveMessage);
|
||||
}
|
||||
|
||||
private getQueuedMovementTailLocation(): IVector3D
|
||||
{
|
||||
if(this._queuedMoveMessages.length)
|
||||
{
|
||||
const queuedMoveMessage = this._queuedMoveMessages[this._queuedMoveMessages.length - 1];
|
||||
|
||||
if(queuedMoveMessage?.targetLocation) return queuedMoveMessage.targetLocation;
|
||||
}
|
||||
|
||||
if(this._locationDelta.length <= 0) return null;
|
||||
|
||||
const targetLocation = new Vector3d();
|
||||
|
||||
targetLocation.assign(this._location);
|
||||
targetLocation.add(this._locationDelta);
|
||||
|
||||
return targetLocation;
|
||||
}
|
||||
|
||||
private matchesLocation(first: IVector3D, second: IVector3D): boolean
|
||||
{
|
||||
if(!first || !second) return false;
|
||||
|
||||
return (Math.abs(first.x - second.x) <= MovingObjectLogic.LOCATION_EPSILON)
|
||||
&& (Math.abs(first.y - second.y) <= MovingObjectLogic.LOCATION_EPSILON)
|
||||
&& (Math.abs(first.z - second.z) <= MovingObjectLogic.LOCATION_EPSILON);
|
||||
}
|
||||
|
||||
protected getLocationOffset(): IVector3D
|
||||
{
|
||||
return null;
|
||||
|
||||
@@ -294,7 +294,7 @@ export class RoomLogic extends RoomObjectLogicBase
|
||||
switch(message.type)
|
||||
{
|
||||
case ObjectRoomFloorHoleUpdateMessage.ADD:
|
||||
this._planeParser.addFloorHole(message.id, message.x, message.y, message.width, message.height);
|
||||
this._planeParser.addFloorHole(message.id, message.x, message.y, message.width, message.height, message.invert);
|
||||
this._needsMapUpdate = true;
|
||||
return;
|
||||
case ObjectRoomFloorHoleUpdateMessage.REMOVE:
|
||||
|
||||
@@ -25,7 +25,5 @@ export class FurnitureCustomStackHeightLogic extends FurnitureMultiStateLogic
|
||||
if(!this.object || !this.eventDispatcher) return;
|
||||
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectWidgetRequestEvent(RoomObjectWidgetRequestEvent.STACK_HEIGHT, this.object));
|
||||
|
||||
super.useObject();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,6 +398,13 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
{
|
||||
if(!this.object || !this.eventDispatcher) return;
|
||||
|
||||
if(this.object.model && (this.object.model.getValue<number>(RoomObjectVariable.FURNITURE_IS_VARIABLE_HEIGHT) > 0))
|
||||
{
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectWidgetRequestEvent(RoomObjectWidgetRequestEvent.STACK_HEIGHT, this.object));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const clickUrl = this.getAdClickUrl(this.object.model);
|
||||
|
||||
if(clickUrl && clickUrl.length)
|
||||
|
||||
@@ -237,8 +237,11 @@ export class FurnitureVisualization extends RoomObjectSpriteVisualization
|
||||
this._furnitureLift = (model.getValue<number>(RoomObjectVariable.FURNITURE_LIFT_AMOUNT) || 0);
|
||||
|
||||
let alphaMultiplier = model.getValue<number>(RoomObjectVariable.FURNITURE_ALPHA_MULTIPLIER);
|
||||
const hiddenByConfInvisControl = (model.getValue<number>(RoomObjectVariable.FURNITURE_CONF_INVIS_HIDDEN) === 1);
|
||||
const hiddenByAreaHideControl = (model.getValue<number>(RoomObjectVariable.FURNITURE_AREA_HIDE_HIDDEN) === 1);
|
||||
|
||||
if(isNaN(alphaMultiplier)) alphaMultiplier = 1;
|
||||
if(hiddenByConfInvisControl || hiddenByAreaHideControl) alphaMultiplier = 0;
|
||||
|
||||
if(this._alphaMultiplier !== alphaMultiplier)
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user