From cb53ec5bff1d777a27e268bd89fa35c39e9ca953 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Sun, 24 Nov 2024 16:37:58 +0100 Subject: [PATCH 01/39] - Reldens - v4.0.0 - Bump package version. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 943407f4..c196bd15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "reldens", - "version": "4.0.0-beta.38.2", + "version": "4.0.0-beta.38.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "reldens", - "version": "4.0.0-beta.38.2", + "version": "4.0.0-beta.38.3", "license": "MIT", "dependencies": { "@colyseus/core": "0.15.55", diff --git a/package.json b/package.json index 26fc2a26..0840cdea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "reldens", - "version": "4.0.0-beta.38.2", + "version": "4.0.0-beta.38.3", "description": "Reldens - MMORPG Platform", "author": "Damian A. Pastorini", "license": "MIT", From 1423a94931a27ae8d3e60adf97e87e7f1bff8f72 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Sun, 24 Nov 2024 16:38:32 +0100 Subject: [PATCH 02/39] - Reldens - v4.0.0 - Fix file handler isFile validation. --- lib/game/server/file-handler.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/game/server/file-handler.js b/lib/game/server/file-handler.js index 1a3d4104..bfee99d0 100644 --- a/lib/game/server/file-handler.js +++ b/lib/game/server/file-handler.js @@ -136,7 +136,12 @@ class FileHandler isFile(filePath) { - return fs.lstatSync(filePath).isFile(); + try { + return fs.lstatSync(filePath).isFile(); + } catch (error) { + Logger.error(error.message); + } + return false; } permissionsCheck(systemPath) From 53b866fe16c163facbb09256c283fe82d278da19 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 25 Nov 2024 17:15:17 +0100 Subject: [PATCH 03/39] - Reldens - v4.0.0 - Implement early battle end if enemy is death. --- lib/actions/server/pve.js | 54 ++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/lib/actions/server/pve.js b/lib/actions/server/pve.js index 334dd9f9..0896d085 100644 --- a/lib/actions/server/pve.js +++ b/lib/actions/server/pve.js @@ -31,10 +31,27 @@ class Pve extends Battle { //Logger.debug('Running Battle between "'+playerSchema.sessionId+'" and "'+target.id+'".', this.uid); if(GameConst.STATUS.ACTIVE !== playerSchema.state.inState){ - Logger.info('PvE inactive player.', playerSchema.state.inState); + Logger.debug('PvE inactive player.', playerSchema.state.inState); delete this.inBattleWith[target.id]; return false; } + if(!this.targetObject){ + // @NOTE: this will be the expected case when the player was killed in between different NPCs attacks. + // Logger.debug('Target Object reference removed.'); + return false; + } + let affectedProperty = roomScene.config.get('client/actions/skills/affectedProperty'); + // @TODO - BETA - Target affected property could be passed on the target object. + if(!affectedProperty){ + Logger.error('Affected property configuration is missing'); + return false; + } + //Logger.debug('Run Battle - Object:', this.targetObject?.uid, this.targetObject.stats[affectedProperty]); + if(0 >= this.targetObject.stats[affectedProperty]){ + // Logger.debug('Target object affected property is zero.'); + await this.battleEnded(playerSchema, roomScene); + return false; + } // @TODO - BETA - Make PvP available by configuration. // @NOTE: run battle method is for when the player attacks any target. PVE can be started in different ways, // depending on how the current enemy-object was implemented, for example the PVE can start when the player just @@ -46,12 +63,6 @@ class Pve extends Battle // attack for which matter we won't start the battle until the physical body hits the target. return false; } - // @TODO - BETA - Target affected property could be passed on the target object. - let affectedProperty = roomScene.config.get('client/actions/skills/affectedProperty'); - if(!affectedProperty){ - Logger.error('Affected property configuration is missing'); - return false; - } if(!sc.hasOwn(target.stats, affectedProperty)){ Logger.error('Affected property is not present on target stats.', Object.keys(target.stats)); return false; @@ -66,11 +77,23 @@ class Pve extends Battle async startBattleWith(playerSchema, room) { + //Logger.debug('Starts PvE', playerSchema?.player_id, this.targetObject?.uid); if(!this.targetObject){ // @NOTE: this will be the expected case when the player was killed in between different NPCs attacks. // Logger.debug('Target Object reference removed.'); return false; } + let affectedProperty = room.config.get('client/actions/skills/affectedProperty'); + // Logger.debug('Start Battle - Object:', this.targetObject?.uid, this.targetObject.stats[affectedProperty]); + if(0 >= this.targetObject.stats[affectedProperty]){ + // Logger.debug('Target object affected property is zero.'); + return false; + } + if(0 === (this.targetObject.actionsKeys?.length ?? 0)){ + Logger.warning('Target Object does not have any actions assigned.'); + this.leaveBattle(playerSchema); + return false; + } let targetObjectWorld = this.targetObject.objectBody?.world; let objectWorldKey = targetObjectWorld?.worldKey; let playerWorld = playerSchema?.physicalBody?.world; @@ -100,22 +123,6 @@ class Pve extends Battle this.leaveBattle(playerSchema); return false; } - // @NOTE: in PVE we will have this additional method startBattleWith which is when the environment attacks the - // player. - if(!this.targetObject){ - Logger.error('Undefined target object for PvE.'); - this.leaveBattle(playerSchema); - return false; - } - if(0 === (this.targetObject.actionsKeys?.length ?? 0)){ - Logger.warning('Target Object does not have any actions assigned.'); - this.leaveBattle(playerSchema); - return false; - } - if(0 >= this.targetObject.stats[room.config.get('client/actions/skills/affectedProperty')]){ - // Logger.debug('Target object affected property is zero.'); - return false; - } // if target (npc) is already in battle with another player then ignore the current attack: let inBattleWithPlayersIds = Object.keys(this.inBattleWithPlayers); let inBattleWithCurrentPlayer = this.inBattleWithPlayers[playerSchema.player_id]; @@ -263,6 +270,7 @@ class Pve extends Battle let event = new BattleEndedEvent({playerSchema, pve: this, actionData, room}); await this.events.emit(this.targetObject.getBattleEndEvent(), event); await this.events.emit('reldens.battleEnded', event); + return true; } sendBattleEndedActionData(room, playerSchema, actionData) From 20493ecb9fcb660101390dca780dd4e465c32e27 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 25 Nov 2024 17:15:54 +0100 Subject: [PATCH 04/39] - Reldens - v4.0.0 - Avoid start battle with player if enemy is death. --- lib/objects/server/object/type/enemy-object.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/objects/server/object/type/enemy-object.js b/lib/objects/server/object/type/enemy-object.js index b9ede3b6..9f0ba36c 100644 --- a/lib/objects/server/object/type/enemy-object.js +++ b/lib/objects/server/object/type/enemy-object.js @@ -370,8 +370,8 @@ class EnemyObject extends NpcObject startBattleWithPlayer(props) { - let roomScene = props.room; - if(!roomScene){ + let room = props.room; + if(!room){ Logger.error('Required room not found to start battle in Object "'+this.uid+'".'); return false; } @@ -380,10 +380,16 @@ class EnemyObject extends NpcObject // expected when object hits object on CollisionsManager, if a player wasn't hit don't start the battle: return false; } - let playerSchema = roomScene.playerBySessionIdFromState(playerBody.playerId); + let playerSchema = room.playerBySessionIdFromState(playerBody.playerId); if(!playerSchema){ return false; } + let affectedProperty = room.config.get('client/actions/skills/affectedProperty', this.defaultAffectedProperty); + if (0 === this.stats[affectedProperty]){ + //Logger.debug('Object is death, do not run battle.', this.uid); + // do not start the battle if the object is death: + return false; + } return this.battle.startBattleWith(playerSchema, props.room).catch((error) => { Logger.error(error); }); From 417597866fd05a78d0e0bcac6080d633eceead09 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 25 Nov 2024 17:17:10 +0100 Subject: [PATCH 05/39] - Reldens - v4.0.0 - Fix and simplify speed conditions to stop below speed threshold. --- lib/world/server/physical-body.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/world/server/physical-body.js b/lib/world/server/physical-body.js index 71dccf29..609e3612 100644 --- a/lib/world/server/physical-body.js +++ b/lib/world/server/physical-body.js @@ -261,12 +261,14 @@ class PhysicalBody extends Body let bodySpeedY = this.isBullet ? this.originalSpeed.x : this.movementSpeed; let minimumSpeedX = bodySpeedX * this.speedThreshold; let minimumSpeedY = bodySpeedY * this.speedThreshold; - if(Math.abs(this.velocity[0]) < minimumSpeedX){ - Logger.debug('Invalid speed, stopping X:', {speedX: Math.abs(this.velocity[0]), minimumSpeedX}); + let speedX = Math.abs(this.velocity[0]); + if(0 < speedX && speedX < minimumSpeedX){ + Logger.debug('Invalid speed, stopping X:', {speedX, minimumSpeedX}); this.stopX(true); } - if(Math.abs(this.velocity[1]) < minimumSpeedY){ - Logger.debug('Invalid speed, stopping Y.', {speedY: Math.abs(this.velocity[1]), minimumSpeedY}); + let speedY = Math.abs(this.velocity[1]); + if(0 < speedY && speedY < minimumSpeedY){ + Logger.debug('Invalid speed, stopping Y.', {speedY, minimumSpeedY}); this.stopY(true); } return 0 === this.velocity[0] && 0 === this.velocity[1]; From bbd418ac93bd1d4632600471ad10dbd831ac2c53 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 25 Nov 2024 17:58:55 +0100 Subject: [PATCH 06/39] - Reldens - v4.0.0 - Include death state on blocking body movement states. --- lib/world/server/physical-body.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/world/server/physical-body.js b/lib/world/server/physical-body.js index 609e3612..7b5f4286 100644 --- a/lib/world/server/physical-body.js +++ b/lib/world/server/physical-body.js @@ -40,12 +40,13 @@ class PhysicalBody extends Body this.speedToNextMaxRetries = sc.get(options, 'speedToNextMaxRetries', 3); this.speedToNextRetryCounter = {col: 0, row: 0, retries: 0}; this.lastSetCollisionGroup = false; + this.blockBodyStates = sc.get(options, 'blockBodyStates', [GameConst.STATUS.DISABLED, GameConst.STATUS.DEATH]); } integrate(dt) { - if(GameConst.STATUS.DISABLED === this.bodyState?.inState){ - // Logger.debug('Body state disabled.', {key: this.bodyState?.key, state: this.bodyState?.inState}); + if(-1 !== this.blockBodyStates.indexOf(this.bodyState?.inState)){ + // Logger.debug('Body blocked by state.', {key: this.bodyState?.key, state: this.bodyState?.inState}); return; } let minv = this.invMass, From c7aada8fe3bd80356991130c6182c260f81de57b Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 11:26:19 +0100 Subject: [PATCH 07/39] - Reldens - v4.0.0 - Remove wrong parameter. --- lib/game/client/game-manager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/game/client/game-manager.js b/lib/game/client/game-manager.js index e3e83812..0162a85c 100644 --- a/lib/game/client/game-manager.js +++ b/lib/game/client/game-manager.js @@ -254,7 +254,7 @@ class GameManager delete this.initialGameData['selectedScene']; delete this.userData['selectedScene']; await this.emitJoinedRoom(joinedFirstRoom, playerScene); - this.activeRoomEvents = this.createRoomEventsInstance(playerScene, this.events); + this.activeRoomEvents = this.createRoomEventsInstance(playerScene); await this.events.emit('reldens.createdRoomsEventsInstance', joinedFirstRoom, this); await this.activeRoomEvents.activateRoom(joinedFirstRoom); await this.emitActivatedRoom(joinedFirstRoom, playerScene); From f69d3e2a74863ca29b9e98461ede1505df019bcd Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 11:27:53 +0100 Subject: [PATCH 08/39] - Reldens - v4.0.0 - Fix connection closing early reload issue. --- lib/game/client/room-events.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/game/client/room-events.js b/lib/game/client/room-events.js index 55da27a7..413db390 100644 --- a/lib/game/client/room-events.js +++ b/lib/game/client/room-events.js @@ -90,6 +90,7 @@ class RoomEvents return; } this.sceneData = sc.toJson(this.room.state.sceneData); + //Logger.debug('Create scene data:', this.sceneData); if(this.gameEngine.scene.getScene(this.roomName)){ return; } @@ -769,12 +770,13 @@ class RoomEvents send(data, key) { try { - if( - this.room.connection.transport.ws.readyState === this.room.connection.transport.ws.CLOSED - || this.room.connection.transport.ws.readyState === this.room.connection.transport.ws.CLOSING - ){ + if(this.room.connection.transport.ws.readyState === this.room.connection.transport.ws.CLOSED){ ErrorManager.error('Connection lost.'); } + if(this.room.connection.transport.ws.readyState === this.room.connection.transport.ws.CLOSING){ + //Logger.debug('Expected, connection closing.', key, data); + return false; + } if(!key){ key = '*'; } From a1e629744da1743db86b2dfbcc2c317432d42191 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 17:53:37 +0100 Subject: [PATCH 09/39] - Reldens - v4.0.0 - Implement update initial body position on enemy-object. --- .../server/object/type/enemy-object.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/objects/server/object/type/enemy-object.js b/lib/objects/server/object/type/enemy-object.js index 9f0ba36c..19f11b20 100644 --- a/lib/objects/server/object/type/enemy-object.js +++ b/lib/objects/server/object/type/enemy-object.js @@ -34,6 +34,11 @@ class EnemyObject extends NpcObject this.startBattleOnHit = sc.get(props, 'startBattleOnHit', true); this.isAggressive = sc.get(props, 'isAggressive', false); this.interactionRadio = sc.get(props, 'interactionRadio', 0); + this.updateInitialPosition = sc.get( + props, + 'updateInitialPosition', + this.config.getWithoutLogs('server/enemies/updateInitialPosition', true) + ); this.battle = new Pve({ battleTimeOff: sc.get(props, 'battleTimeOff', 20000), chaseMultiple: sc.get(props, 'chaseMultiple', false), @@ -331,6 +336,7 @@ class EnemyObject extends NpcObject this.objectBody.position = [x, y]; this.objectBody.bodyState.x = x; this.objectBody.bodyState.y = y; + this.updateBodyPositionInitialData(room, x, y); let {currentCol, currentRow} = this.objectBody.positionToTiles(x, y); this.objectBody.originalCol = currentCol; this.objectBody.originalRow = currentRow; @@ -345,6 +351,24 @@ class EnemyObject extends NpcObject }, this.respawnStateTime); } + updateBodyPositionInitialData(room, x, y) + { + if(!this.updateInitialPosition){ + return; + } + if(!room.state.roomData?.objectsAnimationsData){ + //Logger.debug('Missing sceneData.objectsAnimationsData: '+this.objectIndex, room.state.roomData); + return false; + } + if(!room.state.roomData.objectsAnimationsData[this.objectIndex]){ + //Logger.debug('Body not found by ID: '+this.objectIndex); + return false; + } + room.state.roomData.objectsAnimationsData[this.objectIndex].x = x; + room.state.roomData.objectsAnimationsData[this.objectIndex].y = y; + room.state.mapRoomData(); + } + setActiveObjectState(room) { //Logger.debug('Activated object after respawn: '+this.uid); From cf807b8731f72991be681380864d55764cfba909 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 17:55:19 +0100 Subject: [PATCH 10/39] - Reldens - v4.0.0 - Refactor respawn server plugin. --- lib/respawn/server/plugin.js | 37 ++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/respawn/server/plugin.js b/lib/respawn/server/plugin.js index 8714686f..b2874444 100644 --- a/lib/respawn/server/plugin.js +++ b/lib/respawn/server/plugin.js @@ -46,10 +46,10 @@ class RespawnPlugin extends PluginInterface } await this.createRoomRespawnArea(layer, world); }); - this.events.on('reldens.sceneRoomOnCreate', this.createRespawnObjectsInstances.bind(this)); + this.events.on('reldens.sceneRoomOnCreate', this.createRespawnAreasObjectsInstances.bind(this)); } - createRespawnObjectsInstances(room) + createRespawnAreasObjectsInstances(room) { // @TODO - BETA - Improve. // append all the room objects body state to the room state: @@ -64,19 +64,28 @@ class RespawnPlugin extends PluginInterface let area = room.roomWorld.respawnAreas[a]; // @NOTE: the instancesCreated are each respawn definition for each enemy type for the specified // layer in the storage. - for(let i of Object.keys(area.instancesCreated)){ - let instanceObjects = area.instancesCreated[i]; - // each instance is an array of objects: - for(let objInstance of instanceObjects){ - // @NOTE: for these objects we associate the state to get the position automatically - // updated on the client. - if(!objInstance.hasState){ - continue; - } - // @TODO - BETA - Refactor and extract Colyseus into a driver. - room.state.addBodyToState(objInstance.state, objInstance.client_key); - } + this.createRespawnObjectsInstances(area, room); + } + } + + createRespawnObjectsInstances(area, room) + { + for(let i of Object.keys(area.instancesCreated)){ + let instanceObjects = area.instancesCreated[i]; + // each instance is an array of objects: + this.createRespawnObjectsInstancesInState(instanceObjects, room); + } + } + + createRespawnObjectsInstancesInState(instanceObjects, room) + { + for(let objInstance of instanceObjects){ + // @NOTE: for these objects we associate the state to get the position automatically + // updated on the client. + if(!objInstance.hasState){ + continue; } + room.state.addBodyToState(objInstance.state, objInstance.client_key); } } From 931991976aa87bcc4a2b098e82aa3786739362d8 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 17:57:47 +0100 Subject: [PATCH 11/39] - Reldens - v4.0.0 - Remove commented long logs. --- lib/world/server/physical-body.js | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/lib/world/server/physical-body.js b/lib/world/server/physical-body.js index 7b5f4286..c094af7a 100644 --- a/lib/world/server/physical-body.js +++ b/lib/world/server/physical-body.js @@ -290,27 +290,11 @@ class PhysicalBody extends Body let velocityX = sc.roundToPrecision(this.velocity[0]); let velocityY = sc.roundToPrecision(this.velocity[1]); if(this.velocity[0] !== 0 && Math.abs(velocityX) < minimumSpeed){ - let fixedPositionX = sc.roundToPrecision(this.position[0] + (0 < velocityX ? 1 : -1)); - /* - Logger.debug( - 'Speed X on "'+this.bodyLogKey()+'" is lower than minimum allowed: ' - +this.velocity[0]+' / '+minimumSpeed - +' - Position X: '+this.position[0]+' / '+fixedPositionX - ); - */ - this.position[0] = fixedPositionX; + this.position[0] = sc.roundToPrecision(this.position[0] + (0 < velocityX ? 1 : -1)); this.stopX(true); } if(this.velocity[1] !== 0 && Math.abs(velocityY) < minimumSpeed && !this.world.applyGravity){ - let fixedPositionY = this.position[1] + (0 < velocityY ? 1 : -1); - /* - Logger.debug( - 'Speed Y on "'+this.bodyLogKey()+'" is lower than minimum allowed: ' - +this.velocity[1]+' / '+minimumSpeed - +' - Position Y: '+this.position[1]+' / '+fixedPositionY - ); - */ - this.position[1] = fixedPositionY; + this.position[1] = this.position[1] + (0 < velocityY ? 1 : -1); this.stopY(true); } let positionX = sc.roundToPrecision(this.position[0], 0); From 3926ed216da5210cf7a88f048ae0ed6252167e48 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 17:59:45 +0100 Subject: [PATCH 12/39] - Reldens - v4.0.0 - Fix server rooms state and scene to use roomData as object and sceneData as serialized broadcast data. --- lib/rooms/server/scene.js | 25 +++++++++++++++++-------- lib/rooms/server/state.js | 19 +++++++++---------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/lib/rooms/server/scene.js b/lib/rooms/server/scene.js index 51455109..51f804f0 100644 --- a/lib/rooms/server/scene.js +++ b/lib/rooms/server/scene.js @@ -986,22 +986,31 @@ class RoomScene extends RoomLogin addObjectStateSceneData(object) { - let sceneData = sc.toJson(this.state.sceneData); - sceneData.objectsAnimationsData[object.objectIndex] = this.roomData.objectsAnimationsData[object.objectIndex]; + // @TODO - BETA - Refactor, remove scene.roomData or scene.state.roomData or rename. + let updateData = sc.get(this.state.roomData.objectsAnimationsData, object.objectIndex); + if(!updateData){ + return; + } + this.state.roomData.objectsAnimationsData[object.objectIndex] = updateData; for(let objectAsset of object.objects_assets){ - sceneData.preloadAssets[(objectAsset.object_id || '') + (objectAsset.object_asset_id || '')] = objectAsset; + this.state.roomData.preloadAssets[this.objectAssetId(objectAsset)] = objectAsset; } - this.state.sceneData = JSON.stringify(sceneData); + this.state.mapRoomData(); } deleteObjectSceneData(object) { - let sceneData = sc.toJson(this.state.sceneData); - delete sceneData.objectsAnimationsData[object.objectIndex]; + // @TODO - BETA - Refactor, remove scene.roomData or scene.state.roomData or rename. + delete this.state.roomData.objectsAnimationsData[object.objectIndex]; for(let objectAsset of object.objects_assets){ - delete sceneData.preloadAssets[(objectAsset.object_id || '') + (objectAsset.object_asset_id || '')]; + delete this.state.roomData.preloadAssets[this.objectAssetId(objectAsset)]; } - this.state.sceneData = JSON.stringify(sceneData) + this.state.mapRoomData(); + } + + objectAssetId(objectAsset) + { + return (objectAsset.object_id || '') + (objectAsset.object_asset_id || ''); } disableAutoDispose() diff --git a/lib/rooms/server/state.js b/lib/rooms/server/state.js index 184656c3..01e8e876 100644 --- a/lib/rooms/server/state.js +++ b/lib/rooms/server/state.js @@ -9,7 +9,7 @@ const { Schema, MapSchema, type } = require('@colyseus/schema'); const { Player } = require('../../users/server/player'); const { ObjectBodyState } = require('../../world/server/object-body-state'); -const { Logger, sc } = require('@reldens/utils'); +const { Logger } = require('@reldens/utils'); class State extends Schema { @@ -17,18 +17,21 @@ class State extends Schema constructor(roomData) { super(); - this.mapRoomData(roomData); + this.roomData = roomData || {}; + this.mapRoomData(); this.players = new MapSchema(); this.bodies = new MapSchema(); } mapRoomData(roomData) { - // @NOTE: this JSON is to send the scene data to the client, here we could remove data we don't want to send. - this.sceneData = JSON.stringify(roomData); - if(sc.hasOwn(roomData, 'worldConfig')){ - Object.assign(this.sceneData, roomData.worldConfig); + if(!roomData){ + roomData = this.roomData; } + // @NOTE: this JSON is sent to the client as the initial data, here we could remove data we don't want to send. + // This will get updated in cases like respawn objects restore (where the objects initial position change), or + // when drops are created. + this.sceneData = JSON.stringify(roomData); } createPlayerSchema(playerData, sessionId) @@ -38,14 +41,12 @@ class State extends Schema addPlayerToState(playerSchema, id) { - // @TODO - BETA - Refactor and extract Colyseus into a driver. this.players.set(id, playerSchema); return this.players.get(id); } positionPlayer(id, data) { - // @TODO - BETA - Refactor and extract Colyseus into a driver. let player = this.players.get(id); if(!player){ Logger.error('Player not found! ID: '+id); @@ -58,7 +59,6 @@ class State extends Schema removePlayer(id) { - // @TODO - BETA - Refactor and extract Colyseus into a driver. this.players.delete(id); } @@ -69,7 +69,6 @@ class State extends Schema addBodyToState(body, bodyId) { - // @TODO - BETA - Refactor and extract Colyseus into a driver. this.bodies.set(bodyId, body); return this.bodies.get(bodyId); } From f31549b201dff93f6cfd3a7690c82e3940bed5aa Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 18:00:44 +0100 Subject: [PATCH 13/39] - Reldens - v4.0.0 - Include rewards object ID validation and log. --- lib/rewards/server/rewards-drops-mapper.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/rewards/server/rewards-drops-mapper.js b/lib/rewards/server/rewards-drops-mapper.js index 0d6cbdc6..ee701794 100644 --- a/lib/rewards/server/rewards-drops-mapper.js +++ b/lib/rewards/server/rewards-drops-mapper.js @@ -5,6 +5,7 @@ */ const { ObjectsConst } = require('../../objects/constants'); +const { Logger } = require('@reldens/utils'); class RewardsDropsMapper { @@ -15,6 +16,10 @@ class RewardsDropsMapper [ObjectsConst.DROPS.KEY]: {} }; for(let reward of rewards){ + if(!reward.randomObjectId){ + Logger.debug('Reward does not have an object ID.', reward); + continue; + } messageData[ObjectsConst.DROPS.KEY][reward.randomObjectId + reward.tileIndex] = { [ObjectsConst.DROPS.TYPE]: reward.animationData.assetType, [ObjectsConst.DROPS.ASSET_KEY]: reward.animationData.assetKey, From 31d95c3fc7981add6d64fa9f4ac39a2481441223 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Wed, 27 Nov 2024 18:05:39 +0100 Subject: [PATCH 14/39] - Reldens - v4.0.0 - Rename RoomEvents sceneData by roomData. - Fix roomData serialization. - Fix objects initial data animation position and visibility updates. --- lib/game/client/room-events.js | 32 +++---- lib/game/client/scene-dynamic.js | 2 +- lib/objects/client/plugin.js | 83 +++++++++++++++---- .../client/prediction-world-creator.js | 2 +- lib/world/client/debug-world-creator.js | 2 +- 5 files changed, 88 insertions(+), 33 deletions(-) diff --git a/lib/game/client/room-events.js b/lib/game/client/room-events.js index 413db390..1150731d 100644 --- a/lib/game/client/room-events.js +++ b/lib/game/client/room-events.js @@ -16,7 +16,7 @@ class RoomEvents constructor(roomName, gameManager) { this.room = false; - this.sceneData = false; + this.roomData = {}; this.scenePreloader = false; this.playersOnAddCallback = false; this.playersOnRemoveCallback = false; @@ -86,15 +86,19 @@ class RoomEvents checkAndCreateScene() { - if(!this.room.state || this.room.state.sceneData === this.sceneData){ - return; + if(!this.room.state){ + Logger.warning('Room state is not ready.'); + return false; + } + // update the room data if is empty: + if(0 === Object.keys(this.roomData).length){ + this.roomData = sc.toJson(this.room.state.sceneData); } - this.sceneData = sc.toJson(this.room.state.sceneData); - //Logger.debug('Create scene data:', this.sceneData); + // avoid create the scene if it exists: if(this.gameEngine.scene.getScene(this.roomName)){ - return; + return false; } - let engineSceneDynamic = this.createSceneInstance(this.roomName, this.sceneData, this.gameManager); + let engineSceneDynamic = this.createSceneInstance(this.roomName, this.roomData, this.gameManager); this.gameEngine.scene.add(this.roomName, engineSceneDynamic, false); } @@ -593,7 +597,7 @@ class RoomEvents if(!this.gameEngine.uiScene){ uiScene = true; } - let preloaderName = GameConst.SCENE_PRELOADER+this.sceneData.roomName; + let preloaderName = GameConst.SCENE_PRELOADER+this.roomName; !this.gameEngine.scene.getScene(preloaderName) ? await this.createPreloaderAndScene(preloaderName, uiScene, player, room, previousScene) : await this.createEngineOnScene(preloaderName, player, room, previousScene); @@ -602,7 +606,7 @@ class RoomEvents async createEngineOnScene(preloaderName, player, room, previousScene) { let currentScene = this.getActiveScene(); - currentScene.objectsAnimationsData = this.sceneData.objectsAnimationsData; + currentScene.objectsAnimationsData = this.roomData.objectsAnimationsData; this.scenePreloader = this.gameEngine.scene.getScene(preloaderName); await this.events.emit('reldens.createdPreloaderRecurring', this, this.scenePreloader); await this.createEngineScene(player, room, previousScene); @@ -612,12 +616,12 @@ class RoomEvents { this.scenePreloader = this.createPreloaderInstance({ name: preloaderName, - map: this.sceneData.roomMap, - images: this.sceneData.sceneImages, + map: this.roomData.roomMap, + images: this.roomData.sceneImages, uiScene: uiScene, gameManager: this.gameManager, - preloadAssets: this.sceneData.preloadAssets, - objectsAnimationsData: this.sceneData.objectsAnimationsData + preloadAssets: this.roomData.preloadAssets, + objectsAnimationsData: this.roomData.objectsAnimationsData }); this.gameEngine.scene.add(preloaderName, this.scenePreloader, true); await this.events.emit('reldens.createdPreloaderInstance', this, this.scenePreloader); @@ -662,7 +666,7 @@ class RoomEvents currentScene.player = this.createPlayerEngineInstance(currentScene, player, this.gameManager, room); currentScene.player.create(); this.addExistentPlayers(room, currentScene); - this.updateSceneLabel(this.sceneData.roomTitle); + this.updateSceneLabel(this.roomData.roomTitle); // @NOTE: player states must be requested since are private user data that we can share with other players or // broadcast to the rooms. // request player stats after the player was added to the scene: diff --git a/lib/game/client/scene-dynamic.js b/lib/game/client/scene-dynamic.js index 02cb0ab2..c8d2b2b7 100644 --- a/lib/game/client/scene-dynamic.js +++ b/lib/game/client/scene-dynamic.js @@ -250,7 +250,7 @@ class SceneDynamic extends Scene if(!this.gameManager.config.get('client/players/tapMovement/enabled')){ return false; } - if(this.gameManager.activeRoomEvents.sceneData?.worldConfig?.applyGravity){ + if(this.gameManager.activeRoomEvents.roomData?.worldConfig?.applyGravity){ return false; } let primaryMove = this.gameManager.config.get('client/ui/controls/primaryMove'); diff --git a/lib/objects/client/plugin.js b/lib/objects/client/plugin.js index e7ac0324..e6849dcf 100644 --- a/lib/objects/client/plugin.js +++ b/lib/objects/client/plugin.js @@ -74,7 +74,7 @@ class ObjectsPlugin extends PluginInterface // @NOTE: the prepareObjectsUi has to be created before the scenes, so we can use the scenes events before // the events were called. this.events.on('reldens.startEngineScene', async (roomEvents) => { - await this.prepareObjectsUi(roomEvents.gameManager, roomEvents.sceneData.objectsAnimationsData, roomEvents); + await this.prepareObjectsUi(roomEvents.gameManager, roomEvents.roomData.objectsAnimationsData, roomEvents); }); this.events.on('reldens.afterSceneDynamicCreate', async (sceneDynamic) => { await this.createDynamicAnimations(sceneDynamic); @@ -136,12 +136,12 @@ class ObjectsPlugin extends PluginInterface { // @TODO - BETA - Refactor and extract Colyseus into a driver. let bodyProperties = Object.keys(body); - let stateProps = Object.keys(body.state ?? {}); for(let propertyKey of bodyProperties){ body.listen(propertyKey, async (newValue) => { + //Logger.debug('Update body property "'+propertyKey+'": '+newValue); await this.events.emit('reldens.objectBodyChange', {body, key, changes: {[propertyKey]: newValue}}); - this.updateBodyProperties(propertyKey, stateProps, body, newValue); let currentScene = gameManager.activeRoomEvents.getActiveScene(); + this.updateBodyProperties(propertyKey, body, newValue, currentScene, key); if(!currentScene){ return; } @@ -179,13 +179,11 @@ class ObjectsPlugin extends PluginInterface currentBody.sceneSprite.setVisible(isActive); } - updateBodyProperties(bodyProp, stateProps, body, value) + updateBodyProperties(bodyProp, body, value, currentScene, key) { - if(bodyProp === 'state'){ - for(let stateProp of stateProps){ - body.state[stateProp] = value[stateProp]; - } - return; + // @TODO - BETA - Remove hardcoded properties check. + if(currentScene.objectsAnimationsData && ('x' === bodyProp || 'y' === bodyProp)){ + currentScene.objectsAnimationsData[key][bodyProp] = value; } body[bodyProp] = value; } @@ -346,10 +344,19 @@ class ObjectsPlugin extends PluginInterface } } + /** + * The objects UI are the modal dialogs that will be open when you interact with the object. + * To interact with the object you need to be into the object interaction area and click on it. + * + * @param {GameManager} gameManager + * @param {object} objectsAnimationsData + * @param {RoomEvents} roomEvents + * @returns {Promise} + */ async prepareObjectsUi(gameManager, objectsAnimationsData, roomEvents) { if(!objectsAnimationsData){ - Logger.info(['None objects animations data.', roomEvents]); + Logger.info('None objects animations data.'); return; } for(let i of Object.keys(objectsAnimationsData)){ @@ -374,14 +381,13 @@ class ObjectsPlugin extends PluginInterface async createDynamicAnimations(sceneDynamic) { - let currentScene = sceneDynamic.gameManager.activeRoomEvents.getActiveScene(); - if(!currentScene.objectsAnimationsData){ - Logger.info('None animations defined on this scene: '+currentScene.key); + if(!sceneDynamic.objectsAnimationsData){ + Logger.info('None animations defined on this scene: '+sceneDynamic.key); return; } await this.events.emit('reldens.createDynamicAnimationsBefore', this, sceneDynamic); - for(let i of Object.keys(currentScene.objectsAnimationsData)){ - let animProps = currentScene.objectsAnimationsData[i]; + for(let i of Object.keys(sceneDynamic.objectsAnimationsData)){ + let animProps = sceneDynamic.objectsAnimationsData[i]; await this.createAnimationFromAnimData(animProps, sceneDynamic); } } @@ -393,6 +399,9 @@ class ObjectsPlugin extends PluginInterface return false; } animProps.frameRate = sceneDynamic.configuredFrameRate; + let activeRoomEvents = sceneDynamic.gameManager.activeRoomEvents; + let existentBody = this.fetchExistentBody(sceneDynamic, activeRoomEvents, animProps); + this.updateAnimationPosition(existentBody, animProps); await this.events.emit('reldens.createDynamicAnimation_'+animProps.key, this, animProps); let classDefinition = sceneDynamic.gameManager.config.getWithoutLogs( 'client/customClasses/objects/'+animProps.key, @@ -400,9 +409,51 @@ class ObjectsPlugin extends PluginInterface ); let animationEngine = new classDefinition(sceneDynamic.gameManager, animProps, sceneDynamic); // @NOTE: this will populate the objectsAnimations property in the current scene, see scene-dynamic. - animationEngine.createAnimation(); + let sprite = animationEngine.createAnimation(); + this.updateAnimationVisibility(existentBody, sprite); return animationEngine; } + + updateAnimationPosition(existentBody, animProps) + { + // Logger.debug('Existent body:', {existentBody}); + if(!existentBody){ + // expected, not all animation objects may have a body: + return false; + } + // @NOTE: respawn objects would have the animProp position outdated since it comes from the roomData, which + // only contains the objects original initial position. + //Logger.debug('Existent body "'+animProps.key+'" position:', {x: existentBody.x, y: existentBody.y}); + //Logger.debug('AnimProps "'+animProps.key+'" position:', {x: animProps.x, y: animProps.y}); + if(animProps.x !== existentBody.x){ + animProps.x = existentBody.x; + } + if(animProps.y !== existentBody.y){ + animProps.y = existentBody.y; + } + } + + updateAnimationVisibility(existentBody, sprite) + { + if(!existentBody){ + // expected, not all animation objects may have a body: + return false; + } + if(GameConst.STATUS.DEATH !== existentBody.inState && GameConst.STATUS.DISABLED !== existentBody.inState){ + return false; + } + sprite.visible = false; + } + + fetchExistentBody(sceneDynamic, activeRoomEvents, animProps) + { + //Logger.debug('Scene key vs roomName: '+sceneDynamic.key+' / '+activeRoomEvents.roomName+'.'); + if(sceneDynamic.key !== activeRoomEvents.roomName){ + Logger.warning('Scene key and roomName miss match: '+sceneDynamic.key+' / '+activeRoomEvents.roomName+'.'); + return false; + } + return activeRoomEvents.room.state.bodies.get(animProps?.key); + } } module.exports.ObjectsPlugin = ObjectsPlugin; diff --git a/lib/prediction/client/prediction-world-creator.js b/lib/prediction/client/prediction-world-creator.js index a69c9bf8..6a712c57 100644 --- a/lib/prediction/client/prediction-world-creator.js +++ b/lib/prediction/client/prediction-world-creator.js @@ -28,7 +28,7 @@ class PredictionWorldCreator config: scene.configManager, events: scene.eventsManager, allowSimultaneous: scene.configManager.get('client/general/controls/allowSimultaneousKeys', true), - worldConfig: scene.gameManager.activeRoomEvents.sceneData?.worldConfig || scene.worldConfig + worldConfig: scene.gameManager.activeRoomEvents.roomData?.worldConfig || scene.worldConfig }; scene.worldPrediction = this.createWorldInstance(worldData); scene.worldPrediction.createLimits(); diff --git a/lib/world/client/debug-world-creator.js b/lib/world/client/debug-world-creator.js index 7d2b578d..94d71f02 100644 --- a/lib/world/client/debug-world-creator.js +++ b/lib/world/client/debug-world-creator.js @@ -24,7 +24,7 @@ class DebugWorldCreator config: scene.configManager, events: scene.eventsManager, allowSimultaneous: scene.configManager.get('client/general/controls/allowSimultaneousKeys', true), - worldConfig: scene.gameManager.activeRoomEvents.sceneData?.worldConfig || scene.worldConfig + worldConfig: scene.gameManager.activeRoomEvents.roomData?.worldConfig || scene.worldConfig }; scene.debugWorld = this.createWorldInstance(worldData); scene.debugWorld.createLimits(); From b78f60d173be038984ba11c6f5da01f2ff0570b7 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Thu, 28 Nov 2024 23:49:57 +0100 Subject: [PATCH 15/39] - Reldens - v4.0.0 - Include Objects and Skills imports in the wizard section. --- lib/admin/server/admin-manager-config.js | 6 +- lib/admin/server/admin-manager.js | 126 ++++++++++++++ lib/admin/server/admin-translations.js | 2 + lib/admin/server/templates-list.js | 2 + lib/admin/server/uploader-factory.js | 2 +- lib/game/server/file-handler.js | 3 + lib/import/server/objects-importer.js | 2 +- lib/import/server/skills-importer.js | 15 +- theme/admin/reldens-admin-client.scss | 12 +- theme/admin/templates/objects-import.html | 143 +++++++++++++++ theme/admin/templates/skills-import.html | 201 ++++++++++++++++++++++ 11 files changed, 502 insertions(+), 12 deletions(-) create mode 100644 theme/admin/templates/objects-import.html create mode 100644 theme/admin/templates/skills-import.html diff --git a/lib/admin/server/admin-manager-config.js b/lib/admin/server/admin-manager-config.js index 8788ad4e..f6305432 100644 --- a/lib/admin/server/admin-manager-config.js +++ b/lib/admin/server/admin-manager-config.js @@ -5,11 +5,13 @@ */ const { MapsImporter } = require('../../import/server/maps-importer'); +const { ObjectsImporter } = require('../../import/server/objects-importer'); +const { SkillsImporter } = require('../../import/server/skills-importer'); const { PropertiesHandler } = require('../../game/properties-handler'); class AdminManagerConfig extends PropertiesHandler { - + constructor(serverManager) { super(); @@ -25,6 +27,8 @@ class AdminManagerConfig extends PropertiesHandler this.applicationFramework = serverManager?.appServerFactory?.applicationFramework; this.fileStorageManager = serverManager?.appServerFactory?.fileStorageManager; this.mapsImporter = new MapsImporter(serverManager); + this.objectsImporter = new ObjectsImporter(serverManager); + this.skillsImporter = new SkillsImporter(serverManager); this.bodyParser = serverManager?.appServerFactory?.bodyParser; this.session = serverManager?.appServerFactory?.session; this.broadcastCallback = (props) => { diff --git a/lib/admin/server/admin-manager.js b/lib/admin/server/admin-manager.js index f57f5f56..19c1432c 100644 --- a/lib/admin/server/admin-manager.js +++ b/lib/admin/server/admin-manager.js @@ -33,6 +33,8 @@ class AdminManager applicationFramework = null; fileStorageManager = null; mapsImporter = null; + objectsImporter = null; + skillsImporter = null; bodyParser = null; session = null; broadcastCallback = null; @@ -71,6 +73,8 @@ class AdminManager this.deletePath = '/delete'; this.managementPath = '/management'; this.mapsWizardPath = '/maps-wizard'; + this.objectsImportPath = '/objects-import'; + this.skillsImportPath = '/skills-import'; this.adminEntitiesGenerator = new AdminEntitiesGenerator(); this.uploaderFactory = new UploaderFactory(); this.mapsWizardHandlers = { @@ -157,6 +161,8 @@ class AdminManager this.adminContents.dashboard = await this.buildDashboard(); this.adminContents.management = await this.buildManagement(); this.adminContents.mapsWizard = await this.buildMapsWizard(); + this.adminContents.objectsImport = await this.buildObjectsImport(); + this.adminContents.skillsImport = await this.buildSkillsImport(); this.adminContents.entities = await this.buildEntitiesContents(); } @@ -183,6 +189,14 @@ class AdminManager [this.translations.labels['mapsWizard']]: await this.render( this.adminFilesContents.sideBarItem, {name: this.translations.labels['mapsWizard'], path: this.rootPath+this.mapsWizardPath} + ), + [this.translations.labels['objectsImport']]: await this.render( + this.adminFilesContents.sideBarItem, + {name: this.translations.labels['objectsImport'], path: this.rootPath+this.objectsImportPath} + ), + [this.translations.labels['skillsImport']]: await this.render( + this.adminFilesContents.sideBarItem, + {name: this.translations.labels['skillsImport'], path: this.rootPath+this.skillsImportPath} ) } }; @@ -271,6 +285,28 @@ class AdminManager return await this.renderRoute(pageContent, this.adminContents.sideBar); } + async buildObjectsImport() + { + let pageContent = await this.render( + this.adminFilesContents.objectsImport, + { + actionPath: this.rootPath+this.objectsImportPath + } + ); + return await this.renderRoute(pageContent, this.adminContents.sideBar); + } + + async buildSkillsImport() + { + let pageContent = await this.render( + this.adminFilesContents.skillsImport, + { + actionPath: this.rootPath+this.skillsImportPath + } + ); + return await this.renderRoute(pageContent, this.adminContents.sideBar); + } + async buildEntitiesContents() { let entitiesContents = {}; @@ -566,6 +602,8 @@ class AdminManager return res.redirect(redirectManagementPath+'?result=success'); }); this.setupMapsWizardRoutes(); + this.setupObjectsImporterRoutes(); + this.setupSkillsImporterRoutes(); // apply the adminRouter to the /admin path: this.app.use(this.rootPath, this.adminRouter); } @@ -622,6 +660,48 @@ class AdminManager ); } + setupObjectsImporterRoutes() + { + // step-1, import options: + this.adminRouter.get(this.objectsImportPath, this.isAuthenticated.bind(this), async (req, res) => { + let rendererContent = await this.render(this.adminContents.objectsImport, this.fetchShuttingDownData()); + return res.send(rendererContent); + }); + let fields = [{name: 'generatorJsonFiles'}]; + let buckets = {generatorJsonFiles: this.themeManager.projectGeneratedDataPath}; + let allowedFileTypes = {generatorJsonFiles: AllowedFileTypes.TEXT}; + this.adminRouter.post( + this.objectsImportPath, + this.isAuthenticated.bind(this), + this.uploaderFactory.createUploader(fields, buckets, allowedFileTypes), + async (req, res) => { + // step-2, import: + return res.redirect(await this.importObjects(req)); + } + ); + } + + setupSkillsImporterRoutes() + { + // step-1, import options: + this.adminRouter.get(this.skillsImportPath, this.isAuthenticated.bind(this), async (req, res) => { + let rendererContent = await this.render(this.adminContents.skillsImport, this.fetchShuttingDownData()); + return res.send(rendererContent); + }); + let fields = [{name: 'generatorJsonFiles'}]; + let buckets = {generatorJsonFiles: this.themeManager.projectGeneratedDataPath}; + let allowedFileTypes = {generatorJsonFiles: AllowedFileTypes.TEXT}; + this.adminRouter.post( + this.skillsImportPath, + this.isAuthenticated.bind(this), + this.uploaderFactory.createUploader(fields, buckets, allowedFileTypes), + async (req, res) => { + // step-2, import: + return res.redirect(await this.importSkills(req)); + } + ); + } + async generateMaps(req, res) { let selectedHandler = req?.body?.mapsWizardAction; @@ -755,6 +835,52 @@ class AdminManager return this.rootPath+this.mapsWizardPath+'?result=success'; } + async importObjects(req) + { + let generateObjectsData = sc.toJson(req?.body?.generatorData); + if(!generateObjectsData){ + let fileName = req.files?.generatorJsonFiles?.shift()?.originalname; + if(!fileName){ + return this.rootPath+this.skillsImportPath+'?result=objectsImportMissingDataError'; + } + generateObjectsData = sc.toJson(await FileHandler.fetchFileContents( + FileHandler.joinPaths(this.themeManager.projectGeneratedDataPath, fileName) + )); + if(!generateObjectsData){ + return this.rootPath+this.objectsImportPath+'?result=objectsImportDataError'; + } + } + let importResult = await this.objectsImporter.import(generateObjectsData); + if(!importResult){ + let errorCode = this.objectsImporter.errorCode || 'objectsImportError' + return this.rootPath+this.objectsImportPath+'?result='+errorCode; + } + return this.rootPath+this.objectsImportPath+'?result=success'; + } + + async importSkills(req) + { + let generateSkillsData = sc.toJson(req?.body?.generatorData); + if(!generateSkillsData){ + let fileName = req.files?.generatorJsonFiles?.shift()?.originalname; + if(!fileName){ + return this.rootPath+this.skillsImportPath+'?result=skillsImportMissingDataError'; + } + generateSkillsData = sc.toJson(await FileHandler.fetchFileContents( + FileHandler.joinPaths(this.themeManager.projectGeneratedDataPath, fileName) + )); + if(!generateSkillsData){ + return this.rootPath+this.skillsImportPath+'?result=skillsImportDataError'; + } + } + let importResult = await this.skillsImporter.import(generateSkillsData); + if(!importResult){ + let errorCode = this.skillsImporter.errorCode || 'skillsImportError' + return this.rootPath+this.skillsImportPath+'?result='+errorCode; + } + return this.rootPath+this.skillsImportPath+'?result=success'; + } + mapGeneratedMapsDataForImport(data) { if(!data.selectedMaps){ diff --git a/lib/admin/server/admin-translations.js b/lib/admin/server/admin-translations.js index 3274befa..d9b293b1 100644 --- a/lib/admin/server/admin-translations.js +++ b/lib/admin/server/admin-translations.js @@ -30,6 +30,8 @@ class AdminTranslations pages: 'Server Management', management: 'Management', mapsWizard: 'Maps Generation and Import', + objectsImport: 'Objects Import', + skillsImport: 'Skills Import', shuttingDown: 'Server is shutting down in:', submitShutdownLabel: 'Shutdown Server', submitCancelLabel: 'Cancel Server Shutdown', diff --git a/lib/admin/server/templates-list.js b/lib/admin/server/templates-list.js index 95bf29af..679f14c1 100644 --- a/lib/admin/server/templates-list.js +++ b/lib/admin/server/templates-list.js @@ -10,6 +10,8 @@ module.exports.TemplatesList = { management: 'management.html', mapsWizard: 'maps-wizard.html', mapsWizardMapsSelection: 'maps-wizard-maps-selection.html', + objectsImport: 'objects-import.html', + skillsImport: 'skills-import.html', list: 'list.html', listContent: 'list-content.html', view: 'view.html', diff --git a/lib/admin/server/uploader-factory.js b/lib/admin/server/uploader-factory.js index 6ea129ac..5b79a4db 100644 --- a/lib/admin/server/uploader-factory.js +++ b/lib/admin/server/uploader-factory.js @@ -15,7 +15,7 @@ class UploaderFactory createUploader(fields, buckets, allowedFileTypes) { let storage = multer.diskStorage({ - destination: (req,file,cb) => { + destination: (req, file, cb) => { cb(null, buckets[file.fieldname]); }, filename: (req,file,cb) => { diff --git a/lib/game/server/file-handler.js b/lib/game/server/file-handler.js index bfee99d0..ab5e2231 100644 --- a/lib/game/server/file-handler.js +++ b/lib/game/server/file-handler.js @@ -172,6 +172,9 @@ class FileHandler fetchFileContents(filePath) { + if(!this.isFile(filePath)){ + return false; + } let fileContent = this.readFile(filePath); if(!fileContent){ Logger.error('Can not read data file or file empty.', filePath); diff --git a/lib/import/server/objects-importer.js b/lib/import/server/objects-importer.js index 4d049ee2..632df149 100644 --- a/lib/import/server/objects-importer.js +++ b/lib/import/server/objects-importer.js @@ -33,7 +33,7 @@ class ObjectsImporter return false; } if(!sc.isArray(data.objects)){ - Logger.critical('Import Objects data not found.'); + Logger.critical('Import Objects data not found.', data); return false; } if(!this.validRepositories([ diff --git a/lib/import/server/skills-importer.js b/lib/import/server/skills-importer.js index 866e9935..412e14f0 100644 --- a/lib/import/server/skills-importer.js +++ b/lib/import/server/skills-importer.js @@ -48,7 +48,7 @@ class SkillsImporter this.defaults = sc.get(data, 'defaults', {}); this.skills = sc.get(data, 'skills', {}); if(0 === Object.keys(this.skills).length){ - Logger.critical('Skills data not found.'); + Logger.critical('Skills data not found.', data); return false; } await this.loadTargetOptions(); @@ -61,21 +61,30 @@ class SkillsImporter if(!this.options.override && !this.options.update && existentSkill){ continue; } + await this.upsertSkill(key, existentSkill); + } + Logger.info('Skill import finished.'); + } + + async upsertSkill(key, existentSkill) + { + try { let skillRawData = this.skills[key]; let skillsData = (new SkillDataFactory()).mapData(key, skillRawData, this.defaults); skillsData.type = this.skillTypes[skillRawData.typeData.key].id; if(this.options.update && existentSkill){ await this.updateSkill(existentSkill, skillsData); Logger.debug('Updated skill: "' + key + '".'); - continue; + return; } if(this.options.override && existentSkill){ await this.deleteSkill(existentSkill.id); } await this.createSkill(key, skillsData); Logger.debug('Created skill: "' + key + '".'); + } catch (error){ + Logger.warning('Create skill error.', error.message, {key, existentSkill}); } - Logger.info('Skill import finished.'); } async loadTargetOptions() diff --git a/theme/admin/reldens-admin-client.scss b/theme/admin/reldens-admin-client.scss index 1b5ce515..d1ac81a1 100644 --- a/theme/admin/reldens-admin-client.scss +++ b/theme/admin/reldens-admin-client.scss @@ -601,14 +601,14 @@ $darkGreen: #27ae60; .submit-container { display: flex; } + } + } - .loading { - max-width: 50px; + .loading { + max-width: 50px; - &.hidden { - display: none; - } - } + &.hidden { + display: none; } } diff --git a/theme/admin/templates/objects-import.html b/theme/admin/templates/objects-import.html new file mode 100644 index 00000000..ee9b30e9 --- /dev/null +++ b/theme/admin/templates/objects-import.html @@ -0,0 +1,143 @@ +

Objects Import

+
+
+
+
+

What would you like to do?

+
+ +

NOTE: if you already uploaded all your files and never manually removed them from the "generate-data" folder, you don't need to upload the same files again.

+
+ + +
+
+ + +
+
+ + +
+
+
+
+ diff --git a/theme/admin/templates/skills-import.html b/theme/admin/templates/skills-import.html new file mode 100644 index 00000000..daa8214e --- /dev/null +++ b/theme/admin/templates/skills-import.html @@ -0,0 +1,201 @@ +

Skills Import

+
+
+
+
+

What would you like to do?

+
+ +

NOTE: if you already uploaded all your files and never manually removed them from the "generate-data" folder, you don't need to upload the same files again.

+
+ + +
+
+ + +
+
+ + +
+
+
+
+ From f1994a18ac8e02fd49b507b598c5f9f8fc68f33e Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Sun, 1 Dec 2024 17:00:12 +0100 Subject: [PATCH 16/39] - Reldens - v4.0.0 - Update storage package to get fix for MySQL native password. --- lib/game/server/manager.js | 2 +- package-lock.json | 490 ++++++++++++++++++++++++++++++++----- package.json | 2 +- 3 files changed, 431 insertions(+), 63 deletions(-) diff --git a/lib/game/server/manager.js b/lib/game/server/manager.js index e6278b73..a1015e12 100644 --- a/lib/game/server/manager.js +++ b/lib/game/server/manager.js @@ -142,7 +142,7 @@ class ServerManager Logger.critical('Data Server could not be connected.'); process.exit(); } - Logger.info('Storage connected.', {config: dataServerConfig.config}); + Logger.info('Storage connected.', {config: dataServerConfig.config, initialized: dataServer.initialized}); if(this.autoGenerateEntities){ await dataServer.generateEntities(); Logger.info('Storage entities generated.', {entities: Object.keys(dataServerConfig.loadedEntities)}); diff --git a/package-lock.json b/package-lock.json index c196bd15..1d931ffa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,7 +70,7 @@ "@reldens/items-system": "^0.33.0", "@reldens/modifiers": "^0.25.0", "@reldens/skills": "^0.33.0", - "@reldens/storage": "^0.30.0", + "@reldens/storage": "^0.31.0", "@reldens/tile-map-generator": "^0.16.0", "@reldens/utils": "^0.39.0", "@sendgrid/mail": "8.1.4", @@ -1830,16 +1830,16 @@ } }, "node_modules/@mikro-orm/core": { - "version": "6.3.13", - "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.3.13.tgz", - "integrity": "sha512-gNvk/98Xe283+Yn4CFxNNJmx1iXT8gRfDn4agjFUa4pI9pVw+idkxOljXuLlvoW44ybiwji8qagaoY+tmD0BTQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.0.tgz", + "integrity": "sha512-8DOqA4UXRfo9+mmIepxNioTkWKmn06M0YRLb2jRrVb2NYMsA/ihGaTggbaLQXXLpy/Qk2Ke3+T0mWDyXZKcwnQ==", "dependencies": { "dataloader": "2.2.2", "dotenv": "16.4.5", "esprima": "4.0.1", "fs-extra": "11.2.0", "globby": "11.1.0", - "mikro-orm": "6.3.13", + "mikro-orm": "6.4.0", "reflect-metadata": "0.2.2" }, "engines": { @@ -1849,13 +1849,66 @@ "url": "https://github.com/sponsors/b4nan" } }, + "node_modules/@mikro-orm/knex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.0.tgz", + "integrity": "sha512-27ZC0RxZ4rcGKam/bJsqgyrjfonCstNAFcdOrs/yncYjV8sGOHSdSxtfWuWQVzQCMEL64K7q+RDCUmygAoo4SA==", + "dependencies": { + "fs-extra": "11.2.0", + "knex": "3.1.0", + "sqlstring": "2.3.3" + }, + "engines": { + "node": ">= 18.12.0" + }, + "peerDependencies": { + "@mikro-orm/core": "^6.0.0", + "better-sqlite3": "*", + "libsql": "*", + "mariadb": "*" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "libsql": { + "optional": true + }, + "mariadb": { + "optional": true + } + } + }, + "node_modules/@mikro-orm/knex/node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@mikro-orm/mongodb": { - "version": "6.3.13", - "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-6.3.13.tgz", - "integrity": "sha512-tIjqbOznhqnOaJ9ZEL/oy/Up5tj7BZqWNinyPWceX8vVOSDgCv3wCcgFaEDyBMRHrH2sJW2rRsjWC9aXj05Q5Q==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-6.4.0.tgz", + "integrity": "sha512-Ah2ASyHbgPbK4AgN+R98PnDlNTbGWjTcK3rvhUl5O2JUIfPzl4aqNZOIlEVTe2KwKlWKmNNqfW34sv/buFNwzQ==", "dependencies": { "bson": "^6.7.0", - "mongodb": "6.9.0" + "mongodb": "6.10.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "peerDependencies": { + "@mikro-orm/core": "^6.0.0" + } + }, + "node_modules/@mikro-orm/mysql": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/mysql/-/mysql-6.4.0.tgz", + "integrity": "sha512-nHM3v1edK2FJJ2nGs8HUdpctfhaqt13oVFvjVwuAuGSIfZiNlo3gToMRkgerF62QkTr+zdxBsfwSS5CvJNuHVw==", + "dependencies": { + "@mikro-orm/knex": "6.4.0", + "mysql2": "3.11.4" }, "engines": { "node": ">= 18.12.0" @@ -1864,6 +1917,44 @@ "@mikro-orm/core": "^6.0.0" } }, + "node_modules/@mikro-orm/mysql/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mikro-orm/mysql/node_modules/mysql2": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.4.tgz", + "integrity": "sha512-Z2o3tY4Z8EvSRDwknaC40MdZ3+m0sKbpnXrShQLdxPrAvcNli7jLrD2Zd2IzsRMw4eK9Yle500FDmlkIqp+krg==", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/@mikro-orm/mysql/node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@mischnic/json-sourcemap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", @@ -3839,6 +3930,19 @@ "@reldens/utils": "^0.38.0" } }, + "node_modules/@reldens/items-system/node_modules/@reldens/storage": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", + "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", + "dependencies": { + "@mikro-orm/core": "^6.3.13", + "@mikro-orm/mongodb": "^6.3.13", + "@reldens/utils": "^0.38.0", + "knex": "^3.1.0", + "mysql": "^2.18.1", + "objection": "^3.1.5" + } + }, "node_modules/@reldens/items-system/node_modules/@reldens/utils": { "version": "0.38.0", "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", @@ -3873,15 +3977,7 @@ "@reldens/utils": "^0.38.0" } }, - "node_modules/@reldens/skills/node_modules/@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", - "dependencies": { - "await-event-emitter": "2.0.2" - } - }, - "node_modules/@reldens/storage": { + "node_modules/@reldens/skills/node_modules/@reldens/storage": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", @@ -3894,7 +3990,7 @@ "objection": "^3.1.5" } }, - "node_modules/@reldens/storage/node_modules/@reldens/utils": { + "node_modules/@reldens/skills/node_modules/@reldens/utils": { "version": "0.38.0", "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", @@ -3902,6 +3998,21 @@ "await-event-emitter": "2.0.2" } }, + "node_modules/@reldens/storage": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.31.0.tgz", + "integrity": "sha512-uG+8FFMBigUbe3CRD+jCL+N6OOBA2ChtxQWjgDEiEtBJKAX8FrFY/mTaSrHD6ruqDeqGMMqWSaHxp+I90Ne1Vg==", + "dependencies": { + "@mikro-orm/core": "^6.4.0", + "@mikro-orm/mongodb": "^6.4.0", + "@mikro-orm/mysql": "^6.4.0", + "@reldens/utils": "^0.39.0", + "knex": "^3.1.0", + "mysql": "^2.18.1", + "mysql2": "^3.11.5", + "objection": "^3.1.5" + } + }, "node_modules/@reldens/tile-map-generator": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/@reldens/tile-map-generator/-/tile-map-generator-0.16.0.tgz", @@ -4493,6 +4604,14 @@ "node": ">=6.0.0" } }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/axios": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", @@ -4679,9 +4798,9 @@ } }, "node_modules/bson": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.9.0.tgz", - "integrity": "sha512-X9hJeyeM0//Fus+0pc5dSUMhhrrmWwQUtdavaQeF3Ta6m69matZkGWV/MrBcnwUeLC8W9kwwc2hfkZgUuCX3Ig==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.0.tgz", + "integrity": "sha512-ROchNosXMJD2cbQGm84KoP7vOGPO6/bOAW0veMMbzhXLqoZptcaYRVLitwvuhwhjjpU1qP4YZRWLhgETdgqUQw==", "engines": { "node": ">=16.20.1" } @@ -5333,6 +5452,14 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6065,6 +6192,14 @@ "node": ">=10" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -6716,6 +6851,11 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -7210,6 +7350,28 @@ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/lru.min": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.1.tgz", + "integrity": "sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, "node_modules/magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", @@ -7321,9 +7483,9 @@ } }, "node_modules/mikro-orm": { - "version": "6.3.13", - "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.3.13.tgz", - "integrity": "sha512-la2qeQjTMcpctz7hWs+sIe+qC3uNRe8e0Tv7aVw0ZTG3YcZe14lRWtaHM1HMc1Xdt/Fj1buxLx+yFCpiPZx5VQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.0.tgz", + "integrity": "sha512-dnkvm+xJifwjPEkwipKPpbVEeW7XL3w06yREQiUxGQwcnVowpt+tYFelgr5dnPTpARFNoP5Lc0qTlpWaXVRsxA==", "engines": { "node": ">= 18.12.0" } @@ -7420,9 +7582,9 @@ } }, "node_modules/mongodb": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.9.0.tgz", - "integrity": "sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.10.0.tgz", + "integrity": "sha512-gP9vduuYWb9ZkDM546M+MP2qKVk5ZG2wPF63OvSRuUbqCR+11ZCAE1mOfllhlAG0wcoJY5yDL/rV3OmYEwXIzg==", "dependencies": { "@mongodb-js/saslprep": "^1.1.5", "bson": "^6.7.0", @@ -7608,6 +7770,55 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/mysql2": { + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.5.tgz", + "integrity": "sha512-0XFu8rUmFN9vC0ME36iBvCUObftiMHItrYFhlCRvFWbLgpNqtC4Br/NmZX1HNCszxT0GGy5QtP+k3Q3eCJPaYA==", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/nanoid": { "version": "2.1.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", @@ -8655,6 +8866,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -10802,26 +11018,83 @@ } }, "@mikro-orm/core": { - "version": "6.3.13", - "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.3.13.tgz", - "integrity": "sha512-gNvk/98Xe283+Yn4CFxNNJmx1iXT8gRfDn4agjFUa4pI9pVw+idkxOljXuLlvoW44ybiwji8qagaoY+tmD0BTQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.0.tgz", + "integrity": "sha512-8DOqA4UXRfo9+mmIepxNioTkWKmn06M0YRLb2jRrVb2NYMsA/ihGaTggbaLQXXLpy/Qk2Ke3+T0mWDyXZKcwnQ==", "requires": { "dataloader": "2.2.2", "dotenv": "16.4.5", "esprima": "4.0.1", "fs-extra": "11.2.0", "globby": "11.1.0", - "mikro-orm": "6.3.13", + "mikro-orm": "6.4.0", "reflect-metadata": "0.2.2" } }, + "@mikro-orm/knex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.0.tgz", + "integrity": "sha512-27ZC0RxZ4rcGKam/bJsqgyrjfonCstNAFcdOrs/yncYjV8sGOHSdSxtfWuWQVzQCMEL64K7q+RDCUmygAoo4SA==", + "requires": { + "fs-extra": "11.2.0", + "knex": "3.1.0", + "sqlstring": "2.3.3" + }, + "dependencies": { + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + } + } + }, "@mikro-orm/mongodb": { - "version": "6.3.13", - "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-6.3.13.tgz", - "integrity": "sha512-tIjqbOznhqnOaJ9ZEL/oy/Up5tj7BZqWNinyPWceX8vVOSDgCv3wCcgFaEDyBMRHrH2sJW2rRsjWC9aXj05Q5Q==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-6.4.0.tgz", + "integrity": "sha512-Ah2ASyHbgPbK4AgN+R98PnDlNTbGWjTcK3rvhUl5O2JUIfPzl4aqNZOIlEVTe2KwKlWKmNNqfW34sv/buFNwzQ==", "requires": { "bson": "^6.7.0", - "mongodb": "6.9.0" + "mongodb": "6.10.0" + } + }, + "@mikro-orm/mysql": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@mikro-orm/mysql/-/mysql-6.4.0.tgz", + "integrity": "sha512-nHM3v1edK2FJJ2nGs8HUdpctfhaqt13oVFvjVwuAuGSIfZiNlo3gToMRkgerF62QkTr+zdxBsfwSS5CvJNuHVw==", + "requires": { + "@mikro-orm/knex": "6.4.0", + "mysql2": "3.11.4" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "mysql2": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.4.tgz", + "integrity": "sha512-Z2o3tY4Z8EvSRDwknaC40MdZ3+m0sKbpnXrShQLdxPrAvcNli7jLrD2Zd2IzsRMw4eK9Yle500FDmlkIqp+krg==", + "requires": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + } + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + } } }, "@mischnic/json-sourcemap": { @@ -12001,6 +12274,19 @@ "@reldens/utils": "^0.38.0" }, "dependencies": { + "@reldens/storage": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", + "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", + "requires": { + "@mikro-orm/core": "^6.3.13", + "@mikro-orm/mongodb": "^6.3.13", + "@reldens/utils": "^0.38.0", + "knex": "^3.1.0", + "mysql": "^2.18.1", + "objection": "^3.1.5" + } + }, "@reldens/utils": { "version": "0.38.0", "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", @@ -12039,6 +12325,19 @@ "@reldens/utils": "^0.38.0" }, "dependencies": { + "@reldens/storage": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", + "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", + "requires": { + "@mikro-orm/core": "^6.3.13", + "@mikro-orm/mongodb": "^6.3.13", + "@reldens/utils": "^0.38.0", + "knex": "^3.1.0", + "mysql": "^2.18.1", + "objection": "^3.1.5" + } + }, "@reldens/utils": { "version": "0.38.0", "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", @@ -12050,26 +12349,18 @@ } }, "@reldens/storage": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", - "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.31.0.tgz", + "integrity": "sha512-uG+8FFMBigUbe3CRD+jCL+N6OOBA2ChtxQWjgDEiEtBJKAX8FrFY/mTaSrHD6ruqDeqGMMqWSaHxp+I90Ne1Vg==", "requires": { - "@mikro-orm/core": "^6.3.13", - "@mikro-orm/mongodb": "^6.3.13", - "@reldens/utils": "^0.38.0", + "@mikro-orm/core": "^6.4.0", + "@mikro-orm/mongodb": "^6.4.0", + "@mikro-orm/mysql": "^6.4.0", + "@reldens/utils": "^0.39.0", "knex": "^3.1.0", "mysql": "^2.18.1", + "mysql2": "^3.11.5", "objection": "^3.1.5" - }, - "dependencies": { - "@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", - "requires": { - "await-event-emitter": "2.0.2" - } - } } }, "@reldens/tile-map-generator": { @@ -12486,6 +12777,11 @@ "resolved": "https://registry.npmjs.org/await-to-js/-/await-to-js-3.0.0.tgz", "integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==" }, + "aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==" + }, "axios": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", @@ -12636,9 +12932,9 @@ } }, "bson": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.9.0.tgz", - "integrity": "sha512-X9hJeyeM0//Fus+0pc5dSUMhhrrmWwQUtdavaQeF3Ta6m69matZkGWV/MrBcnwUeLC8W9kwwc2hfkZgUuCX3Ig==" + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.0.tgz", + "integrity": "sha512-ROchNosXMJD2cbQGm84KoP7vOGPO6/bOAW0veMMbzhXLqoZptcaYRVLitwvuhwhjjpU1qP4YZRWLhgETdgqUQw==" }, "buffer-from": { "version": "1.1.2", @@ -13099,6 +13395,11 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -13658,6 +13959,14 @@ "wide-align": "^1.1.2" } }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -14136,6 +14445,11 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -14431,6 +14745,16 @@ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + }, + "lru.min": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.1.tgz", + "integrity": "sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==" + }, "magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", @@ -14522,9 +14846,9 @@ } }, "mikro-orm": { - "version": "6.3.13", - "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.3.13.tgz", - "integrity": "sha512-la2qeQjTMcpctz7hWs+sIe+qC3uNRe8e0Tv7aVw0ZTG3YcZe14lRWtaHM1HMc1Xdt/Fj1buxLx+yFCpiPZx5VQ==" + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.0.tgz", + "integrity": "sha512-dnkvm+xJifwjPEkwipKPpbVEeW7XL3w06yREQiUxGQwcnVowpt+tYFelgr5dnPTpARFNoP5Lc0qTlpWaXVRsxA==" }, "mime": { "version": "2.6.0", @@ -14587,9 +14911,9 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mongodb": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.9.0.tgz", - "integrity": "sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.10.0.tgz", + "integrity": "sha512-gP9vduuYWb9ZkDM546M+MP2qKVk5ZG2wPF63OvSRuUbqCR+11ZCAE1mOfllhlAG0wcoJY5yDL/rV3OmYEwXIzg==", "requires": { "@mongodb-js/saslprep": "^1.1.5", "bson": "^6.7.0", @@ -14720,6 +15044,45 @@ } } }, + "mysql2": { + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.5.tgz", + "integrity": "sha512-0XFu8rUmFN9vC0ME36iBvCUObftiMHItrYFhlCRvFWbLgpNqtC4Br/NmZX1HNCszxT0GGy5QtP+k3Q3eCJPaYA==", + "requires": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + } + } + }, + "named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "requires": { + "lru-cache": "^7.14.1" + } + }, "nanoid": { "version": "2.1.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", @@ -15488,6 +15851,11 @@ } } }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, "serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", diff --git a/package.json b/package.json index 0840cdea..ee3dd3b0 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "@reldens/items-system": "^0.33.0", "@reldens/modifiers": "^0.25.0", "@reldens/skills": "^0.33.0", - "@reldens/storage": "^0.30.0", + "@reldens/storage": "^0.31.0", "@reldens/tile-map-generator": "^0.16.0", "@reldens/utils": "^0.39.0", "@sendgrid/mail": "8.1.4", From 45b06c40ebe5cde146970f3b739e179306941285 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Sun, 1 Dec 2024 17:03:35 +0100 Subject: [PATCH 17/39] - Reldens - v4.0.0 - Installer notes for MySQL different clients. --- install/index.html | 4 ++-- lib/game/server/data-server-config.js | 2 +- lib/game/server/install-templates/.env.dist | 2 +- lib/game/server/install-templates/knexfile.js.dist | 2 +- lib/game/server/installer.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install/index.html b/install/index.html index 3238c969..fdd1bfd5 100644 --- a/install/index.html +++ b/install/index.html @@ -107,7 +107,7 @@

- Storage -

Default samples:
    -
  • Client: mysql - Port: 3306
  • +
  • Client: mysql (native password) / mysql2 (schema password) - Port: 3306
  • Client: mongodb - Port: 27017
@@ -154,7 +154,7 @@

- Storage -

DANGER:
    -
  • The automatic installation for the basic configuration and the sample data are only available for the mysql client.
  • +
  • The automatic installation for the basic configuration and the sample data are only available for the MySQL client.
  • Uncheck this is only if you know what you are doing.
    Without this you will get all the tables empty, even the ones with default required values.
diff --git a/lib/game/server/data-server-config.js b/lib/game/server/data-server-config.js index 110288e1..df36ab6f 100644 --- a/lib/game/server/data-server-config.js +++ b/lib/game/server/data-server-config.js @@ -13,7 +13,7 @@ class DataServerConfig { // @NOTE: see the .env.dist file in the module root to modify the variables. let {host, port, database, user, password, client, connectionLimit, poolMin, poolMax, storageDriver} = props; - client = client || process.env.RELDENS_DB_CLIENT || 'mysql'; + client = client || process.env.RELDENS_DB_CLIENT || 'mysql2'; storageDriver = storageDriver || process.env.RELDENS_STORAGE_DRIVER || 'objection-js'; let config = { host: host || process.env.RELDENS_DB_HOST || 'localhost', diff --git a/lib/game/server/install-templates/.env.dist b/lib/game/server/install-templates/.env.dist index f8cf5c7b..4031ed81 100644 --- a/lib/game/server/install-templates/.env.dist +++ b/lib/game/server/install-templates/.env.dist @@ -24,7 +24,7 @@ RELDENS_MONITOR_USER="{{&app-monitor-user}}" RELDENS_MONITOR_PASS="{{&app-monitor-password}}" # Storage Driver: (objection-js, mikro-orm) RELDENS_STORAGE_DRIVER={{&db-storage-driver}} -# Database configuration: (mysql / 3306, mongodb / 27017) +# Database configuration: (mysql or mysql2 / 3306, mongodb / 27017) RELDENS_DB_CLIENT={{&db-client}} RELDENS_DB_HOST={{&db-host}} RELDENS_DB_PORT={{&db-port}} diff --git a/lib/game/server/install-templates/knexfile.js.dist b/lib/game/server/install-templates/knexfile.js.dist index 41c1eae9..ce20a0ff 100644 --- a/lib/game/server/install-templates/knexfile.js.dist +++ b/lib/game/server/install-templates/knexfile.js.dist @@ -1,6 +1,6 @@ module.exports = { development: { - client: 'mysql', + client: 'mysql2', connection: { host: 'localhost', database: 'reldens_test', diff --git a/lib/game/server/installer.js b/lib/game/server/installer.js index 4eb1c883..25a65d05 100644 --- a/lib/game/server/installer.js +++ b/lib/game/server/installer.js @@ -202,7 +202,7 @@ class Installer 'app-admin-path': '' !== adminPath ? adminPath : '/reldens-admin', 'app-secure-admin-checked': 1 === secureAdmin ? ' checked="checked"' : '', 'app-admin-hot-plug-checked': 1 === hotPlug ? ' checked="checked"' : '', - 'db-client': '' !== dbClient ? dbClient : 'mysql', + 'db-client': '' !== dbClient ? dbClient : 'mysql2', 'db-host': '' !== dbHost ? dbHost : 'localhost', 'db-port': '' !== dbPort ? dbPort : '3306', 'db-name': '' !== dbName ? dbName : 'reldens', From be516e6f8788de02ea5f40fec2a04309e86503e9 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 00:05:40 +0100 Subject: [PATCH 18/39] - Reldens - v4.0.0 - Allow guest users to login with the same name more than once. --- lib/audio/server/manager.js | 2 +- lib/game/client/game-manager.js | 10 ++++----- lib/game/client/minimap-ui.js | 2 +- lib/game/server/login-manager.js | 7 +++--- lib/game/server/manager.js | 14 +++++++----- .../server/object/type/enemy-object.js | 2 +- lib/users/server/manager.js | 22 ++++++++++++++++++- .../development/beta.38.3-sql-update.sql | 14 ++++++++++++ .../production/reldens-install-v4.0.0.sql | 4 ++-- 9 files changed, 58 insertions(+), 19 deletions(-) create mode 100644 migrations/development/beta.38.3-sql-update.sql diff --git a/lib/audio/server/manager.js b/lib/audio/server/manager.js index 565e9bd9..5739a4ac 100644 --- a/lib/audio/server/manager.js +++ b/lib/audio/server/manager.js @@ -175,7 +175,7 @@ class AudioManager hotUnplugAudio(props) { let {newAudioModel, id} = props; - if (newAudioModel.room_id){ + if(newAudioModel.room_id){ return this.hotUnplugRoomAudio(newAudioModel, id); } return this.hotUnplugGlobalAudio(newAudioModel, id); diff --git a/lib/game/client/game-manager.js b/lib/game/client/game-manager.js index 0162a85c..5ac57422 100644 --- a/lib/game/client/game-manager.js +++ b/lib/game/client/game-manager.js @@ -123,16 +123,16 @@ class GameManager mapFormDataToUserData(formData, isNewUser) { - if (sc.hasOwn(formData, 'forgot')) { + if(sc.hasOwn(formData, 'forgot')){ this.userData.forgot = 1; this.userData.email = formData['email']; } this.initializeClient(); - if (formData.isGuest) { + if(formData.isGuest){ this.userData.isGuest = true; this.userData.isNewUser = true; } - if (isNewUser) { + if(isNewUser){ this.userData.isNewUser = true; this.userData.email = formData['email']; } @@ -144,8 +144,8 @@ class GameManager { this.gameRoom.onMessage('*', async (message) => { if(message.error){ - Logger.error('Game Room message error.', message.error); - this.displayFormError(GameConst.SELECTORS.PLAYER_CREATE_FORM, message.error); + Logger.error('Game Room message error.', message.message); + this.displayFormError(GameConst.SELECTORS.PLAYER_CREATE_FORM, message.message); return false; } if(GameConst.START_GAME === message.act){ diff --git a/lib/game/client/minimap-ui.js b/lib/game/client/minimap-ui.js index 266eb8e3..28ec2159 100644 --- a/lib/game/client/minimap-ui.js +++ b/lib/game/client/minimap-ui.js @@ -64,7 +64,7 @@ class MinimapUi return; } minimap.minimapCamera.setVisible(false); - if (minimap.circle) { + if(minimap.circle){ minimap.circle.setVisible(false); } scenePreloader.gameManager.events.emit( diff --git a/lib/game/server/login-manager.js b/lib/game/server/login-manager.js index 1bd39b0a..7d5df525 100644 --- a/lib/game/server/login-manager.js +++ b/lib/game/server/login-manager.js @@ -393,6 +393,7 @@ class LoginManager async createNewPlayer(loginData) { + // @TODO - BETA - Replace all result.message hardcoded values by snippets. let minimumPlayerNameLength = this.config.getWithoutLogs('client/players/name/minimumLength', 3); if(minimumPlayerNameLength > loginData['new-player-name'].toString().length){ let result = {error: true, message: 'Invalid player name, please choose another name.'}; @@ -414,10 +415,10 @@ class LoginManager state: initialState }; await this.events.emit('reldens.createNewPlayerBefore', loginData, playerData, this); - let isTaken = await this.usersManager.isNameAvailable(playerData.name); - if(isTaken){ + let isNameAvailable = await this.usersManager.isNameAvailable(playerData.name); + if(isNameAvailable){ let result = {error: true, message: 'The player name is not available, please choose another name.'}; - await this.events.emit('reldens.playerNewNameUnavailable', this, loginData, isTaken, result); + await this.events.emit('reldens.playerNewNameUnavailable', this, loginData, isNameAvailable, result); return result; } try { diff --git a/lib/game/server/manager.js b/lib/game/server/manager.js index a1015e12..98bb73c7 100644 --- a/lib/game/server/manager.js +++ b/lib/game/server/manager.js @@ -177,10 +177,10 @@ class ServerManager { MapsLoader.reloadMaps(this.themeManager.projectThemePath, this.configManager); await this.createGameServer(); - if (!this.validateServer()) { + if(!this.validateServer()){ return false; } - if (!await this.initializeManagers()) { + if(!await this.initializeManagers()){ return false; } await this.events.emit('reldens.serverBeforeListen', {serverManager: this}); @@ -194,11 +194,11 @@ class ServerManager validateServer() { - if (!this.appServer) { + if(!this.appServer){ Logger.critical('App Server is not defined.'); return false; } - if (!this.gameServer) { + if(!this.gameServer){ Logger.critical('Game Server is not defined.'); return false; } @@ -333,7 +333,11 @@ class ServerManager initializeUsersManager() { - this.usersManager = new UsersManager({events: this.events, dataServer: this.dataServer}); + this.usersManager = new UsersManager({ + events: this.events, + dataServer: this.dataServer, + config: this.configManager + }); } async initializeFeaturesManager() diff --git a/lib/objects/server/object/type/enemy-object.js b/lib/objects/server/object/type/enemy-object.js index 19f11b20..246da627 100644 --- a/lib/objects/server/object/type/enemy-object.js +++ b/lib/objects/server/object/type/enemy-object.js @@ -409,7 +409,7 @@ class EnemyObject extends NpcObject return false; } let affectedProperty = room.config.get('client/actions/skills/affectedProperty', this.defaultAffectedProperty); - if (0 === this.stats[affectedProperty]){ + if(0 === this.stats[affectedProperty]){ //Logger.debug('Object is death, do not run battle.', this.uid); // do not start the battle if the object is death: return false; diff --git a/lib/users/server/manager.js b/lib/users/server/manager.js index 6ad89ab7..4a5a1679 100644 --- a/lib/users/server/manager.js +++ b/lib/users/server/manager.js @@ -19,9 +19,20 @@ class UsersManager if(!this.dataServer){ Logger.error('DataServer undefined in UsersManager.'); } + this.config = sc.get(props, 'config', false); + this.setGuestRoleId(); this.setRepositories(); } + setGuestRoleId() + { + this.guestRoleId = Number(this.config?.server?.players?.guestUser?.roleId || 0); + if(0 === this.guestRoleId){ + Logger.warning('Guest role ID is undefined.'); + } + this.bannedNames = String(this.config?.server?.players?.bannedNames || ''); + } + setRepositories() { if(!this.dataServer){ @@ -78,7 +89,16 @@ class UsersManager async isNameAvailable(playerName) { - return await this.playersRepository.loadOneBy('name', playerName)?.name; + if(-1 !== this.bannedNames.indexOf(playerName)){ + return false; + } + let playersByName = await this.playersRepository.loadByWithRelations('name', playerName, ['parent_user']); + for(let player of playersByName){ + if(this.guestRoleId !== player.parent_user.role_id){ + return false; + } + } + return true; } async createPlayer(playerData) diff --git a/migrations/development/beta.38.3-sql-update.sql b/migrations/development/beta.38.3-sql-update.sql new file mode 100644 index 00000000..c3f87af3 --- /dev/null +++ b/migrations/development/beta.38.3-sql-update.sql @@ -0,0 +1,14 @@ +-- + +SET FOREIGN_KEY_CHECKS = 0; + +-- + +-- Unique Player name by user: +ALTER TABLE `players` DROP INDEX `name`, ADD UNIQUE INDEX `user_id_name` (`user_id`, `name`); + +-- + +SET FOREIGN_KEY_CHECKS = 1; + +-- diff --git a/migrations/production/reldens-install-v4.0.0.sql b/migrations/production/reldens-install-v4.0.0.sql index 54e1753e..3554f675 100644 --- a/migrations/production/reldens-install-v4.0.0.sql +++ b/migrations/production/reldens-install-v4.0.0.sql @@ -81,9 +81,9 @@ CREATE TABLE IF NOT EXISTS `players` ( `name` VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`), + UNIQUE INDEX `user_id_name` (`user_id`, `name`), KEY `FK_players_users` (`user_id`), - CONSTRAINT `FK_players_users` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON UPDATE CASCADE + CONSTRAINT `FK_players_users` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE='utf8mb4_unicode_ci'; CREATE TABLE IF NOT EXISTS `rooms` ( From f4689cbacfa29c16b40d45aceee68ba1e7c384f5 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 00:51:35 +0100 Subject: [PATCH 19/39] - Reldens - v4.0.0 - Fix names validation for guest and made optional. --- lib/game/server/login-manager.js | 2 +- lib/users/server/manager.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/game/server/login-manager.js b/lib/game/server/login-manager.js index 7d5df525..bee3cbe6 100644 --- a/lib/game/server/login-manager.js +++ b/lib/game/server/login-manager.js @@ -416,7 +416,7 @@ class LoginManager }; await this.events.emit('reldens.createNewPlayerBefore', loginData, playerData, this); let isNameAvailable = await this.usersManager.isNameAvailable(playerData.name); - if(isNameAvailable){ + if(!isNameAvailable){ let result = {error: true, message: 'The player name is not available, please choose another name.'}; await this.events.emit('reldens.playerNewNameUnavailable', this, loginData, isNameAvailable, result); return result; diff --git a/lib/users/server/manager.js b/lib/users/server/manager.js index 4a5a1679..d02ad253 100644 --- a/lib/users/server/manager.js +++ b/lib/users/server/manager.js @@ -30,6 +30,7 @@ class UsersManager if(0 === this.guestRoleId){ Logger.warning('Guest role ID is undefined.'); } + this.allowDuplicateGuestNames = Boolean(this.config?.server?.players?.allowDuplicateGuestNames || false); this.bannedNames = String(this.config?.server?.players?.bannedNames || ''); } @@ -90,8 +91,19 @@ class UsersManager async isNameAvailable(playerName) { if(-1 !== this.bannedNames.indexOf(playerName)){ + Logger.debug('Banned name: '+playerName); return false; } + if(this.allowDuplicateGuestNames){ + Logger.debug('Allow duplicate guest names.'); + return await this.isAvailableForGuest(playerName); + } + let foundPlayer = await this.playersRepository.loadOneBy('name', playerName); + return !foundPlayer?.name; + } + + async isAvailableForGuest(playerName) + { let playersByName = await this.playersRepository.loadByWithRelations('name', playerName, ['parent_user']); for(let player of playersByName){ if(this.guestRoleId !== player.parent_user.role_id){ From 3a442009514d5437c291a544a14f682175186782 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:35:05 +0100 Subject: [PATCH 20/39] - Reldens - v4.0.0 - Improve createElement method. --- lib/game/client/game-dom.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/game/client/game-dom.js b/lib/game/client/game-dom.js index 9e44fecf..82f349df 100644 --- a/lib/game/client/game-dom.js +++ b/lib/game/client/game-dom.js @@ -79,12 +79,17 @@ class GameDom this.getElement(querySelector).remove(); } - createElement(type, id = '') + createElement(type, id = '', classNamesList) { let element = document.createElement(type); if('' !== id){ element.id = id; } + if(sc.isArray(classNamesList)){ + for(let className of classNamesList){ + element.classList.add(className); + } + } return element; } From 9a67615131a4af2bb263c9ca345fafe7ba5420ee Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:35:35 +0100 Subject: [PATCH 21/39] - Reldens - v4.0.0 - Minor fix game container reference. --- lib/game/client/game-engine.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/game/client/game-engine.js b/lib/game/client/game-engine.js index a8013795..fed27840 100644 --- a/lib/game/client/game-engine.js +++ b/lib/game/client/game-engine.js @@ -59,8 +59,9 @@ class GameEngine extends Game getCurrentScreenSize(manager) { - let containerWidth = manager.gameDom.getElement('.game-container').offsetWidth; - let containerHeight = manager.gameDom.getElement('.game-container').offsetHeight; + let gameContainer = manager.gameDom.getElement(GameConst.SELECTORS.GAME_CONTAINER); + let containerWidth = gameContainer.offsetWidth; + let containerHeight = gameContainer.offsetHeight; let newWidth = containerWidth; let newHeight = containerHeight; let mapWidth = 0, mapHeight = 0; From 0d7939c3302c569e399049f04c7e09d50cc60e52 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:36:25 +0100 Subject: [PATCH 22/39] - Reldens - v4.0.0 - Fix player selection form show and hide. --- lib/game/client/game-manager.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/game/client/game-manager.js b/lib/game/client/game-manager.js index 5ac57422..06daf9c1 100644 --- a/lib/game/client/game-manager.js +++ b/lib/game/client/game-manager.js @@ -84,7 +84,6 @@ class GameManager body.classList.add(GameConst.CLASSES.GAME_STARTED); body.classList.remove(GameConst.CLASSES.GAME_ERROR); this.gameDom.getElement(GameConst.SELECTORS.FORMS_CONTAINER).remove(); - this.gameDom.getElement(GameConst.SELECTORS.GAME_CONTAINER).classList.remove(GameConst.CLASSES.HIDDEN); this.events.emitSync('reldens.startGameAfter', this); } @@ -249,6 +248,11 @@ class GameManager ); } this.gameDom.getElement(GameConst.SELECTORS.BODY).classList.add(GameConst.CLASSES.GAME_ENGINE_STARTED); + this.gameDom.getElement(GameConst.SELECTORS.GAME_CONTAINER).classList.remove(GameConst.CLASSES.HIDDEN); + let playerSelection = this.gameDom.getElement(GameConst.SELECTORS.PLAYER_SELECTION); + if(playerSelection){ + playerSelection.classList.add(GameConst.CLASSES.HIDDEN); + } // @NOTE: remove the selected scene after the player used it because the login data will be used again every // time the player change the scene. delete this.initialGameData['selectedScene']; @@ -369,8 +373,7 @@ class GameManager getActiveScenePreloader() { - let activeSceneKey = this.getActiveScene().key; - return this.gameEngine.scene.getScene('ScenePreloader'+activeSceneKey); + return this.gameEngine.scene.getScene(GameConst.SCENE_PRELOADER+this.getActiveScene().key); } /** From 60e7662f9744491adabd4dbb6b4e5ee57d21b600 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:37:11 +0100 Subject: [PATCH 23/39] - Reldens - v4.0.0 - Improve types, gameDom reference and methods naming. --- lib/game/client/room-events.js | 39 +++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/lib/game/client/room-events.js b/lib/game/client/room-events.js index 1150731d..05b4cc92 100644 --- a/lib/game/client/room-events.js +++ b/lib/game/client/room-events.js @@ -21,8 +21,11 @@ class RoomEvents this.playersOnAddCallback = false; this.playersOnRemoveCallback = false; this.playersQueue = {}; + /** @type {GameManager} */ this.gameManager = gameManager; this.gameEngine = gameManager.gameEngine; + /** @type {GameDom} */ + this.gameDom = gameManager.gameDom; this.roomName = roomName; this.events = gameManager.events; // @TODO - BETA - Move the following inside a single property called "metadata" and set each on their plugins. @@ -222,7 +225,7 @@ class RoomEvents let defaultReload = {confirmed: true}; this.events.emitSync('reldens.gameOverReload', this, defaultReload); if(!this.gameManager.gameOver && defaultReload.confirmed){ - this.gameManager.gameDom.alertReload(this.gameManager.services.translator.t('game.errors.sessionEnded')); + this.gameDom.alertReload(this.gameManager.services.translator.t('game.errors.sessionEnded')); } } @@ -235,7 +238,8 @@ class RoomEvents { await this.runGameOver(message); await this.runRevived(message); - await this.runChangeScene(message); + await this.runChangingScene(message); + await this.runChangedScene(message); await this.runReconnect(message); await this.runUpdateStats(message); await this.runInitUi(message); @@ -258,7 +262,7 @@ class RoomEvents if(GameConst.CLOSE_UI_ACTION !== message.act || !message.id){ return false; } - let closeButton = this.gameManager.gameDom.getElement('#box-'+message.id+' .box-close'); + let closeButton = this.gameDom.getElement('#box-'+message.id+' .box-close'); if(!closeButton){ Logger.error('Box could not be closed ID "'+message.id+'".'); return false; @@ -313,13 +317,18 @@ class RoomEvents await this.gameManager.reconnectGameClient(message, this.room); } - async runChangeScene(message) + async runChangingScene(message) { - if(message.act === GameConst.CHANGING_SCENE && this.room.sessionId === message.id){ - this.gameManager.isChangingScene = true; - this.closeAllActiveDialogs(); - this.gameManager.getActiveScene().scene.setVisible(false); + if(message.act !== GameConst.CHANGING_SCENE || this.room.sessionId !== message.id){ + return false; } + this.gameManager.isChangingScene = true; + this.closeAllActiveDialogs(); + this.gameManager.getActiveScene().scene.setVisible(false); + } + + async runChangedScene(message) + { if( message.act !== GameConst.CHANGED_SCENE || message.scene !== this.room.name @@ -344,7 +353,7 @@ class RoomEvents if(!this.automaticallyCloseAllDialogsOnSceneChange){ return; } - let closeButtons = this.gameManager.gameDom.getElements('.box-close'); + let closeButtons = this.gameDom.getElements(GameConst.SELECTORS.BUTTONS_CLOSE); if(0 === closeButtons.length){ return; } @@ -358,7 +367,7 @@ class RoomEvents if(message.act !== GameConst.REVIVED){ return false; } - this.gameManager.gameDom.getElement('#game-over').classList.add('hidden'); + this.gameDom.getElement('#game-over').classList.add('hidden'); let currentPlayer = this.gameManager.getCurrentPlayer(); let showSprite = sc.get(currentPlayer.players, message.t, false); if(!showSprite){ @@ -415,7 +424,7 @@ class RoomEvents displayGameOverBox(display) { Logger.debug('Display game over box: '+(display ? 'yes' : 'no')+'.'); - let gameOverElement = this.gameManager.gameDom.getElement('#game-over'); + let gameOverElement = this.gameDom.getElement('#game-over'); if(!gameOverElement){ Logger.debug('GameOver box element not found.'); return false; @@ -437,7 +446,7 @@ class RoomEvents isGameOver: this.gameManager.gameOver, isForcedDisconnection: this.gameManager.forcedDisconnection }); - this.gameManager.gameDom.alertReload(this.gameManager.services.translator.t('game.errors.serverDown')); + this.gameDom.alertReload(this.gameManager.services.translator.t('game.errors.serverDown')); } await this.events.emit('reldens.playerLeftScene', {code, roomEvents: this}); // @NOTE: the client can initiate the disconnection, this is also triggered when the users change the room. @@ -575,9 +584,9 @@ class RoomEvents icon: '/assets/custom/items/'+icon+GameConst.FILES.EXTENSIONS.PNG }; let buttonHtml = this.gameManager.gameEngine.parseTemplate(buttonTemplate, templateVars); - this.gameManager.gameDom.appendToElement('#ui-' + props.id, buttonHtml); + this.gameDom.appendToElement('#ui-' + props.id, buttonHtml); let elementId = '#opt-' + i + '-' + props.id; - this.gameManager.gameDom.getElement(elementId)?.addEventListener('click', (event) => { + this.gameDom.getElement(elementId)?.addEventListener('click', (event) => { let optionSend = { id: props.id, act: GameConst.BUTTON_OPTION, @@ -789,7 +798,7 @@ class RoomEvents } catch (error) { Logger.critical(error.message, data); } - this.gameManager.gameDom.alertReload(this.gameManager.services.translator.t('game.errors.connectionLost')); + this.gameDom.alertReload(this.gameManager.services.translator.t('game.errors.connectionLost')); } } From 0bf793f70089f21ba83095adbe3f7f7abf3986a8 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:37:49 +0100 Subject: [PATCH 24/39] - Reldens - v4.0.0 - Improve method name and game container reference. --- lib/game/client/scene-preloader.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/game/client/scene-preloader.js b/lib/game/client/scene-preloader.js index 7bed8412..65145590 100644 --- a/lib/game/client/scene-preloader.js +++ b/lib/game/client/scene-preloader.js @@ -19,6 +19,7 @@ class ScenePreloader extends Scene constructor(props) { super({key: props.name}); + this.relatedSceneKey = props.name.replace(GameConst.SCENE_PRELOADER, ''); this.progressBar = null; this.progressCompleteRect = null; this.progressRect = null; @@ -66,7 +67,7 @@ class ScenePreloader extends Scene this.load.on('progress', this.onLoadProgress, this); this.load.on('complete', this.onLoadComplete, this); this.configuredFrameRate = this.gameManager.config.get('client/general/animations/frameRate', 10); - this.createProgressBar(); + this.showLoadingProgressBar(); } preloadMapJson() @@ -308,7 +309,7 @@ class ScenePreloader extends Scene if(this.gameManager.config.get('client/ui/screen/responsive')){ let rX = sc.get(uiConfig, 'responsiveX', false); let rY = sc.get(uiConfig, 'responsiveY', false); - let gameContainer = this.gameManager.gameDom.getElement('.game-container'); + let gameContainer = this.gameManager.gameDom.getElement(GameConst.SELECTORS.GAME_CONTAINER); if(!newWidth){ newWidth = gameContainer.offsetWidth; } @@ -509,7 +510,7 @@ class ScenePreloader extends Scene this.gameManager.activeRoomEvents.send({act: GameConst.STOP}); } - createProgressBar() + showLoadingProgressBar() { if(!this.gameManager.config.getWithoutLogs('client/ui/loading/show', true)){ return; From 153ccb328846faf12b25f4228373f967459ccae2 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:38:14 +0100 Subject: [PATCH 25/39] - Reldens - v4.0.0 - Add new game constants. --- lib/game/constants.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/game/constants.js b/lib/game/constants.js index f3504ce9..49ec4889 100644 --- a/lib/game/constants.js +++ b/lib/game/constants.js @@ -85,6 +85,9 @@ module.exports.GameConst = { FORGOT_PASSWORD_FORM: '#forgot-form', PLAYER_CREATE_FORM: '.player-create-form', PLAYER_SELECTION: '#player-selection', + PLAYER_SELECTION_FORM: '#player-selector-form', + PLAYER_SELECT_ELEMENT: '#player-select-element', + PLAYER_SELECTION_ADDITIONAL_INFO: '.player-selection-additional-info', FULL_SCREEN_BUTTON: '.full-screen-btn', RESPONSE_ERROR: '.response-error', LOADING_CONTAINER: '.loading-container', @@ -116,7 +119,8 @@ module.exports.GameConst = { BODY: '.terms-body', CLOSE: '#terms-and-conditions-close' }, - GAME_CONTAINER: '.game-container' + GAME_CONTAINER: '.game-container', + BUTTONS_CLOSE: '.box-close' }, CLASSES: { HIDDEN: 'hidden', From 4f6c93807fb3f2a909f3fa7500c35db795e8f4cb Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:38:35 +0100 Subject: [PATCH 26/39] - Reldens - v4.0.0 - Add scene TODO. --- lib/rooms/server/scene.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/rooms/server/scene.js b/lib/rooms/server/scene.js index 51f804f0..22d08573 100644 --- a/lib/rooms/server/scene.js +++ b/lib/rooms/server/scene.js @@ -528,6 +528,7 @@ class RoomScene extends RoomLogin Logger.error('Player not found by session ID:' + client.sessionId); return; } + // @TODO - BETA - Avoid sending the player next scene to all the players. this.broadcast('*', { act: GameConst.CHANGING_SCENE, id: client.sessionId, From 59f5421bb5748c40f3669ceaa5826d52738ab2ef Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:39:05 +0100 Subject: [PATCH 27/39] - Reldens - v4.0.0 - Improve player selection loading. --- lib/users/client/plugin.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/users/client/plugin.js b/lib/users/client/plugin.js index 8152f264..98f8f557 100644 --- a/lib/users/client/plugin.js +++ b/lib/users/client/plugin.js @@ -72,7 +72,6 @@ class UsersPlugin extends PluginInterface { let isMultiplayerEnabled = gameManager.config.get('client/players/multiplePlayers/enabled', false); let isRoomSelectionDisabled = gameManager.config.get('client/rooms/selection/allowOnLogin', false); - let playerSelection = gameManager.gameDom.getElement('#player-selection'); // @TODO - BETA - If the player selection container doesn't exist we should create one. let playersCount = sc.isTrue(initialGameData, 'players') ? Object.keys(initialGameData.players).length : 0; // if multiplayer is disabled and the user already has a player then just allow the engine to be executed: @@ -83,6 +82,7 @@ class UsersPlugin extends PluginInterface } // for every other case we will stop the normal execution of the engine and show the selection/creation block: gameManager.canInitEngine = false; + let playerSelection = gameManager.gameDom.getElement(GameConst.SELECTORS.PLAYER_SELECTION); playerSelection.classList.remove('hidden'); // if multiplayer is enabled, the user already has a player it can only select the room: if(!isMultiplayerEnabled && 1 === playersCount){ @@ -99,13 +99,13 @@ class UsersPlugin extends PluginInterface prepareSinglePlayerInput(playerSelection, initialGameData, gameManager) { // @TODO - BETA - Extract all this. - let form = gameManager.gameDom.getElement('#player-selector-form'); + let form = gameManager.gameDom.getElement(GameConst.SELECTORS.PLAYER_SELECTION_FORM); let player = initialGameData.player; if(!form || !player){ Logger.error('Form or player not defined in prepareSinglePlayerInput.'); return false; } - gameManager.gameDom.getElement('#player-select-element')?.remove(); + gameManager.gameDom.getElement(GameConst.SELECTORS.PLAYER_SELECT_ELEMENT)?.remove(); let playerLabel = this.gameManager.services.translator.t( UsersConst.SNIPPETS.OPTION_LABEL, { @@ -116,7 +116,7 @@ class UsersPlugin extends PluginInterface ); let selectedPlayerHiddenInput = gameManager.gameDom.createElement('input'); selectedPlayerHiddenInput.type = 'hidden'; - selectedPlayerHiddenInput.id = '#player-select-element'; + selectedPlayerHiddenInput.id = GameConst.SELECTORS.PLAYER_SELECT_ELEMENT; selectedPlayerHiddenInput.value = player.id; let playerLabelElement = gameManager.gameDom.createElement('div'); playerLabelElement.innerText = playerLabel; @@ -152,7 +152,9 @@ class UsersPlugin extends PluginInterface showAvatarContainer(gameManager, initialGameData, selectElement) { // @TODO - BETA - Extract all this. - let additionalInfoContainer = gameManager.gameDom.getElement('.player-selection-additional-info'); + let additionalInfoContainer = gameManager.gameDom.getElement( + GameConst.SELECTORS.PLAYER_SELECTION_ADDITIONAL_INFO + ); if(!additionalInfoContainer){ return; } @@ -176,8 +178,8 @@ class UsersPlugin extends PluginInterface preparePlayerSelector(playerSelection, initialGameData, gameManager) { - let form = gameManager.gameDom.getElement('#player-selector-form'); - let select = gameManager.gameDom.getElement('#player-select-element'); + let form = gameManager.gameDom.getElement(GameConst.SELECTORS.PLAYER_SELECTION_FORM); + let select = gameManager.gameDom.getElement(GameConst.SELECTORS.PLAYER_SELECT_ELEMENT); if(!form || !select){ return false; } @@ -186,7 +188,10 @@ class UsersPlugin extends PluginInterface let selectedOption = select.options[select.selectedIndex].value; let selectedPlayer = this.getPlayerById(initialGameData.players, Number(selectedOption)); if(selectedPlayer){ - playerSelection.classList.add('hidden'); + let loadingContainer = form.querySelector(GameConst.SELECTORS.LOADING_CONTAINER); + if(loadingContainer){ + loadingContainer?.classList?.remove(GameConst.CLASSES.HIDDEN); + } gameManager.initialGameData.player = selectedPlayer; gameManager.events.emitSync('reldens.onPreparePlayerSelectorFormSubmit', { usersPlugin: this, From d805e6cdec4d329c704a8d649a19a58e6d18b2f1 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Mon, 2 Dec 2024 20:39:33 +0100 Subject: [PATCH 28/39] - Reldens - v4.0.0 - Improve player selection loading in theme. --- theme/default/css/base.scss | 27 ++++++++++----------- theme/default/css/player-selection.scss | 14 +++++++---- theme/default/index.html | 31 ++++++++++++++----------- theme/default/index.js | 5 ++-- 4 files changed, 44 insertions(+), 33 deletions(-) diff --git a/theme/default/css/base.scss b/theme/default/css/base.scss index 9897acf8..6365fc74 100644 --- a/theme/default/css/base.scss +++ b/theme/default/css/base.scss @@ -113,23 +113,11 @@ body.game-engine-started { } .game-started { - .loading-container { - display: none; - } - .header .full-screen-btn { display: block; } } -.game-error { - .wrapper { - .loading-container { - display: none; - } - } -} - .header { #your-logo { margin-left: 2%; @@ -306,6 +294,12 @@ input[type="submit"] { } } +#guest-form { + .loading-container { + width: 100%; + } +} + .forgot-password-content { flex-direction: column; @@ -579,7 +573,14 @@ span.stat-value { .loading-container { float: left; text-align: center; - width: 100%; + + img { + max-width: 40px; + } + + .hidden { + display: none; + } } #player-stats-open { diff --git a/theme/default/css/player-selection.scss b/theme/default/css/player-selection.scss index 068e6845..00b98ce7 100644 --- a/theme/default/css/player-selection.scss +++ b/theme/default/css/player-selection.scss @@ -13,6 +13,10 @@ #player-selection { display: flex; + + &.hidden { + display: none; + } } } @@ -69,11 +73,13 @@ margin: 10px auto; } - .center-submit { - float: none; - margin: 0 auto; - } + .submit-container { + justify-content: end; + .loading-container { + width: auto; + } + } } } diff --git a/theme/default/index.html b/theme/default/index.html index 96d8b6c3..5f30f7c0 100644 --- a/theme/default/index.html +++ b/theme/default/index.html @@ -80,11 +80,11 @@

Create Account

+
-
@@ -96,11 +96,11 @@

Forgot password

+
-
@@ -118,11 +118,11 @@

Login

-
@@ -200,7 +200,10 @@

- + +
Create Player

- -
-
diff --git a/theme/default/index.js b/theme/default/index.js index 5309f173..9a3ca97e 100644 --- a/theme/default/index.js +++ b/theme/default/index.js @@ -5,8 +5,9 @@ */ // set logger level and trace, this needs to be specified before the game manager is required: -window.RELDENS_LOG_LEVEL = 7; -window.RELDENS_ENABLE_TRACE_FOR = 'emergency,alert,critical'; +const urlParams = new URLSearchParams(window.location.search); +window.RELDENS_LOG_LEVEL = (urlParams.get('logLevel') || 9); +window.RELDENS_ENABLE_TRACE_FOR = Number(urlParams.get('traceFor') || 'emergency,alert,critical'); // debug events (warning! this will output in the console ALL the event listeners and every event fired): // reldens.events.debug = 'all'; From 77b15d4392f911021514eac47b1b0b68e59b92cb Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 14:27:27 +0100 Subject: [PATCH 29/39] - Reldens - v4.0.0 - Set lower log level on client by default. --- theme/default/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/default/index.js b/theme/default/index.js index 9a3ca97e..12af26ff 100644 --- a/theme/default/index.js +++ b/theme/default/index.js @@ -6,7 +6,7 @@ // set logger level and trace, this needs to be specified before the game manager is required: const urlParams = new URLSearchParams(window.location.search); -window.RELDENS_LOG_LEVEL = (urlParams.get('logLevel') || 9); +window.RELDENS_LOG_LEVEL = (urlParams.get('logLevel') || 7); window.RELDENS_ENABLE_TRACE_FOR = Number(urlParams.get('traceFor') || 'emergency,alert,critical'); // debug events (warning! this will output in the console ALL the event listeners and every event fired): // reldens.events.debug = 'all'; From 150bc638a94d78e72e1134d22de65c0957b7f990 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 14:30:48 +0100 Subject: [PATCH 30/39] - Reldens - v4.0.0 - Fix team invite remove element. --- lib/game/client/game-dom.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/game/client/game-dom.js b/lib/game/client/game-dom.js index 82f349df..6bf9d624 100644 --- a/lib/game/client/game-dom.js +++ b/lib/game/client/game-dom.js @@ -76,7 +76,7 @@ class GameDom removeElement(querySelector) { - this.getElement(querySelector).remove(); + this.getElement(querySelector)?.remove(); } createElement(type, id = '', classNamesList) From 5d4710d276adb5701b488b31de91b7c7cd33ae95 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 16:31:38 +0100 Subject: [PATCH 31/39] - Reldens - v4.0.0 - Fix loding display on errors. --- lib/game/client/game-manager.js | 4 ++++ lib/game/client/handlers/errors-block-handler.js | 10 +++++++--- lib/users/client/plugin.js | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/game/client/game-manager.js b/lib/game/client/game-manager.js index 06daf9c1..941e798e 100644 --- a/lib/game/client/game-manager.js +++ b/lib/game/client/game-manager.js @@ -183,6 +183,10 @@ class GameManager return false; } errorElement.innerHTML = message; + let loadingContainer = this.gameDom.getElement(formId+' '+GameConst.SELECTORS.LOADING_CONTAINER); + if(loadingContainer){ + loadingContainer?.classList.add(GameConst.CLASSES.HIDDEN); + } return true; } diff --git a/lib/game/client/handlers/errors-block-handler.js b/lib/game/client/handlers/errors-block-handler.js index 0ad4010e..ce895ea5 100644 --- a/lib/game/client/handlers/errors-block-handler.js +++ b/lib/game/client/handlers/errors-block-handler.js @@ -9,11 +9,15 @@ const { GameConst } = require('../../constants'); class ErrorsBlockHandler { - static reset(submittedForm) + static reset(form) { - let errorBlock = submittedForm.querySelector(GameConst.SELECTORS.RESPONSE_ERROR); - submittedForm.querySelector(GameConst.SELECTORS.INPUT).addEventListener('focus', () => { + let errorBlock = form.querySelector(GameConst.SELECTORS.RESPONSE_ERROR); + form.querySelector(GameConst.SELECTORS.INPUT).addEventListener('focus', () => { errorBlock.innerHTML = ''; + let loadingContainer = form.querySelector(GameConst.SELECTORS.LOADING_CONTAINER); + if(loadingContainer){ + loadingContainer?.classList.add(GameConst.CLASSES.HIDDEN); + } }); } diff --git a/lib/users/client/plugin.js b/lib/users/client/plugin.js index 98f8f557..46363f92 100644 --- a/lib/users/client/plugin.js +++ b/lib/users/client/plugin.js @@ -190,7 +190,7 @@ class UsersPlugin extends PluginInterface if(selectedPlayer){ let loadingContainer = form.querySelector(GameConst.SELECTORS.LOADING_CONTAINER); if(loadingContainer){ - loadingContainer?.classList?.remove(GameConst.CLASSES.HIDDEN); + loadingContainer?.classList.remove(GameConst.CLASSES.HIDDEN); } gameManager.initialGameData.player = selectedPlayer; gameManager.events.emitSync('reldens.onPreparePlayerSelectorFormSubmit', { From 90372a68568aec70edd894fcbd0dd666adea6f84 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 16:49:04 +0100 Subject: [PATCH 32/39] - Reldens - v4.0.0 - Fix duplicated drops accross scenes. --- lib/rewards/server/rewards-drops-processor.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/rewards/server/rewards-drops-processor.js b/lib/rewards/server/rewards-drops-processor.js index 39a513d0..9abd4a59 100644 --- a/lib/rewards/server/rewards-drops-processor.js +++ b/lib/rewards/server/rewards-drops-processor.js @@ -14,6 +14,12 @@ class RewardsDropsProcessor static async processRewardsDrops(roomScene, rewardEventData) { + let roomIdFromEvent = roomScene?.roomData?.roomId; + let roomIdFromObject = rewardEventData?.targetObject?.room_id; + if(!roomIdFromEvent || !roomIdFromObject || roomIdFromEvent !== roomIdFromObject){ + // Logger.debug('Expected, the event listener is not specific enough.', roomIdFromEvent, roomIdFromObject); + return false; + } let params = RewardDropValidator.fetchValidParams({roomScene, rewardEventData}); if(!params){ return false; From 4c7d4264efce4ca8e2d44bc998cf3971d1592f3b Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 17:16:55 +0100 Subject: [PATCH 33/39] - Reldens - v4.0.0 - Fix objects animations data set validation. --- lib/objects/client/plugin.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/objects/client/plugin.js b/lib/objects/client/plugin.js index e6849dcf..05e8af2a 100644 --- a/lib/objects/client/plugin.js +++ b/lib/objects/client/plugin.js @@ -168,7 +168,7 @@ class ObjectsPlugin extends PluginInterface if(('x' === propertyKey || 'y' === propertyKey) && currentBody && currentBody[propertyKey]){ logValues.currentValue = currentBody[propertyKey]; } - Logger.debug(logValues); + //Logger.debug(logValues); } setVisibility(currentBody, isActive) @@ -182,7 +182,9 @@ class ObjectsPlugin extends PluginInterface updateBodyProperties(bodyProp, body, value, currentScene, key) { // @TODO - BETA - Remove hardcoded properties check. - if(currentScene.objectsAnimationsData && ('x' === bodyProp || 'y' === bodyProp)){ + //Logger.debug({update: body, key, animationData: currentScene.objectsAnimationsData[key], bodyProp, value}); + if(currentScene.objectsAnimationsData[key] && ('x' === bodyProp || 'y' === bodyProp)){ + // @TODO - BETA - Check why bullets keep receiving updates even after the objects animation was removed. currentScene.objectsAnimationsData[key][bodyProp] = value; } body[bodyProp] = value; From ca5edbd8c799d48d71087fe494e4a05811821b9a Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 17:17:28 +0100 Subject: [PATCH 34/39] - Reldens - v4.0.0 - Set allow duplicated guest player names by default. --- lib/users/server/manager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/users/server/manager.js b/lib/users/server/manager.js index d02ad253..09d1517c 100644 --- a/lib/users/server/manager.js +++ b/lib/users/server/manager.js @@ -30,7 +30,7 @@ class UsersManager if(0 === this.guestRoleId){ Logger.warning('Guest role ID is undefined.'); } - this.allowDuplicateGuestNames = Boolean(this.config?.server?.players?.allowDuplicateGuestNames || false); + this.allowDuplicateGuestNames = Boolean(this.config?.server?.players?.allowDuplicateGuestNames || true); this.bannedNames = String(this.config?.server?.players?.bannedNames || ''); } From d95016ef1ad7e3b5c35d1b47ff826637459d8f07 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 18:23:56 +0100 Subject: [PATCH 35/39] - Reldens - v4.0.0 - Fix audio initialization on guest players. --- lib/audio/client/plugin.js | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/lib/audio/client/plugin.js b/lib/audio/client/plugin.js index 4dcb0617..a977d24d 100644 --- a/lib/audio/client/plugin.js +++ b/lib/audio/client/plugin.js @@ -44,22 +44,12 @@ class AudioPlugin extends PluginInterface listenEvents() { + // @TODO - BETA - Extract all listeners handlers in external services. if(!this.events){ return false; } - this.events.on('reldens.beforeCreateEngine', (initialGameData, gameManager) => { - if(!gameManager.audioManager){ - gameManager.audioManager = new AudioManager({ - events: this.events, - currentPlayerData: initialGameData.player - }); - this.initialAudiosData = sc.get(initialGameData, 'audio', {}); - } - }); this.events.on('reldens.joinedRoom', (room, gameManager) => { - gameManager.audioManager.updateDefaultConfig( - gameManager.config.getWithoutLogs('client/general/audio/defaultAudioConfig') - ); + this.initializeAudioManager(gameManager); this.messagesListener.listenMessages(room, gameManager); }); this.events.on('reldens.preloadUiScene', async (preloadScene) => { @@ -73,6 +63,7 @@ class AudioPlugin extends PluginInterface this.events.on('reldens.afterSceneDynamicCreate', async (sceneDynamic) => { let audioManager = sceneDynamic.gameManager.audioManager; if(!audioManager){ + Logger.warning('Audio manager undefined in AudioPlugin.'); return false; } let globalAudios = sc.get(this.initialAudiosData, 'globalAudios', {}); @@ -91,6 +82,23 @@ class AudioPlugin extends PluginInterface }); } + initializeAudioManager(gameManager) + { + if(gameManager.audioManager){ + return; + } + if(!gameManager.initialGameData.player){ + Logger.warning('Missing initialGameData.player', gameManager.initialGameData); + } + gameManager.audioManager = new AudioManager({ + events: this.events, + currentPlayerData: gameManager.initialGameData.player + }); + gameManager.audioManager.updateDefaultConfig( + gameManager.config.getWithoutLogs('client/general/audio/defaultAudioConfig') + ); + this.initialAudiosData = sc.get(gameManager.initialGameData, 'audio', {}); + } } module.exports.AudioPlugin = AudioPlugin; From 6762610fe81298f36f2af991aa361c038c174aab Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 18:42:05 +0100 Subject: [PATCH 36/39] - Reldens - v4.0.0 - Fix enemies object set active state method validations. --- .../server/object/type/enemy-object.js | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/objects/server/object/type/enemy-object.js b/lib/objects/server/object/type/enemy-object.js index 246da627..267c8954 100644 --- a/lib/objects/server/object/type/enemy-object.js +++ b/lib/objects/server/object/type/enemy-object.js @@ -371,16 +371,25 @@ class EnemyObject extends NpcObject setActiveObjectState(room) { - //Logger.debug('Activated object after respawn: '+this.uid); - let activeStatus = GameConst.STATUS.ACTIVE; - this.objectBody.bodyState.inState = activeStatus; - if(activeStatus !== this.battle.targetObject.objectBody.bodyState.inState){ - Logger.warning('Battle target object state miss match, set it to active.'); - this.battle.targetObject.objectBody.bodyState.inState = activeStatus; - } - if(activeStatus !== room.objectsManager.roomObjects[this.objectIndex].objectBody.bodyState.inState){ - Logger.warning('Objects Manager room object state miss match, set it to active.'); - room.objectsManager.roomObjects[this.objectIndex].objectBody.bodyState.inState = activeStatus; + try { + //Logger.debug('Activated object after respawn: '+this.uid); + let activeStatus = GameConst.STATUS.ACTIVE; + this.objectBody.bodyState.inState = activeStatus; + if(this.battle.targetObject && activeStatus !== this.battle.targetObject.objectBody?.bodyState?.inState){ + Logger.warning('Battle target object state miss match, set it to active.'); + this.battle.targetObject.objectBody.bodyState.inState = activeStatus; + } + if( + room?.objectsManager?.roomObjects + && room.objectsManager.roomObjects[this.objectIndex] + && room.objectsManager.roomObjects[this.objectIndex].objectBody.bodyState + && activeStatus !== room.objectsManager.roomObjects[this.objectIndex].objectBody.bodyState.inState + ){ + Logger.warning('Objects Manager room object state miss match, set it to active.'); + room.objectsManager.roomObjects[this.objectIndex].objectBody.bodyState.inState = activeStatus; + } + } catch (error) { + Logger.debug('Expected if users disconnects while in battle.'); } } From 71671436afbf1bdfa8a9e607a8795b90de504910 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 18:53:47 +0100 Subject: [PATCH 37/39] - Reldens - v4.0.0 - Update packages, browser list and audit fix. --- package-lock.json | 188 ++++++++++------------------------------------ package.json | 6 +- 2 files changed, 44 insertions(+), 150 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d931ffa..e75dc309 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,9 +67,9 @@ "@parcel/transformer-xml": "2.12.0", "@parcel/transformer-yaml": "2.12.0", "@reldens/game-data-generator": "^0.9.0", - "@reldens/items-system": "^0.33.0", - "@reldens/modifiers": "^0.25.0", - "@reldens/skills": "^0.33.0", + "@reldens/items-system": "^0.34.0", + "@reldens/modifiers": "^0.26.0", + "@reldens/skills": "^0.34.0", "@reldens/storage": "^0.31.0", "@reldens/tile-map-generator": "^0.16.0", "@reldens/utils": "^0.39.0", @@ -3921,81 +3921,31 @@ } }, "node_modules/@reldens/items-system": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@reldens/items-system/-/items-system-0.33.0.tgz", - "integrity": "sha512-SSCah6m+SghHjmCqsKjZbryG3SyaKwqQuU7LSF1BQv+JxpAC5Q2xMDw4ZizztI8GxlwOM3BYa5dZ4i4lA1iZsw==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/@reldens/items-system/-/items-system-0.34.0.tgz", + "integrity": "sha512-GOhjpyLMMHLRcAfgHYpdZAS5YJ8PctBJhQmpX7sph46HYhE244yeuj3bswha/+j6tWtPXWyj9eeTrbVT5VXJ0w==", "dependencies": { - "@reldens/modifiers": "^0.25.0", - "@reldens/storage": "^0.30.0", - "@reldens/utils": "^0.38.0" - } - }, - "node_modules/@reldens/items-system/node_modules/@reldens/storage": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", - "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", - "dependencies": { - "@mikro-orm/core": "^6.3.13", - "@mikro-orm/mongodb": "^6.3.13", - "@reldens/utils": "^0.38.0", - "knex": "^3.1.0", - "mysql": "^2.18.1", - "objection": "^3.1.5" - } - }, - "node_modules/@reldens/items-system/node_modules/@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", - "dependencies": { - "await-event-emitter": "2.0.2" + "@reldens/modifiers": "^0.26.0", + "@reldens/storage": "^0.31.0", + "@reldens/utils": "^0.39.0" } }, "node_modules/@reldens/modifiers": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@reldens/modifiers/-/modifiers-0.25.0.tgz", - "integrity": "sha512-5KClhPJE23uIbL+mW8XxAWzC/k/UO8k8xFhmHxuBx0GaLKTPLsooUGZnKVFgtsBk8Ow8EvUm1fBErQjXJFwEog==", - "dependencies": { - "@reldens/utils": "^0.38.0" - } - }, - "node_modules/@reldens/modifiers/node_modules/@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@reldens/modifiers/-/modifiers-0.26.0.tgz", + "integrity": "sha512-BHNvkyEZ6t2f3imt7znDb+XxhfS7teqKZq28Lk9SVLYkaEiaGKhss0OE16XYbpNyhqRF8bK8XV9taS9ZYcK5Fg==", "dependencies": { - "await-event-emitter": "2.0.2" + "@reldens/utils": "^0.39.0" } }, "node_modules/@reldens/skills": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@reldens/skills/-/skills-0.33.0.tgz", - "integrity": "sha512-Y1W2ZWxPL7WvsnAjCVaE5p10gnwVKsr3uxo3gBMSXVSf5vqD2ETW08FfhOV3orCU9g62o6XObscbyrUFKLqZZQ==", - "dependencies": { - "@reldens/modifiers": "^0.25.0", - "@reldens/storage": "^0.30.0", - "@reldens/utils": "^0.38.0" - } - }, - "node_modules/@reldens/skills/node_modules/@reldens/storage": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", - "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", - "dependencies": { - "@mikro-orm/core": "^6.3.13", - "@mikro-orm/mongodb": "^6.3.13", - "@reldens/utils": "^0.38.0", - "knex": "^3.1.0", - "mysql": "^2.18.1", - "objection": "^3.1.5" - } - }, - "node_modules/@reldens/skills/node_modules/@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/@reldens/skills/-/skills-0.34.0.tgz", + "integrity": "sha512-QSHKNs1hvzfsQf2daLPbn9DehjrJub38mZAfgZYqLB9xSPv1Sv86ZNGg1ePHuLaIRpjwq7xMpkNLjwREFy9uzg==", "dependencies": { - "await-event-emitter": "2.0.2" + "@reldens/modifiers": "^0.26.0", + "@reldens/storage": "^0.31.0", + "@reldens/utils": "^0.39.0" } }, "node_modules/@reldens/storage": { @@ -4856,9 +4806,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001683", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", - "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "version": "1.0.30001686", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", + "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", "funding": [ { "type": "opencollective", @@ -12265,87 +12215,31 @@ } }, "@reldens/items-system": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@reldens/items-system/-/items-system-0.33.0.tgz", - "integrity": "sha512-SSCah6m+SghHjmCqsKjZbryG3SyaKwqQuU7LSF1BQv+JxpAC5Q2xMDw4ZizztI8GxlwOM3BYa5dZ4i4lA1iZsw==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/@reldens/items-system/-/items-system-0.34.0.tgz", + "integrity": "sha512-GOhjpyLMMHLRcAfgHYpdZAS5YJ8PctBJhQmpX7sph46HYhE244yeuj3bswha/+j6tWtPXWyj9eeTrbVT5VXJ0w==", "requires": { - "@reldens/modifiers": "^0.25.0", - "@reldens/storage": "^0.30.0", - "@reldens/utils": "^0.38.0" - }, - "dependencies": { - "@reldens/storage": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", - "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", - "requires": { - "@mikro-orm/core": "^6.3.13", - "@mikro-orm/mongodb": "^6.3.13", - "@reldens/utils": "^0.38.0", - "knex": "^3.1.0", - "mysql": "^2.18.1", - "objection": "^3.1.5" - } - }, - "@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", - "requires": { - "await-event-emitter": "2.0.2" - } - } + "@reldens/modifiers": "^0.26.0", + "@reldens/storage": "^0.31.0", + "@reldens/utils": "^0.39.0" } }, "@reldens/modifiers": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@reldens/modifiers/-/modifiers-0.25.0.tgz", - "integrity": "sha512-5KClhPJE23uIbL+mW8XxAWzC/k/UO8k8xFhmHxuBx0GaLKTPLsooUGZnKVFgtsBk8Ow8EvUm1fBErQjXJFwEog==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@reldens/modifiers/-/modifiers-0.26.0.tgz", + "integrity": "sha512-BHNvkyEZ6t2f3imt7znDb+XxhfS7teqKZq28Lk9SVLYkaEiaGKhss0OE16XYbpNyhqRF8bK8XV9taS9ZYcK5Fg==", "requires": { - "@reldens/utils": "^0.38.0" - }, - "dependencies": { - "@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", - "requires": { - "await-event-emitter": "2.0.2" - } - } + "@reldens/utils": "^0.39.0" } }, "@reldens/skills": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@reldens/skills/-/skills-0.33.0.tgz", - "integrity": "sha512-Y1W2ZWxPL7WvsnAjCVaE5p10gnwVKsr3uxo3gBMSXVSf5vqD2ETW08FfhOV3orCU9g62o6XObscbyrUFKLqZZQ==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/@reldens/skills/-/skills-0.34.0.tgz", + "integrity": "sha512-QSHKNs1hvzfsQf2daLPbn9DehjrJub38mZAfgZYqLB9xSPv1Sv86ZNGg1ePHuLaIRpjwq7xMpkNLjwREFy9uzg==", "requires": { - "@reldens/modifiers": "^0.25.0", - "@reldens/storage": "^0.30.0", - "@reldens/utils": "^0.38.0" - }, - "dependencies": { - "@reldens/storage": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@reldens/storage/-/storage-0.30.0.tgz", - "integrity": "sha512-dSPKs9Nk6UalGmpPRAL3xJ9R3lOa+R4jUp38FofZI59YVL7duveQFkjQ2fflkCBz+7G1GApL00cPeRKfnPvkBg==", - "requires": { - "@mikro-orm/core": "^6.3.13", - "@mikro-orm/mongodb": "^6.3.13", - "@reldens/utils": "^0.38.0", - "knex": "^3.1.0", - "mysql": "^2.18.1", - "objection": "^3.1.5" - } - }, - "@reldens/utils": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@reldens/utils/-/utils-0.38.0.tgz", - "integrity": "sha512-fqouyi+57YINYkwMjTPi7NsqEzMTH/DZSVfbU06QBwnXB2vuG+61YGOOa3546x9Wt6GdTGjIOldLBwOXIZ6qrw==", - "requires": { - "await-event-emitter": "2.0.2" - } - } + "@reldens/modifiers": "^0.26.0", + "@reldens/storage": "^0.31.0", + "@reldens/utils": "^0.39.0" } }, "@reldens/storage": { @@ -12972,9 +12866,9 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "caniuse-lite": { - "version": "1.0.30001683", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", - "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==" + "version": "1.0.30001686", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", + "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==" }, "chalk": { "version": "4.1.2", diff --git a/package.json b/package.json index ee3dd3b0..b376968e 100644 --- a/package.json +++ b/package.json @@ -100,9 +100,9 @@ "@parcel/transformer-xml": "2.12.0", "@parcel/transformer-yaml": "2.12.0", "@reldens/game-data-generator": "^0.9.0", - "@reldens/items-system": "^0.33.0", - "@reldens/modifiers": "^0.25.0", - "@reldens/skills": "^0.33.0", + "@reldens/items-system": "^0.34.0", + "@reldens/modifiers": "^0.26.0", + "@reldens/skills": "^0.34.0", "@reldens/storage": "^0.31.0", "@reldens/tile-map-generator": "^0.16.0", "@reldens/utils": "^0.39.0", From 36d710f7c9151c1835dd8d83e1f28b979230e002 Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 19:03:14 +0100 Subject: [PATCH 38/39] - Reldens - v4.0.0 - Update Parcel and remove unnecesary optimizer that was causing issues. --- lib/bundlers/drivers/parcel-config.json | 1 - package-lock.json | 3524 +++++++++++------------ package.json | 105 +- 3 files changed, 1775 insertions(+), 1855 deletions(-) diff --git a/lib/bundlers/drivers/parcel-config.json b/lib/bundlers/drivers/parcel-config.json index 4e5fd994..1fd70837 100644 --- a/lib/bundlers/drivers/parcel-config.json +++ b/lib/bundlers/drivers/parcel-config.json @@ -54,7 +54,6 @@ "*.css": ["@parcel/optimizer-css"], "*.{html,xhtml}": ["@parcel/optimizer-htmlnano"], "*.{js,mjs,cjs}": ["@parcel/optimizer-swc"], - "*.svg": ["@parcel/optimizer-svgo"], "*.{jpg,jpeg,png}": ["@parcel/optimizer-image"] }, "packagers": { diff --git a/package-lock.json b/package-lock.json index e75dc309..3d1490b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,59 +13,58 @@ "@colyseus/monitor": "0.15.8", "@colyseus/schema": "2.0.36", "@colyseus/ws-transport": "0.15.3", - "@parcel/bundler-default": "2.12.0", - "@parcel/compressor-raw": "2.12.0", - "@parcel/core": "2.12.0", - "@parcel/namer-default": "2.12.0", - "@parcel/optimizer-css": "2.12.0", - "@parcel/optimizer-data-url": "2.12.0", - "@parcel/optimizer-htmlnano": "2.12.0", - "@parcel/optimizer-image": "2.12.0", - "@parcel/optimizer-svgo": "2.12.0", - "@parcel/optimizer-swc": "2.12.0", - "@parcel/packager-css": "2.12.0", - "@parcel/packager-html": "2.12.0", - "@parcel/packager-js": "2.12.0", - "@parcel/packager-raw": "2.12.0", - "@parcel/packager-raw-url": "2.12.0", - "@parcel/packager-svg": "2.12.0", - "@parcel/packager-ts": "2.12.0", - "@parcel/packager-wasm": "2.12.0", - "@parcel/packager-xml": "2.12.0", - "@parcel/reporter-dev-server": "2.12.0", - "@parcel/resolver-default": "2.12.0", - "@parcel/runtime-browser-hmr": "2.12.0", - "@parcel/runtime-js": "2.12.0", - "@parcel/runtime-react-refresh": "2.12.0", - "@parcel/runtime-service-worker": "2.12.0", - "@parcel/transformer-babel": "2.12.0", - "@parcel/transformer-coffeescript": "2.12.0", - "@parcel/transformer-css": "2.12.0", - "@parcel/transformer-glsl": "2.12.0", - "@parcel/transformer-graphql": "2.12.0", - "@parcel/transformer-html": "2.12.0", - "@parcel/transformer-image": "2.12.0", - "@parcel/transformer-inline-string": "2.12.0", - "@parcel/transformer-js": "2.12.0", - "@parcel/transformer-json": "2.12.0", - "@parcel/transformer-jsonld": "2.12.0", - "@parcel/transformer-less": "2.12.0", - "@parcel/transformer-postcss": "2.12.0", - "@parcel/transformer-posthtml": "2.12.0", - "@parcel/transformer-pug": "2.12.0", - "@parcel/transformer-raw": "2.12.0", - "@parcel/transformer-react-refresh-wrap": "2.12.0", - "@parcel/transformer-sass": "2.12.0", - "@parcel/transformer-stylus": "2.12.0", - "@parcel/transformer-sugarss": "2.12.0", - "@parcel/transformer-svg": "2.12.0", - "@parcel/transformer-toml": "2.12.0", - "@parcel/transformer-typescript-types": "2.12.0", - "@parcel/transformer-vue": "2.12.0", - "@parcel/transformer-webmanifest": "2.12.0", - "@parcel/transformer-worklet": "2.12.0", - "@parcel/transformer-xml": "2.12.0", - "@parcel/transformer-yaml": "2.12.0", + "@parcel/bundler-default": "2.13.2", + "@parcel/compressor-raw": "2.13.2", + "@parcel/core": "2.13.2", + "@parcel/namer-default": "2.13.2", + "@parcel/optimizer-css": "2.13.2", + "@parcel/optimizer-data-url": "2.13.2", + "@parcel/optimizer-htmlnano": "2.13.2", + "@parcel/optimizer-image": "2.13.2", + "@parcel/optimizer-swc": "2.13.2", + "@parcel/packager-css": "2.13.2", + "@parcel/packager-html": "2.13.2", + "@parcel/packager-js": "2.13.2", + "@parcel/packager-raw": "2.13.2", + "@parcel/packager-raw-url": "2.13.2", + "@parcel/packager-svg": "2.13.2", + "@parcel/packager-ts": "2.13.2", + "@parcel/packager-wasm": "2.13.2", + "@parcel/packager-xml": "2.13.2", + "@parcel/reporter-dev-server": "2.13.2", + "@parcel/resolver-default": "2.13.2", + "@parcel/runtime-browser-hmr": "2.13.2", + "@parcel/runtime-js": "2.13.2", + "@parcel/runtime-react-refresh": "2.13.2", + "@parcel/runtime-service-worker": "2.13.2", + "@parcel/transformer-babel": "2.13.2", + "@parcel/transformer-coffeescript": "2.13.2", + "@parcel/transformer-css": "2.13.2", + "@parcel/transformer-glsl": "2.13.2", + "@parcel/transformer-graphql": "2.13.2", + "@parcel/transformer-html": "2.13.2", + "@parcel/transformer-image": "2.13.2", + "@parcel/transformer-inline-string": "2.13.2", + "@parcel/transformer-js": "2.13.2", + "@parcel/transformer-json": "2.13.2", + "@parcel/transformer-jsonld": "2.13.2", + "@parcel/transformer-less": "2.13.2", + "@parcel/transformer-postcss": "2.13.2", + "@parcel/transformer-posthtml": "2.13.2", + "@parcel/transformer-pug": "2.13.2", + "@parcel/transformer-raw": "2.13.2", + "@parcel/transformer-react-refresh-wrap": "2.13.2", + "@parcel/transformer-sass": "2.13.2", + "@parcel/transformer-stylus": "2.13.2", + "@parcel/transformer-sugarss": "2.13.2", + "@parcel/transformer-svg": "2.13.2", + "@parcel/transformer-toml": "2.13.2", + "@parcel/transformer-typescript-types": "2.13.2", + "@parcel/transformer-vue": "2.13.2", + "@parcel/transformer-webmanifest": "2.13.2", + "@parcel/transformer-worklet": "2.13.2", + "@parcel/transformer-xml": "2.13.2", + "@parcel/transformer-yaml": "2.13.2", "@reldens/game-data-generator": "^0.9.0", "@reldens/items-system": "^0.34.0", "@reldens/modifiers": "^0.26.0", @@ -108,6 +107,11 @@ "npm": ">=8.0.0" } }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==" + }, "node_modules/@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -1255,17 +1259,6 @@ "node": ">=18" } }, - "node_modules/@jimp/core/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@jimp/diff": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@jimp/diff/-/diff-1.6.0.tgz", @@ -1695,6 +1688,210 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@ladjs/consolidate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@ladjs/consolidate/-/consolidate-1.0.4.tgz", + "integrity": "sha512-ErvBg5acSqns86V/xW7gjqqnBBs6thnpMB0gGc3oM7WHsV8PWrnBtKI6dumHDT3UT/zEOfGzp7dmSFqWoCXKWQ==", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": "^7.22.5", + "arc-templates": "^0.5.3", + "atpl": ">=0.7.6", + "bracket-template": "^1.1.5", + "coffee-script": "^1.12.7", + "dot": "^1.1.3", + "dust": "^0.3.0", + "dustjs-helpers": "^1.7.4", + "dustjs-linkedin": "^2.7.5", + "eco": "^1.1.0-rc-3", + "ect": "^0.5.9", + "ejs": "^3.1.5", + "haml-coffee": "^1.14.1", + "hamlet": "^0.3.3", + "hamljs": "^0.6.2", + "handlebars": "^4.7.6", + "hogan.js": "^3.0.2", + "htmling": "^0.0.8", + "jazz": "^0.0.18", + "jqtpl": "~1.1.0", + "just": "^0.1.8", + "liquid-node": "^3.0.1", + "liquor": "^0.0.5", + "lodash": "^4.17.20", + "mote": "^0.2.0", + "mustache": "^4.0.1", + "nunjucks": "^3.2.2", + "plates": "~0.4.11", + "pug": "^3.0.0", + "qejs": "^3.0.5", + "ractive": "^1.3.12", + "react": ">=16.13.1", + "react-dom": ">=16.13.1", + "slm": "^2.0.0", + "swig": "^1.4.2", + "swig-templates": "^2.0.3", + "teacup": "^2.0.0", + "templayed": ">=0.2.3", + "then-pug": "*", + "tinyliquid": "^0.2.34", + "toffee": "^0.3.6", + "twig": "^1.15.2", + "twing": "^5.0.2", + "underscore": "^1.11.0", + "vash": "^0.13.0", + "velocityjs": "^2.0.1", + "walrus": "^0.10.1", + "whiskers": "^0.4.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "arc-templates": { + "optional": true + }, + "atpl": { + "optional": true + }, + "bracket-template": { + "optional": true + }, + "coffee-script": { + "optional": true + }, + "dot": { + "optional": true + }, + "dust": { + "optional": true + }, + "dustjs-helpers": { + "optional": true + }, + "dustjs-linkedin": { + "optional": true + }, + "eco": { + "optional": true + }, + "ect": { + "optional": true + }, + "ejs": { + "optional": true + }, + "haml-coffee": { + "optional": true + }, + "hamlet": { + "optional": true + }, + "hamljs": { + "optional": true + }, + "handlebars": { + "optional": true + }, + "hogan.js": { + "optional": true + }, + "htmling": { + "optional": true + }, + "jazz": { + "optional": true + }, + "jqtpl": { + "optional": true + }, + "just": { + "optional": true + }, + "liquid-node": { + "optional": true + }, + "liquor": { + "optional": true + }, + "lodash": { + "optional": true + }, + "mote": { + "optional": true + }, + "mustache": { + "optional": true + }, + "nunjucks": { + "optional": true + }, + "plates": { + "optional": true + }, + "pug": { + "optional": true + }, + "qejs": { + "optional": true + }, + "ractive": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "slm": { + "optional": true + }, + "swig": { + "optional": true + }, + "swig-templates": { + "optional": true + }, + "teacup": { + "optional": true + }, + "templayed": { + "optional": true + }, + "then-pug": { + "optional": true + }, + "tinyliquid": { + "optional": true + }, + "toffee": { + "optional": true + }, + "twig": { + "optional": true + }, + "twing": { + "optional": true + }, + "underscore": { + "optional": true + }, + "vash": { + "optional": true + }, + "velocityjs": { + "optional": true + }, + "walrus": { + "optional": true + }, + "whiskers": { + "optional": true + } + } + }, "node_modules/@lezer/common": { "version": "0.15.12", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", @@ -2081,20 +2278,20 @@ } }, "node_modules/@parcel/bundler-default": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz", - "integrity": "sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==", - "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/graph": "3.2.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.13.2.tgz", + "integrity": "sha512-WY0LB1B7H6zIGXBtwssZRmzk788GzHoOGvMSIqgE/mZ0+jPF5V54zkjbhPBXj1fvoKOGlFy8Bm/gd/GnlQDdIg==", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2102,35 +2299,35 @@ } }, "node_modules/@parcel/cache": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz", - "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.13.2.tgz", + "integrity": "sha512-Y0nWlCMWDSp1lxiPI5zCWTGD0InnVZ+IfqeyLWmROAqValYyd0QZCvnSljKJ144jWTr0jXxDveir+DVF8sAYaA==", "dependencies": { - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/utils": "2.13.2", "lmdb": "2.8.5" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/codeframe": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz", - "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.13.2.tgz", + "integrity": "sha512-qFMiS14orb6QSQj5/J/QN+gJElUfedVAKBTNkp9QB4i8ObdLHDqHRUzFb55ZQJI3G4vsxOOWAOUXGirtLwrxGQ==", "dependencies": { - "chalk": "^4.1.0" + "chalk": "^4.1.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2138,15 +2335,15 @@ } }, "node_modules/@parcel/compressor-raw": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz", - "integrity": "sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.13.2.tgz", + "integrity": "sha512-HX51w7WlgQY2f30p3Le1B5nFsUrtEA1phvWEwQDm1gEC6OPmDrxNsFLWx18JdGlKWTaPYbAGXRMSOjUWU41N9w==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2154,62 +2351,54 @@ } }, "node_modules/@parcel/core": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz", - "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.13.2.tgz", + "integrity": "sha512-1zC5Au4z9or5XyP6ipfvJqHktuB0jD7WuxMcV1CWAZGARHKylLe+0ccl+Wx7HN5O+xAvfCDtTlKrATY8qyrIyw==", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/graph": "3.2.0", - "@parcel/logger": "2.12.0", - "@parcel/package-manager": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/cache": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/feature-flags": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/logger": "2.13.2", + "@parcel/package-manager": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "abortcontroller-polyfill": "^1.1.9", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "base-x": "^3.0.8", "browserslist": "^4.6.6", "clone": "^2.1.1", - "dotenv": "^7.0.0", - "dotenv-expand": "^5.1.0", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", "json5": "^2.2.0", "msgpackr": "^1.9.9", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/core/node_modules/dotenv": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", - "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/@parcel/diagnostic": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz", - "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.13.2.tgz", + "integrity": "sha512-6Au0JEJ5SY2gYrY0/m0i0sTuqTvK0k2E9azhBJR+zzCREbUxLiDdLZ+vXAfLW7t/kPAcWtdNU0Bj7pnZcMiMXg==", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2217,11 +2406,23 @@ } }, "node_modules/@parcel/events": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz", - "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.13.2.tgz", + "integrity": "sha512-BVB9hW1RGh/tMaDHfpa+uIgz5PMULorCnjmWr/KvrlhdUSUQoaPYfRcTDYrKhoKuNIKsWSnTGvXrxE53L5qo0w==", "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/feature-flags": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.13.2.tgz", + "integrity": "sha512-cCwDAKD4Er24EkuQ+loVZXSURpM0gAGRsLJVoBtFiCSbB3nmIJJ6FLRwSBI/5OsOUExiUXDvSpfUCA5ldGTzbw==", + "engines": { + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2229,36 +2430,38 @@ } }, "node_modules/@parcel/fs": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz", - "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==", - "dependencies": { - "@parcel/rust": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.2.tgz", + "integrity": "sha512-bdeIMuAXhMnROvqV55JWRUmjD438/T7h3r3NsFnkq+Mp4z2nuAn0STxbqDNxIgTMJHNunSDzncqRNMT7xJCe8A==", + "dependencies": { + "@parcel/feature-flags": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.12.0" + "@parcel/workers": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/graph": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz", - "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.3.2.tgz", + "integrity": "sha512-aAysQLRr8SOonSHWqdKHMJzfcrDFXKK8IYZEurlOzosiSgZXrAK7q8b8JcaJ4r84/jlvQYNYneNZeFQxKjHXkA==", "dependencies": { + "@parcel/feature-flags": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2266,15 +2469,15 @@ } }, "node_modules/@parcel/logger": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz", - "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.13.2.tgz", + "integrity": "sha512-SFVABAMqaT9jIDn4maPgaQQauPDz8fpoKUGEuLF44Q0aQFbBUy7vX7KYs/EvYSWZo4VyJcUDHvIInBlepA0/ZQ==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2282,14 +2485,14 @@ } }, "node_modules/@parcel/markdown-ansi": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz", - "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.13.2.tgz", + "integrity": "sha512-MIEoetfT/snk1GqWzBI3AhifV257i2xke9dvyQl14PPiMl+TlVhwnbQyA09WJBvDor+MuxZypHL7xoFdW8ff3A==", "dependencies": { - "chalk": "^4.1.0" + "chalk": "^4.1.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2297,17 +2500,17 @@ } }, "node_modules/@parcel/namer-default": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz", - "integrity": "sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.13.2.tgz", + "integrity": "sha512-wHaaJZcZEZUaCylC88PqjN4BybJhnkpP5RYg1xGWBTzdxhZthxvDbeOI+0YZ4jZXrLyVNjPyPRwyx0ETlq8MKA==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2315,20 +2518,20 @@ } }, "node_modules/@parcel/node-resolver-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz", - "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.2.tgz", + "integrity": "sha512-SwnKLcZRG1VdB5JeM/Ax5VMWWh2QfXufmMQCKKx0/Kk41nUpie+aIZKj3LH6Z/fJsnKig/vXpeWoxGhmG523qg==", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2336,21 +2539,21 @@ } }, "node_modules/@parcel/optimizer-css": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz", - "integrity": "sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.13.2.tgz", + "integrity": "sha512-V9JszWd1Lk3b/9hpfRp6U8lfOIaFPyevGFNTrT+CFMviuipCMWrkUgBa7wtFvqN1i8IJ5NV5FhIlc12qfBBBgA==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "browserslist": "^4.6.6", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2358,18 +2561,18 @@ } }, "node_modules/@parcel/optimizer-data-url": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-data-url/-/optimizer-data-url-2.12.0.tgz", - "integrity": "sha512-9g7+1bXZkLFFQ2cLm+CsiJzxMMSDxdo3w3xcqzIj5hcha22jaPP6N1weCAbfxkd6D8wgmljeNUzewFMT0Ob2FQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-data-url/-/optimizer-data-url-2.13.2.tgz", + "integrity": "sha512-y7ye3JnGAqA45Jg3Z3wrrPyssohFUTPjVW/2IA044infHnzrpDmIDnixjT8MuZsxJgbGAV9fgh1Ih00kBqP+UA==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "isbinaryfile": "^4.0.2", - "mime": "^2.4.4" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "isbinaryfile": "^5.0.2", + "mime": "^3.0.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2377,208 +2580,64 @@ } }, "node_modules/@parcel/optimizer-htmlnano": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz", - "integrity": "sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.13.2.tgz", + "integrity": "sha512-/ikDOZrnO4tdt99h34OyqnNIhugdeqWgnpfqEQ6Xi7odIn8OIGfwAHBXoyKRyUU8YUTqLhzOhckbSMwFTPRmXg==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "htmlnano": "^2.0.0", "nullthrows": "^1.1.1", - "posthtml": "^0.16.5", - "svgo": "^2.4.0" + "posthtml": "^0.16.5" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@parcel/optimizer-image": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz", - "integrity": "sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.13.2.tgz", + "integrity": "sha512-1BsQOPoSB0TBJJ40TiN+VS3YK2V4EMDtaOML1Bet2oTLMlL77vJG/xT5QHzhExYK+ZyFh2R0gq7deEKXNScBzg==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" - } - }, - "node_modules/@parcel/optimizer-svgo": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz", - "integrity": "sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==", - "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "svgo": "^2.4.0" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/optimizer-svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/@parcel/optimizer-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@parcel/optimizer-svgo/node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@parcel/optimizer-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/@parcel/optimizer-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/optimizer-swc": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz", - "integrity": "sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.13.2.tgz", + "integrity": "sha512-tyxXn36UAxZkAh+/cjvWwLCBkY+DL7+4G9NHWl5KeFqErc4diBox81Aiu8hnswNzFIg4ljn6f0rNpnWM3yfoMg==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", - "@swc/core": "^1.3.36", + "@parcel/utils": "2.13.2", + "@swc/core": "^1.7.26", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2586,46 +2645,46 @@ } }, "node_modules/@parcel/package-manager": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz", - "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==", - "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/node-resolver-core": "3.3.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "@swc/core": "^1.3.36", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.2.tgz", + "integrity": "sha512-6HjfbdJUjHyNKzYB7GSYnOCtLwqCGW7yT95GlnnTKyFffvXYsqvBSyepMuPRlbX0mFUm4S9l2DH3OVZrk108AA==", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/node-resolver-core": "3.4.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "@swc/core": "^1.7.26", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/packager-css": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz", - "integrity": "sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.13.2.tgz", + "integrity": "sha512-agao71rIHU1lR776IMwxKvknl1/Yglhkr2qSY0JQC10PRQXHs7nj0GXd69p568W42A3/rkMWrXjWkGzhbAcPRg==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2633,19 +2692,19 @@ } }, "node_modules/@parcel/packager-html": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz", - "integrity": "sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.13.2.tgz", + "integrity": "sha512-RHoYR4sp5VZATQbKE2Rn7DrJKK7HnvUTKB0WPFSppWJbJrqrZgvVCqnBMI2FPkbCoznGdt20rQ1R6vs591fuxQ==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2653,22 +2712,22 @@ } }, "node_modules/@parcel/packager-js": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz", - "integrity": "sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.13.2.tgz", + "integrity": "sha512-/dx19/vTCb4JIx/556hz6KEmwanasUNLAFsZ1PAm5AYDcoxJtHiNITRilA6JTlO+mdsERxOI5eE7tHCTou1ErQ==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", "globals": "^13.2.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2676,15 +2735,15 @@ } }, "node_modules/@parcel/packager-raw": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz", - "integrity": "sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.13.2.tgz", + "integrity": "sha512-P+BnMZ3WS4F+Kpd+iv6PCfgyCftPGf8iGSQOCPkWb5fjuNjfvIzsq4WAW41FPbu788JwChev1O4zREYzlQjG2Q==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2692,16 +2751,16 @@ } }, "node_modules/@parcel/packager-raw-url": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw-url/-/packager-raw-url-2.12.0.tgz", - "integrity": "sha512-sH7cvLbotS+qknhQUCGfd9mslQr4KcanlZE5CgzM0uGn3SnyZoKznqHrbouzgnIP/LHgXKOKmMaNjPLtVe4rcA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw-url/-/packager-raw-url-2.13.2.tgz", + "integrity": "sha512-+H4IqEU2Rcu+yZ08Ll6uyGd4PDTBM2xE/mEgM0Ne/vv96K51geFmLosiLI7/mTvS3Qw+YDw1l1NGmisT5Pgqqw==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2709,18 +2768,18 @@ } }, "node_modules/@parcel/packager-svg": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz", - "integrity": "sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.13.2.tgz", + "integrity": "sha512-K99yyQ1IsbQlGWYOLaxv/GGeWXDq0snbgGrCJvXFS8APZZ2CrXRm2634XLFkY3XA1cKqP47wz+KbibMT/+uaPQ==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", "posthtml": "^0.16.4" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2728,15 +2787,15 @@ } }, "node_modules/@parcel/packager-ts": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-ts/-/packager-ts-2.12.0.tgz", - "integrity": "sha512-8wR0BNN2NBD+IIU0tjioK+lRD4p2Qi/fKxDH5ixEW912tRV+Vd4kE8k++U6YQIpSlK4FRnjFod5zYYhNSLuiXg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-ts/-/packager-ts-2.13.2.tgz", + "integrity": "sha512-GTFdmHu+hqXghlc810KxaQn4qwmwwcBWVyTNUkp/da+I7+0+qE4NL2E3ELDuRVx/j8tC3AKUeU07ln1adDNjyQ==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2744,15 +2803,15 @@ } }, "node_modules/@parcel/packager-wasm": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz", - "integrity": "sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.13.2.tgz", + "integrity": "sha512-XqFQQcQRgZLPHgLWsQmWHr47ebsu9F7hmpHS+hFNHda4zj7WDtw7r7n6/d8CEXzdI3agpxR3XKVZzx7nB6sQig==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">=12.0.0", - "parcel": "^2.12.0" + "node": ">=16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2760,18 +2819,18 @@ } }, "node_modules/@parcel/packager-xml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-xml/-/packager-xml-2.12.0.tgz", - "integrity": "sha512-k5/5IkvtmFGvgjDLZE6EVJBntxVfifUGw2UdM1DNChYdEuo18Ch3dcXTTRJim5wfjB0ZXscL12xV0JOeSiolSw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-xml/-/packager-xml-2.13.2.tgz", + "integrity": "sha512-6YpHBRIwZBnicr72JD7YRk14+SopttYe29I9wcMZCx+08lsyWcjpuCGiwJeT1oTeSD0jxZTyiRknBcO8dwVuFg==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@xmldom/xmldom": "^0.7.9" + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@xmldom/xmldom": "^0.9.3" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2779,14 +2838,14 @@ } }, "node_modules/@parcel/plugin": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz", - "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.13.2.tgz", + "integrity": "sha512-Q+RIENS1B185yLPhrGdzBK1oJrZmh/RXrYMnzJs78Tog8SpihjeNBNR6z4PT85o2F+Gy2y1S9A26fpiGq161qQ==", "dependencies": { - "@parcel/types": "2.12.0" + "@parcel/types": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2794,16 +2853,17 @@ } }, "node_modules/@parcel/profiler": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz", - "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.13.2.tgz", + "integrity": "sha512-fur6Oq2HkX6AiM8rtqmDvldH5JWz0sqXA1ylz8cE3XOiDZIuvCulZmQ+hH+4odaNH6QocI1MwfV+GDh3HlQoCA==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/types-internal": "2.13.2", "chrome-trace-event": "^1.0.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2811,16 +2871,16 @@ } }, "node_modules/@parcel/reporter-dev-server": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz", - "integrity": "sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.13.2.tgz", + "integrity": "sha512-alWCPZiXEy5a1/mVnxQTJwJhWrnjaR+JOHQSu69eBGuWHqhXt2SCyKpczT08nm37GIxkhsiIaVR8sP4lVriApw==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2828,16 +2888,16 @@ } }, "node_modules/@parcel/resolver-default": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz", - "integrity": "sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.13.2.tgz", + "integrity": "sha512-8bMK04AxUmLF0+rsEl9u2LiboAsTjAemer9N/qMnWfsbxvEDunfTR39fwEEXpGAQV2sFb0ZPYtTxOc8bk5ygcQ==", "dependencies": { - "@parcel/node-resolver-core": "3.3.0", - "@parcel/plugin": "2.12.0" + "@parcel/node-resolver-core": "3.4.2", + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2845,16 +2905,16 @@ } }, "node_modules/@parcel/runtime-browser-hmr": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz", - "integrity": "sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.13.2.tgz", + "integrity": "sha512-ByF8Ww1g6XbtwqBxNZrUz/j9EG0O7sqefkW7E2IWhlxFiNJakIrgaN5VKCBRRWaDvyAz0Kn6Md9e6GLmioRXkA==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2862,18 +2922,18 @@ } }, "node_modules/@parcel/runtime-js": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz", - "integrity": "sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.13.2.tgz", + "integrity": "sha512-DxRFW30RWM8noK1+yrqa+GYblMJabx6cg5Q7BI1SmTvVflomYVy2KEBVA161VZoxjHS6o0lToziAeVcUJT5GUQ==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2881,18 +2941,18 @@ } }, "node_modules/@parcel/runtime-react-refresh": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz", - "integrity": "sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.13.2.tgz", + "integrity": "sha512-anLQUANkU++brMa7PWBmvbGDgaNMA9BP7vg/g22KI7w6nh9D3f4JBi/Vo4N66zHATpex41gAjGmFXcBtotc5bQ==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "react-error-overlay": "6.0.9", - "react-refresh": "^0.9.0" + "react-refresh": ">=0.9 <=0.14" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2900,17 +2960,17 @@ } }, "node_modules/@parcel/runtime-service-worker": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz", - "integrity": "sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.13.2.tgz", + "integrity": "sha512-EWn3eM5d81uL9+hXqAnuXo/6yq/7p1VEOKn83FEsbO4TAb6Pd25bJ0mPnWpewPcJBQUoPX3Wjx7VzVit7eeuYw==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2918,11 +2978,11 @@ } }, "node_modules/@parcel/rust": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz", - "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.13.2.tgz", + "integrity": "sha512-XFIewSwxkrDYOnnSP/XZ1LDLdXTs7L9CjQUWtl46Vir5Pq/rinemwLJeKGIwKLHy7fhUZQjYxquH6fBL+AY8DA==", "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2941,22 +3001,22 @@ } }, "node_modules/@parcel/transformer-babel": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz", - "integrity": "sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.13.2.tgz", + "integrity": "sha512-2cHXLQ2+jeae+mImoaKTtkKhCKATaPY2+Pao0g3zh1xwhNu/08xj7upnbD548UEyEChUWn6IjWljDsx4y8Oa3w==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "browserslist": "^4.6.6", "json5": "^2.2.0", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2964,20 +3024,20 @@ } }, "node_modules/@parcel/transformer-coffeescript": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.12.0.tgz", - "integrity": "sha512-F+xo76q/y28eMIR4NmIO0Gzdmr+nvrR8q+4KbIaMljLPRI3fuhKClF/TCCc8/HY1sC2DlGKSJFFanxovHsoYhQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.13.2.tgz", + "integrity": "sha512-BfMjKLIuIpA/dxlnJfjubPKMnE16l6h1hDfpsY/IxxE7JiwU8MIFcecvpB9X0w7x3OqRrj74aWBG17wFz0dlEA==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "coffeescript": "^2.0.3", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2985,21 +3045,21 @@ } }, "node_modules/@parcel/transformer-css": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz", - "integrity": "sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.13.2.tgz", + "integrity": "sha512-QR9I4wYc+Tw7eET5ak3BvXLdsmDJGzq+Gd4KaULa0sNKioDUXCi79E5rGICW8E+BbHGKar7boNzk7HrNZX7PLg==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "browserslist": "^4.6.6", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3007,17 +3067,17 @@ } }, "node_modules/@parcel/transformer-glsl": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-glsl/-/transformer-glsl-2.12.0.tgz", - "integrity": "sha512-aW87AaJZWASkTL1Dq2M2rSmKRIUd0q6gJx5yd9jKIEmAI47ffFUGCPjvQNecHCGkgO0GBCeINtOShz7MThKvjg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-glsl/-/transformer-glsl-2.13.2.tgz", + "integrity": "sha512-YE8FfV0z8B4W324jtMaVBvbUN8BWUCQN4hRSaoJZyMBlrcrH6SzKL85v5ZH424mMLQjbbUytziI2EWYL4Gm8lg==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "glslify-bundle": "^5.1.1", "glslify-deps": "^1.3.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3025,17 +3085,17 @@ } }, "node_modules/@parcel/transformer-graphql": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-graphql/-/transformer-graphql-2.12.0.tgz", - "integrity": "sha512-o4A/Vl5fnekVV+Ft7OskbXHjxs3ve72ew5NBwQ0sx3oNcoYmAbepP5iH2Mh7G2bjeUCNYWE5z+jnO0FNM53QWw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-graphql/-/transformer-graphql-2.13.2.tgz", + "integrity": "sha512-6AA/lQZy8XoxmJZq91GXIL3qLHoDt8xt2pzANItASf2PoUrOIUojYCtN7khB06SaD5gyY2EBYTQL8ohYi+a0Iw==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "graphql": "^15.0.0", "graphql-import-macro": "^1.0.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3043,23 +3103,23 @@ } }, "node_modules/@parcel/transformer-html": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz", - "integrity": "sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.13.2.tgz", + "integrity": "sha512-LlQHODz/R832ZuRkCGlOQe+TF1BR9nriUcVSc2Z7q5xQ/HblNPrVvvLDBcXG7xRToawS1y6jXG0Tihv47AykfQ==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", - "posthtml-parser": "^0.10.1", + "posthtml-parser": "^0.12.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2", "srcset": "4" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3067,33 +3127,33 @@ } }, "node_modules/@parcel/transformer-image": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz", - "integrity": "sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.13.2.tgz", + "integrity": "sha512-sHk9UmJIPEGil+8ulK+Mi4BArbSuMPTXrY1z3EP4pKGHPCMABNKIRiricngvxCW1eVZrxSokeHQe2jYWJ4tAtA==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/transformer-inline-string": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-inline-string/-/transformer-inline-string-2.12.0.tgz", - "integrity": "sha512-FawH7Hgc7E8/Uc0t1UlFT2AdKdEQysu6OJp88NJixAqNhZT7G24OtKltM+VyayPxQZyLblPcp6TnYpY+Tz9VGA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-inline-string/-/transformer-inline-string-2.13.2.tgz", + "integrity": "sha512-FwRqLfoIriLavfG3QhzbYenA/CdWWGZD29dwG7+1/DmOcczfq8KfVKe/vad4psqmLWGJLJcWbTXs5Zq6UKRzYw==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3101,50 +3161,45 @@ } }, "node_modules/@parcel/transformer-js": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz", - "integrity": "sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.13.2.tgz", + "integrity": "sha512-mn5DL+59x0FHeHKWOstZuKcz4rcVnZUAkXMPtERgXa0ggjJ1CgVOc26VD68sszC/aiF6yathz/LJtJpyluniLQ==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "@swc/helpers": "^0.5.0", "browserslist": "^4.6.6", "nullthrows": "^1.1.1", - "regenerator-runtime": "^0.13.7", + "regenerator-runtime": "^0.14.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, - "node_modules/@parcel/transformer-js/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, "node_modules/@parcel/transformer-json": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz", - "integrity": "sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.13.2.tgz", + "integrity": "sha512-AiLyWPnHaNvO9sGykYF15S3jzyQY0vSw3xQPj/xhDRv7IXQyt3y1zTtJmQsp/ri9vIzf2CruD42UXiaSPpbA8A==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "json5": "^2.2.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3152,17 +3207,17 @@ } }, "node_modules/@parcel/transformer-jsonld": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-jsonld/-/transformer-jsonld-2.12.0.tgz", - "integrity": "sha512-f/k8ODjthQt83yq1K11MibgVVIBXWr5JDvWuWOcbOKel0AmSbTYB3fb2kYGDSGkQ9XElUvRDaOfecb8GN8am8g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-jsonld/-/transformer-jsonld-2.13.2.tgz", + "integrity": "sha512-rQyZvHQ9//OTjvErvcVIrGf/1nuK21wLVKmWZaUwv8pdEv+4SngB261LaVwNhnr0wXt+p7WxeaexfJCz0rAWsw==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", "json5": "^2.2.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3170,17 +3225,17 @@ } }, "node_modules/@parcel/transformer-less": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-less/-/transformer-less-2.12.0.tgz", - "integrity": "sha512-eBgDLKX+5HU2IhZxdKabUflt2Aza8ZlV70G95GPZAW80PKlXPHxI10JTlYLAUiUy3G38TM3dvL6W0FhtCRbgSQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-less/-/transformer-less-2.13.2.tgz", + "integrity": "sha512-gOChha5J1R7b3MzBFe5JrfH2cBrIm+SuKZRzboC7JaUIUEZr38cUjRq00dj6kb8Y95nFvFw8G7ORqHl9x9uXAA==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", "less": "^4.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3188,22 +3243,22 @@ } }, "node_modules/@parcel/transformer-postcss": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz", - "integrity": "sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==", - "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.13.2.tgz", + "integrity": "sha512-srcKQcTaaCGutcvpWeTue4/bScPJK3nXyql2QVNneufqxTQsOZcZg8lFaMc3ma6WjQn/m2emQC26eivr3MOhDg==", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "clone": "^2.1.1", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3211,21 +3266,21 @@ } }, "node_modules/@parcel/transformer-posthtml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz", - "integrity": "sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.13.2.tgz", + "integrity": "sha512-pNvxKp7GWLKSbyV2xRaGWZNV/ut8uetMfbwpcGxboxgq5TV9dqnHxRGzsTvZTo7yHqQ3N6hycoGh+w8L/8sg8Q==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", - "posthtml-parser": "^0.10.1", + "posthtml-parser": "^0.12.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3233,16 +3288,16 @@ } }, "node_modules/@parcel/transformer-pug": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-pug/-/transformer-pug-2.12.0.tgz", - "integrity": "sha512-aiWpfPYIhAAhYU+A29pHMMSc/HE688djX3olVc3MJXjQH49j4XUF1u4QnqMTTrKPHYgSQCXxdGWWljoifMH4iQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-pug/-/transformer-pug-2.13.2.tgz", + "integrity": "sha512-OJfxcR3aYKvPAYdSJPAiFpgtPxyubSQBhOq2e+w+u6dyfxKr/ZrNCCFi0Kvuhhcxu+p7PWanl0PfLODg4Piz/w==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "pug": "^3.0.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3250,15 +3305,15 @@ } }, "node_modules/@parcel/transformer-raw": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz", - "integrity": "sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.13.2.tgz", + "integrity": "sha512-KsTasFp+jwkGjBLrHO6oiqIIwOeiyNPx5NawmIzXUuGvQv6UhTSayk3NnFxteOVXzy5C9GfrQ5W+IBrHe6JWaw==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3266,17 +3321,17 @@ } }, "node_modules/@parcel/transformer-react-refresh-wrap": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz", - "integrity": "sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.13.2.tgz", + "integrity": "sha512-2UuuzHzpUx8Z0muoM3cETa7PDRJIG9a5nxPaTBZttT5ucprskITakky5pzsd4gabmNzWfZ5raRG5ixV3zOSL5A==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "react-refresh": "^0.9.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "react-refresh": ">=0.9 <=0.14" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3284,17 +3339,17 @@ } }, "node_modules/@parcel/transformer-sass": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.12.0.tgz", - "integrity": "sha512-xLLoSLPST+2AHJwFRLl4foArDjjy6P1RChP3TxMU2MVS1sbKGJnfFhFpHAacH8ASjuGtu5rbpfpHRZePlvoZxw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.13.2.tgz", + "integrity": "sha512-FemdyKa6wvkitG2DQgkDI6NkyJCsQ2My/z3idcFAyf8kb3KBIJ+a0ZK4QALvLnJiC9ugeIKsZk5uFjoJAHX1XQ==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", "sass": "^1.38.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3302,17 +3357,17 @@ } }, "node_modules/@parcel/transformer-stylus": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-stylus/-/transformer-stylus-2.12.0.tgz", - "integrity": "sha512-sqhYAodncAj5KG7UG4zb9pMspCAA5xSX4fIosIvpEqbTLGaVdxSQ8qZk+8mv5879Q8x0xsQGxFFwNJx5ZEiYMg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-stylus/-/transformer-stylus-2.13.2.tgz", + "integrity": "sha512-pgK88lZychWqfuF+BWh4nrek/P1mq+JK8e5Td+ZlOFTbaTa1r3ayChkSTWJAjAXuyqg8SaDyqnVVT2NUs1qE6w==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "stylus": "^0.55.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "stylus": "^0.63.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3320,17 +3375,17 @@ } }, "node_modules/@parcel/transformer-sugarss": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sugarss/-/transformer-sugarss-2.12.0.tgz", - "integrity": "sha512-gpKzN4zOXCVlgeGq59yPfJWtFi94niwfSF9h1LdVKqrPH1Bc5xvza0felxVTcpSAu0IhgTUXZJx5Hsjgbp4XJg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sugarss/-/transformer-sugarss-2.13.2.tgz", + "integrity": "sha512-IQCGXqdcQ6d07wqHd/Ui1izWaEgzFNuypnJpstg8rvCevHRbrj8aH4x2THuQznbHeBZd1ER9eawqNZrL5hO54g==", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "postcss": "^8.4.5", - "sugarss": "^3.0.3" + "sugarss": "^4.0.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3338,22 +3393,22 @@ } }, "node_modules/@parcel/transformer-svg": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz", - "integrity": "sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.13.2.tgz", + "integrity": "sha512-ANwWE4/n4rXrlbmY3iT18ndlxlLP1ubapR1wYL9bpp2cKA8ny2tCe5wlzLxBAfwcZx8cd15N/5v/ZwS6xt6BXw==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", - "posthtml-parser": "^0.10.1", + "posthtml-parser": "^0.12.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3361,16 +3416,16 @@ } }, "node_modules/@parcel/transformer-toml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-toml/-/transformer-toml-2.12.0.tgz", - "integrity": "sha512-v+7U0UD+qLKzSWVfl7KUSVBTgw9aZiy/XJ6OfeSrWHovuZXVA4EsFYibrhHdM9B3WEUXemVmJc5fWA5vXrPkXA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-toml/-/transformer-toml-2.13.2.tgz", + "integrity": "sha512-72lZHqdAuiyKx9X5qFtqTBjhcz0kAoQ//7bs98PMVjtI7iFpYNBwkd71YBBkEOAaw+NtDEwelQgMopQWuimqog==", "dependencies": { "@iarna/toml": "^2.2.3", - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3378,20 +3433,20 @@ } }, "node_modules/@parcel/transformer-typescript-types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.12.0.tgz", - "integrity": "sha512-uxF4UBMYvbjiV3zHTWMrZX8cFD92VUvD3ArcGi5WEtuVROUm9Sc47o0mOzxKfMFlJu2KOfZVHYlzK9f/UKA2kQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.13.2.tgz", + "integrity": "sha512-EUtWLnvZuw1CiOhlgU0WEo7QHE7G0RTPyWpmMHWJljCsvpTeAlfU12V2ko2tmtFNp9F8JiwBhP0+od5+f5LlBA==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/ts-utils": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/ts-utils": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3402,22 +3457,22 @@ } }, "node_modules/@parcel/transformer-vue": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-vue/-/transformer-vue-2.12.0.tgz", - "integrity": "sha512-WZNlNUDymAD+3b2BOGHRsW66rlmW7E9QXa6CTrkPnR6gXX1c9lY7srxSt1Lb+c8zDJHr4Gw7Y0kz8gj921S/aQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-vue/-/transformer-vue-2.13.2.tgz", + "integrity": "sha512-LTdJuEf8ZLJ40YQNczSKfGG7A++QzDKctk/pkk8WxkCWqbD5LkyM0kMLVhMYxiNEacU5zCDKdjvma3HUiu8CIA==", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@ladjs/consolidate": "^1.0.3", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "@vue/compiler-sfc": "^3.2.27", - "consolidate": "^0.16.0", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3425,17 +3480,17 @@ } }, "node_modules/@parcel/transformer-webmanifest": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-webmanifest/-/transformer-webmanifest-2.12.0.tgz", - "integrity": "sha512-suiUv9DDEpyryHtzahbIeJSZTIeE/t4cdrU0Ikb/O46wsy5RLo59nE4E6TGWM84R7fQO8m/MhzeQM5Y3NV6jKg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-webmanifest/-/transformer-webmanifest-2.13.2.tgz", + "integrity": "sha512-nHAvJcBspGn6E4ctIV7lYiGSXKmwCGk7sV4KKorLj6O1b8kO3h9azKnuKBPq0x3Lfq6OdF7RluejsKhZF8mgDQ==", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" }, "engines": { - "parcel": "^2.12.0" + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3443,15 +3498,15 @@ } }, "node_modules/@parcel/transformer-worklet": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-worklet/-/transformer-worklet-2.12.0.tgz", - "integrity": "sha512-+IodC0EUN0mHfLOEsrUPK0lr1b5fSvZfAXh+FMqiXvJo4jziRq5Lb+HZbgCfp5DnD5BH0VxLAxdd8QUyAt4Gog==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-worklet/-/transformer-worklet-2.13.2.tgz", + "integrity": "sha512-/EI8h6ROJZkET44u3g9+vEiLrvOJs26ebjEcRVJPumMc6t9lyJtFO3wfOa5h4gtlrbd72HDcbgPumEugNEnziQ==", "dependencies": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3459,16 +3514,16 @@ } }, "node_modules/@parcel/transformer-xml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-xml/-/transformer-xml-2.12.0.tgz", - "integrity": "sha512-iey1GEg1LJ7M9y/4TPHoYskf3Hi8uIkQl+yCIzRQahlZWdw4PoNKGeWt1khh9FzhF6K0SvUUDVfRmmuOkqJIhw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-xml/-/transformer-xml-2.13.2.tgz", + "integrity": "sha512-DXs3z4b6jytkQ6kI7qhQOK7tOMQRO4YNtjwUC4kGU0FNEaE7F3O7y4NJis0SagGiWZZ9vt4O45oFimLASk7BIA==", "dependencies": { - "@parcel/plugin": "2.12.0", - "@xmldom/xmldom": "^0.7.9" + "@parcel/plugin": "2.13.2", + "@xmldom/xmldom": "^0.9.3" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -3476,51 +3531,31 @@ } }, "node_modules/@parcel/transformer-yaml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-yaml/-/transformer-yaml-2.12.0.tgz", - "integrity": "sha512-iD43BNH7rtQdIDzV6mgHLrAgHo4BLFxzSF10rXR225mzQi+TPiKDmW/nPr6aW7Tne544qTkRYmoCARC5X/S++w==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-yaml/-/transformer-yaml-2.13.2.tgz", + "integrity": "sha512-hAeCZqh3MbrtlsoLO4KML0hgI51UB/A3tnq0xUQKVRKkq6qerE3VHU7GurMIsAl4q1DZrH/T3N5sTp1RMXGPmQ==", "dependencies": { - "@parcel/plugin": "2.12.0", - "js-yaml": "^3.10.0" + "@parcel/plugin": "2.13.2", + "js-yaml": "^4.1.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/transformer-yaml/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@parcel/transformer-yaml/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@parcel/ts-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.12.0.tgz", - "integrity": "sha512-zou+W6dcqnXXUOfN5zGM+ePIWbYOhGp8bVB2jICoNkoKmNAHd4l4zeHl5yQXnbZfynVw88cZVqxtXS8tYebelg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.13.2.tgz", + "integrity": "sha512-wj6trzSaZ7nHDzx5zVQfs467WrA3p7g6bos7Opr8nTw5V1qACXa03C9ccRiEUmR0i+Bk8kEZKUunswhjBiPuHg==", "dependencies": { "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -3531,35 +3566,41 @@ } }, "node_modules/@parcel/types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz", - "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==", - "dependencies": { - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/package-manager": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.13.2.tgz", + "integrity": "sha512-6ixqjk2pjKELn4sQ/jdvpbCVTeH6xXQTdotkN8Wzk68F2K2MtSPIRAEocumlexScfffbRQplr2MdIf1JJWLogA==", + "dependencies": { + "@parcel/types-internal": "2.13.2", + "@parcel/workers": "2.13.2" + } + }, + "node_modules/@parcel/types-internal": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.13.2.tgz", + "integrity": "sha512-j0zb3WNM8O/+d8CArll7/4w4AyBED3Jbo32/unz89EPVN0VklmgBrRCAI5QXDKuJAGdAZSL5/a8bNYbwl7/Wxw==", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/feature-flags": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.12.0", "utility-types": "^3.10.0" } }, "node_modules/@parcel/utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz", - "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==", - "dependencies": { - "@parcel/codeframe": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/markdown-ansi": "2.12.0", - "@parcel/rust": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.13.2.tgz", + "integrity": "sha512-BkFtRo5xenmonwnBy+X4sVbHIRrx+ZHMPpS/6hFqyTvoUUFq2yTFQnfRGVVOOvscVUxpGom+kewnrTG3HHbZoA==", + "dependencies": { + "@parcel/codeframe": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/markdown-ansi": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "chalk": "^4.1.0", + "chalk": "^4.1.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -3567,9 +3608,9 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz", - "integrity": "sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", "hasInstallScript": true, "dependencies": { "detect-libc": "^1.0.3", @@ -3585,24 +3626,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.0", - "@parcel/watcher-darwin-arm64": "2.4.0", - "@parcel/watcher-darwin-x64": "2.4.0", - "@parcel/watcher-freebsd-x64": "2.4.0", - "@parcel/watcher-linux-arm-glibc": "2.4.0", - "@parcel/watcher-linux-arm64-glibc": "2.4.0", - "@parcel/watcher-linux-arm64-musl": "2.4.0", - "@parcel/watcher-linux-x64-glibc": "2.4.0", - "@parcel/watcher-linux-x64-musl": "2.4.0", - "@parcel/watcher-win32-arm64": "2.4.0", - "@parcel/watcher-win32-ia32": "2.4.0", - "@parcel/watcher-win32-x64": "2.4.0" + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz", - "integrity": "sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "cpu": [ "arm64" ], @@ -3619,9 +3661,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz", - "integrity": "sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", "cpu": [ "arm64" ], @@ -3638,9 +3680,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz", - "integrity": "sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", "cpu": [ "x64" ], @@ -3657,9 +3699,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz", - "integrity": "sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", "cpu": [ "x64" ], @@ -3676,9 +3718,28 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz", - "integrity": "sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", "cpu": [ "arm" ], @@ -3695,9 +3756,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz", - "integrity": "sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", "cpu": [ "arm64" ], @@ -3714,9 +3775,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz", - "integrity": "sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", "cpu": [ "arm64" ], @@ -3733,9 +3794,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz", - "integrity": "sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", "cpu": [ "x64" ], @@ -3752,9 +3813,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz", - "integrity": "sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", "cpu": [ "x64" ], @@ -3771,9 +3832,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz", - "integrity": "sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", "cpu": [ "arm64" ], @@ -3790,9 +3851,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz", - "integrity": "sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", "cpu": [ "ia32" ], @@ -3809,9 +3870,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz", - "integrity": "sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", "cpu": [ "x64" ], @@ -3828,26 +3889,26 @@ } }, "node_modules/@parcel/workers": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz", - "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==", - "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.13.2.tgz", + "integrity": "sha512-P78BpH0yTT9KK09wgK4eabtlb5OlcWAmZebOToN5UYuwWEylKt0gWZx1+d+LPQupvK84/iZ+AutDScsATjgUMw==", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@protobufjs/aspromise": { @@ -4042,13 +4103,13 @@ } }, "node_modules/@swc/core": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.0.tgz", - "integrity": "sha512-wc5DMI5BJftnK0Fyx9SNJKkA0+BZSJQx8430yutWmsILkHMBD3Yd9GhlMaxasab9RhgKqZp7Ht30hUYO5ZDvQg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.9.3.tgz", + "integrity": "sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==", "hasInstallScript": true, "dependencies": { - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.17" }, "engines": { "node": ">=10" @@ -4058,19 +4119,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.0", - "@swc/core-darwin-x64": "1.4.0", - "@swc/core-linux-arm-gnueabihf": "1.4.0", - "@swc/core-linux-arm64-gnu": "1.4.0", - "@swc/core-linux-arm64-musl": "1.4.0", - "@swc/core-linux-x64-gnu": "1.4.0", - "@swc/core-linux-x64-musl": "1.4.0", - "@swc/core-win32-arm64-msvc": "1.4.0", - "@swc/core-win32-ia32-msvc": "1.4.0", - "@swc/core-win32-x64-msvc": "1.4.0" + "@swc/core-darwin-arm64": "1.9.3", + "@swc/core-darwin-x64": "1.9.3", + "@swc/core-linux-arm-gnueabihf": "1.9.3", + "@swc/core-linux-arm64-gnu": "1.9.3", + "@swc/core-linux-arm64-musl": "1.9.3", + "@swc/core-linux-x64-gnu": "1.9.3", + "@swc/core-linux-x64-musl": "1.9.3", + "@swc/core-win32-arm64-msvc": "1.9.3", + "@swc/core-win32-ia32-msvc": "1.9.3", + "@swc/core-win32-x64-msvc": "1.9.3" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -4079,9 +4140,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.0.tgz", - "integrity": "sha512-UTJ/Vz+s7Pagef6HmufWt6Rs0aUu+EJF4Pzuwvr7JQQ5b1DZeAAUeUtkUTFx/PvCbM8Xfw4XdKBUZfrIKCfW8A==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.3.tgz", + "integrity": "sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==", "cpu": [ "arm64" ], @@ -4094,9 +4155,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.0.tgz", - "integrity": "sha512-f8v58u2GsGak8EtZFN9guXqE0Ep10Suny6xriaW2d8FGqESPyNrnBzli3aqkSeQk5gGqu2zJ7WiiKp3XoUOidA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.9.3.tgz", + "integrity": "sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==", "cpu": [ "x64" ], @@ -4109,9 +4170,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.0.tgz", - "integrity": "sha512-q2KAkBzmPcTnRij/Y1fgHCKAGevUX/H4uUESrw1J5gmUg9Qip6onKV80lTumA1/aooGJ18LOsB31qdbwmZk9OA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.3.tgz", + "integrity": "sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==", "cpu": [ "arm" ], @@ -4124,9 +4185,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.0.tgz", - "integrity": "sha512-SknGu96W0mzHtLHWm+62fk5+Omp9fMPFO7AWyGFmz2tr8EgRRXtTSrBUnWhAbgcalnhen48GsvtMdxf1KNputg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.3.tgz", + "integrity": "sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==", "cpu": [ "arm64" ], @@ -4139,9 +4200,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.0.tgz", - "integrity": "sha512-/k3TDvpBRMDNskHooNN1KqwUhcwkfBlIYxRTnJvsfT2C7My4pffR+4KXmt0IKynlTTbCdlU/4jgX4801FSuliw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.3.tgz", + "integrity": "sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==", "cpu": [ "arm64" ], @@ -4154,9 +4215,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.0.tgz", - "integrity": "sha512-GYsTMvNt5+WTVlwwQzOOWsPMw6P/F41u5PGHWmfev8Nd4QJ1h3rWPySKk4mV42IJwH9MgQCVSl3ygwNqwl6kFg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.3.tgz", + "integrity": "sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==", "cpu": [ "x64" ], @@ -4169,9 +4230,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.0.tgz", - "integrity": "sha512-jGVPdM/VwF7kK/uYRW5N6FwzKf/FnDjGIR3RPvQokjYJy7Auk+3Oj21C0Jev7sIT9RYnO/TrFEoEozKeD/z2Qw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.3.tgz", + "integrity": "sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==", "cpu": [ "x64" ], @@ -4184,9 +4245,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.0.tgz", - "integrity": "sha512-biHYm1AronEKlt47O/H8sSOBM2BKXMmWT+ApvlxUw50m1RGNnVnE0bgY7tylFuuSiWyXsQPJbmUV708JqORXVg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.3.tgz", + "integrity": "sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==", "cpu": [ "arm64" ], @@ -4199,9 +4260,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.0.tgz", - "integrity": "sha512-TL5L2tFQb19kJwv6+elToGBj74QXCn9j+hZfwQatvZEJRA5rDK16eH6oAE751dGUArhnWlW3Vj65hViPvTuycw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.3.tgz", + "integrity": "sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==", "cpu": [ "ia32" ], @@ -4214,9 +4275,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.0.tgz", - "integrity": "sha512-e2xVezU7XZ2Stzn4i7TOQe2Kn84oYdG0M3A7XI7oTdcpsKCcKwgiMoroiAhqCv+iN20KNqhnWwJiUiTj/qN5AA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.3.tgz", + "integrity": "sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==", "cpu": [ "x64" ], @@ -4242,9 +4303,12 @@ } }, "node_modules/@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==" + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "dependencies": { + "@swc/counter": "^0.1.3" + } }, "node_modules/@tokenizer/token": { "version": "0.3.0", @@ -4255,6 +4319,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "optional": true, + "peer": true, "engines": { "node": ">=10.13.0" } @@ -4348,11 +4414,11 @@ "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" }, "node_modules/@xmldom/xmldom": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", - "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.5.tgz", + "integrity": "sha512-6g1EwSs8cr8JhP1iBxzyVAWM6BIDvx9Y3FZRIQiMDzgG43Pxi8YkWOZ0nQj2NHgNzgXDZbJewFx/n+YAvMZrfg==", "engines": { - "node": ">=10.0.0" + "node": ">=14.6" } }, "node_modules/abbrev": { @@ -4360,11 +4426,6 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -4524,17 +4585,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/await-event-emitter": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/await-event-emitter/-/await-event-emitter-2.0.2.tgz", @@ -4649,11 +4699,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, "node_modules/bmp-ts": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/bmp-ts/-/bmp-ts-1.0.9.tgz", @@ -4698,7 +4743,9 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "optional": true, + "peer": true }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -4879,9 +4926,9 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "engines": { "node": ">=6.0" } @@ -5021,6 +5068,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "optional": true, + "peer": true, "engines": { "node": ">= 10" } @@ -5076,18 +5125,6 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "node_modules/consolidate": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz", - "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==", - "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog", - "dependencies": { - "bluebird": "^3.7.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -5184,16 +5221,6 @@ } } }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -5288,6 +5315,8 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "optional": true, + "peer": true, "engines": { "node": ">= 6" }, @@ -5357,14 +5386,6 @@ } } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -5530,9 +5551,18 @@ } }, "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } }, "node_modules/ee-first": { "version": "1.1.1", @@ -6832,11 +6862,11 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", + "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==", "engines": { - "node": ">= 8.0.0" + "node": ">= 18.0.0" }, "funding": { "url": "https://github.com/sponsors/gjtorikian/" @@ -7441,14 +7471,14 @@ } }, "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=10.0.0" } }, "node_modules/mime-db": { @@ -7811,12 +7841,9 @@ } }, "node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" }, "node_modules/node-fetch": { "version": "2.7.0", @@ -7870,9 +7897,9 @@ } }, "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "engines": { "node": ">=8" } @@ -7932,6 +7959,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "optional": true, + "peer": true, "dependencies": { "boolbase": "^1.0.0" }, @@ -8012,9 +8041,9 @@ } }, "node_modules/ordered-binary": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", - "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==" }, "node_modules/p2": { "version": "0.7.1", @@ -8276,14 +8305,83 @@ } }, "node_modules/posthtml-parser": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", - "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.12.1.tgz", + "integrity": "sha512-rYFmsDLfYm+4Ts2Oh4DCDSZPtdC1BLnRXAobypVzX9alj28KGl65dIFtgDY9zB57D0TC4Qxqrawuq/2et1P0GA==", + "dependencies": { + "htmlparser2": "^9.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/posthtml-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "dependencies": { - "htmlparser2": "^7.1.1" - }, - "engines": { - "node": ">=12" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/posthtml-render": { @@ -8975,6 +9073,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, "engines": { "node": ">=0.10.0" } @@ -8987,16 +9086,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -9016,11 +9105,6 @@ "memory-pager": "^1.0.2" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, "node_modules/sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", @@ -9040,12 +9124,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -9111,17 +9189,14 @@ } }, "node_modules/stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.63.0.tgz", + "integrity": "sha512-OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==", "dependencies": { - "css": "^3.0.0", - "debug": "~3.1.0", + "@adobe/css-tools": "~4.3.3", + "debug": "^4.3.2", "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", + "sax": "~1.3.0", "source-map": "^0.7.3" }, "bin": { @@ -9129,33 +9204,15 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://opencollective.com/stylus" } }, - "node_modules/stylus/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stylus/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/stylus/node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/stylus/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/stylus/node_modules/source-map": { "version": "0.7.4", @@ -9166,18 +9223,18 @@ } }, "node_modules/sugarss": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-3.0.3.tgz", - "integrity": "sha512-uxa2bbuc+w7ov7DyYIhF6bM0qZF3UkFT5/nE8AJgboiVnKsBDbwxs++dehEIe1JNhpMaGJc37wGQ2QrrWey2Sg==", - "dependencies": { - "postcss": "^8.1.6" - }, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-4.0.1.tgz", + "integrity": "sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==", "engines": { - "node": ">=10.0" + "node": ">=12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" } }, "node_modules/supports-color": { @@ -9747,6 +9804,11 @@ } }, "dependencies": { + "@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==" + }, "@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -10532,13 +10594,6 @@ "exif-parser": "^0.1.12", "file-type": "^16.0.0", "mime": "3" - }, - "dependencies": { - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" - } } }, "@jimp/diff": { @@ -10880,6 +10935,12 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@ladjs/consolidate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@ladjs/consolidate/-/consolidate-1.0.4.tgz", + "integrity": "sha512-ErvBg5acSqns86V/xW7gjqqnBBs6thnpMB0gGc3oM7WHsV8PWrnBtKI6dumHDT3UT/zEOfGzp7dmSFqWoCXKWQ==", + "requires": {} + }, "@lezer/common": { "version": "0.15.12", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", @@ -11125,524 +11186,415 @@ } }, "@parcel/bundler-default": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz", - "integrity": "sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==", - "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/graph": "3.2.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.13.2.tgz", + "integrity": "sha512-WY0LB1B7H6zIGXBtwssZRmzk788GzHoOGvMSIqgE/mZ0+jPF5V54zkjbhPBXj1fvoKOGlFy8Bm/gd/GnlQDdIg==", + "requires": { + "@parcel/diagnostic": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/cache": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz", - "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.13.2.tgz", + "integrity": "sha512-Y0nWlCMWDSp1lxiPI5zCWTGD0InnVZ+IfqeyLWmROAqValYyd0QZCvnSljKJ144jWTr0jXxDveir+DVF8sAYaA==", "requires": { - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/utils": "2.13.2", "lmdb": "2.8.5" } }, "@parcel/codeframe": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz", - "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.13.2.tgz", + "integrity": "sha512-qFMiS14orb6QSQj5/J/QN+gJElUfedVAKBTNkp9QB4i8ObdLHDqHRUzFb55ZQJI3G4vsxOOWAOUXGirtLwrxGQ==", "requires": { - "chalk": "^4.1.0" + "chalk": "^4.1.2" } }, "@parcel/compressor-raw": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz", - "integrity": "sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.13.2.tgz", + "integrity": "sha512-HX51w7WlgQY2f30p3Le1B5nFsUrtEA1phvWEwQDm1gEC6OPmDrxNsFLWx18JdGlKWTaPYbAGXRMSOjUWU41N9w==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/core": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz", - "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.13.2.tgz", + "integrity": "sha512-1zC5Au4z9or5XyP6ipfvJqHktuB0jD7WuxMcV1CWAZGARHKylLe+0ccl+Wx7HN5O+xAvfCDtTlKrATY8qyrIyw==", "requires": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/graph": "3.2.0", - "@parcel/logger": "2.12.0", - "@parcel/package-manager": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/cache": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/feature-flags": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/logger": "2.13.2", + "@parcel/package-manager": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "abortcontroller-polyfill": "^1.1.9", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "base-x": "^3.0.8", "browserslist": "^4.6.6", "clone": "^2.1.1", - "dotenv": "^7.0.0", - "dotenv-expand": "^5.1.0", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", "json5": "^2.2.0", "msgpackr": "^1.9.9", "nullthrows": "^1.1.1", "semver": "^7.5.2" - }, - "dependencies": { - "dotenv": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", - "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==" - } } }, "@parcel/diagnostic": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz", - "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.13.2.tgz", + "integrity": "sha512-6Au0JEJ5SY2gYrY0/m0i0sTuqTvK0k2E9azhBJR+zzCREbUxLiDdLZ+vXAfLW7t/kPAcWtdNU0Bj7pnZcMiMXg==", "requires": { "@mischnic/json-sourcemap": "^0.1.0", "nullthrows": "^1.1.1" } }, "@parcel/events": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz", - "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==" + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.13.2.tgz", + "integrity": "sha512-BVB9hW1RGh/tMaDHfpa+uIgz5PMULorCnjmWr/KvrlhdUSUQoaPYfRcTDYrKhoKuNIKsWSnTGvXrxE53L5qo0w==" + }, + "@parcel/feature-flags": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.13.2.tgz", + "integrity": "sha512-cCwDAKD4Er24EkuQ+loVZXSURpM0gAGRsLJVoBtFiCSbB3nmIJJ6FLRwSBI/5OsOUExiUXDvSpfUCA5ldGTzbw==" }, "@parcel/fs": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz", - "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==", - "requires": { - "@parcel/rust": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.2.tgz", + "integrity": "sha512-bdeIMuAXhMnROvqV55JWRUmjD438/T7h3r3NsFnkq+Mp4z2nuAn0STxbqDNxIgTMJHNunSDzncqRNMT7xJCe8A==", + "requires": { + "@parcel/feature-flags": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.12.0" + "@parcel/workers": "2.13.2" } }, "@parcel/graph": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz", - "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.3.2.tgz", + "integrity": "sha512-aAysQLRr8SOonSHWqdKHMJzfcrDFXKK8IYZEurlOzosiSgZXrAK7q8b8JcaJ4r84/jlvQYNYneNZeFQxKjHXkA==", "requires": { + "@parcel/feature-flags": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/logger": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz", - "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.13.2.tgz", + "integrity": "sha512-SFVABAMqaT9jIDn4maPgaQQauPDz8fpoKUGEuLF44Q0aQFbBUy7vX7KYs/EvYSWZo4VyJcUDHvIInBlepA0/ZQ==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2" } }, "@parcel/markdown-ansi": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz", - "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.13.2.tgz", + "integrity": "sha512-MIEoetfT/snk1GqWzBI3AhifV257i2xke9dvyQl14PPiMl+TlVhwnbQyA09WJBvDor+MuxZypHL7xoFdW8ff3A==", "requires": { - "chalk": "^4.1.0" + "chalk": "^4.1.2" } }, "@parcel/namer-default": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz", - "integrity": "sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.13.2.tgz", + "integrity": "sha512-wHaaJZcZEZUaCylC88PqjN4BybJhnkpP5RYg1xGWBTzdxhZthxvDbeOI+0YZ4jZXrLyVNjPyPRwyx0ETlq8MKA==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/node-resolver-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz", - "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.2.tgz", + "integrity": "sha512-SwnKLcZRG1VdB5JeM/Ax5VMWWh2QfXufmMQCKKx0/Kk41nUpie+aIZKj3LH6Z/fJsnKig/vXpeWoxGhmG523qg==", "requires": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "semver": "^7.5.2" } }, "@parcel/optimizer-css": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz", - "integrity": "sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.13.2.tgz", + "integrity": "sha512-V9JszWd1Lk3b/9hpfRp6U8lfOIaFPyevGFNTrT+CFMviuipCMWrkUgBa7wtFvqN1i8IJ5NV5FhIlc12qfBBBgA==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "browserslist": "^4.6.6", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" } }, "@parcel/optimizer-data-url": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-data-url/-/optimizer-data-url-2.12.0.tgz", - "integrity": "sha512-9g7+1bXZkLFFQ2cLm+CsiJzxMMSDxdo3w3xcqzIj5hcha22jaPP6N1weCAbfxkd6D8wgmljeNUzewFMT0Ob2FQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-data-url/-/optimizer-data-url-2.13.2.tgz", + "integrity": "sha512-y7ye3JnGAqA45Jg3Z3wrrPyssohFUTPjVW/2IA044infHnzrpDmIDnixjT8MuZsxJgbGAV9fgh1Ih00kBqP+UA==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "isbinaryfile": "^4.0.2", - "mime": "^2.4.4" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "isbinaryfile": "^5.0.2", + "mime": "^3.0.0" } }, "@parcel/optimizer-htmlnano": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz", - "integrity": "sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.13.2.tgz", + "integrity": "sha512-/ikDOZrnO4tdt99h34OyqnNIhugdeqWgnpfqEQ6Xi7odIn8OIGfwAHBXoyKRyUU8YUTqLhzOhckbSMwFTPRmXg==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "htmlnano": "^2.0.0", "nullthrows": "^1.1.1", - "posthtml": "^0.16.5", - "svgo": "^2.4.0" - }, - "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } + "posthtml": "^0.16.5" } }, "@parcel/optimizer-image": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz", - "integrity": "sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.13.2.tgz", + "integrity": "sha512-1BsQOPoSB0TBJJ40TiN+VS3YK2V4EMDtaOML1Bet2oTLMlL77vJG/xT5QHzhExYK+ZyFh2R0gq7deEKXNScBzg==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0" - } - }, - "@parcel/optimizer-svgo": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz", - "integrity": "sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==", - "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "svgo": "^2.4.0" - }, - "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2" } }, "@parcel/optimizer-swc": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz", - "integrity": "sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.13.2.tgz", + "integrity": "sha512-tyxXn36UAxZkAh+/cjvWwLCBkY+DL7+4G9NHWl5KeFqErc4diBox81Aiu8hnswNzFIg4ljn6f0rNpnWM3yfoMg==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", - "@swc/core": "^1.3.36", + "@parcel/utils": "2.13.2", + "@swc/core": "^1.7.26", "nullthrows": "^1.1.1" } }, "@parcel/package-manager": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz", - "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==", - "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/node-resolver-core": "3.3.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "@swc/core": "^1.3.36", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.2.tgz", + "integrity": "sha512-6HjfbdJUjHyNKzYB7GSYnOCtLwqCGW7yT95GlnnTKyFffvXYsqvBSyepMuPRlbX0mFUm4S9l2DH3OVZrk108AA==", + "requires": { + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/node-resolver-core": "3.4.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "@swc/core": "^1.7.26", "semver": "^7.5.2" } }, "@parcel/packager-css": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz", - "integrity": "sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.13.2.tgz", + "integrity": "sha512-agao71rIHU1lR776IMwxKvknl1/Yglhkr2qSY0JQC10PRQXHs7nj0GXd69p568W42A3/rkMWrXjWkGzhbAcPRg==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" } }, "@parcel/packager-html": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz", - "integrity": "sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.13.2.tgz", + "integrity": "sha512-RHoYR4sp5VZATQbKE2Rn7DrJKK7HnvUTKB0WPFSppWJbJrqrZgvVCqnBMI2FPkbCoznGdt20rQ1R6vs591fuxQ==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5" } }, "@parcel/packager-js": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz", - "integrity": "sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.13.2.tgz", + "integrity": "sha512-/dx19/vTCb4JIx/556hz6KEmwanasUNLAFsZ1PAm5AYDcoxJtHiNITRilA6JTlO+mdsERxOI5eE7tHCTou1ErQ==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", "globals": "^13.2.0", "nullthrows": "^1.1.1" } }, "@parcel/packager-raw": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz", - "integrity": "sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.13.2.tgz", + "integrity": "sha512-P+BnMZ3WS4F+Kpd+iv6PCfgyCftPGf8iGSQOCPkWb5fjuNjfvIzsq4WAW41FPbu788JwChev1O4zREYzlQjG2Q==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/packager-raw-url": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw-url/-/packager-raw-url-2.12.0.tgz", - "integrity": "sha512-sH7cvLbotS+qknhQUCGfd9mslQr4KcanlZE5CgzM0uGn3SnyZoKznqHrbouzgnIP/LHgXKOKmMaNjPLtVe4rcA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw-url/-/packager-raw-url-2.13.2.tgz", + "integrity": "sha512-+H4IqEU2Rcu+yZ08Ll6uyGd4PDTBM2xE/mEgM0Ne/vv96K51geFmLosiLI7/mTvS3Qw+YDw1l1NGmisT5Pgqqw==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" } }, "@parcel/packager-svg": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz", - "integrity": "sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.13.2.tgz", + "integrity": "sha512-K99yyQ1IsbQlGWYOLaxv/GGeWXDq0snbgGrCJvXFS8APZZ2CrXRm2634XLFkY3XA1cKqP47wz+KbibMT/+uaPQ==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", "posthtml": "^0.16.4" } }, "@parcel/packager-ts": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-ts/-/packager-ts-2.12.0.tgz", - "integrity": "sha512-8wR0BNN2NBD+IIU0tjioK+lRD4p2Qi/fKxDH5ixEW912tRV+Vd4kE8k++U6YQIpSlK4FRnjFod5zYYhNSLuiXg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-ts/-/packager-ts-2.13.2.tgz", + "integrity": "sha512-GTFdmHu+hqXghlc810KxaQn4qwmwwcBWVyTNUkp/da+I7+0+qE4NL2E3ELDuRVx/j8tC3AKUeU07ln1adDNjyQ==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/packager-wasm": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz", - "integrity": "sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.13.2.tgz", + "integrity": "sha512-XqFQQcQRgZLPHgLWsQmWHr47ebsu9F7hmpHS+hFNHda4zj7WDtw7r7n6/d8CEXzdI3agpxR3XKVZzx7nB6sQig==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/packager-xml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-xml/-/packager-xml-2.12.0.tgz", - "integrity": "sha512-k5/5IkvtmFGvgjDLZE6EVJBntxVfifUGw2UdM1DNChYdEuo18Ch3dcXTTRJim5wfjB0ZXscL12xV0JOeSiolSw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-xml/-/packager-xml-2.13.2.tgz", + "integrity": "sha512-6YpHBRIwZBnicr72JD7YRk14+SopttYe29I9wcMZCx+08lsyWcjpuCGiwJeT1oTeSD0jxZTyiRknBcO8dwVuFg==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@xmldom/xmldom": "^0.7.9" + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@xmldom/xmldom": "^0.9.3" } }, "@parcel/plugin": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz", - "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.13.2.tgz", + "integrity": "sha512-Q+RIENS1B185yLPhrGdzBK1oJrZmh/RXrYMnzJs78Tog8SpihjeNBNR6z4PT85o2F+Gy2y1S9A26fpiGq161qQ==", "requires": { - "@parcel/types": "2.12.0" + "@parcel/types": "2.13.2" } }, "@parcel/profiler": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz", - "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.13.2.tgz", + "integrity": "sha512-fur6Oq2HkX6AiM8rtqmDvldH5JWz0sqXA1ylz8cE3XOiDZIuvCulZmQ+hH+4odaNH6QocI1MwfV+GDh3HlQoCA==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/types-internal": "2.13.2", "chrome-trace-event": "^1.0.2" } }, "@parcel/reporter-dev-server": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz", - "integrity": "sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.13.2.tgz", + "integrity": "sha512-alWCPZiXEy5a1/mVnxQTJwJhWrnjaR+JOHQSu69eBGuWHqhXt2SCyKpczT08nm37GIxkhsiIaVR8sP4lVriApw==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" } }, "@parcel/resolver-default": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz", - "integrity": "sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.13.2.tgz", + "integrity": "sha512-8bMK04AxUmLF0+rsEl9u2LiboAsTjAemer9N/qMnWfsbxvEDunfTR39fwEEXpGAQV2sFb0ZPYtTxOc8bk5ygcQ==", "requires": { - "@parcel/node-resolver-core": "3.3.0", - "@parcel/plugin": "2.12.0" + "@parcel/node-resolver-core": "3.4.2", + "@parcel/plugin": "2.13.2" } }, "@parcel/runtime-browser-hmr": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz", - "integrity": "sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.13.2.tgz", + "integrity": "sha512-ByF8Ww1g6XbtwqBxNZrUz/j9EG0O7sqefkW7E2IWhlxFiNJakIrgaN5VKCBRRWaDvyAz0Kn6Md9e6GLmioRXkA==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" } }, "@parcel/runtime-js": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz", - "integrity": "sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.13.2.tgz", + "integrity": "sha512-DxRFW30RWM8noK1+yrqa+GYblMJabx6cg5Q7BI1SmTvVflomYVy2KEBVA161VZoxjHS6o0lToziAeVcUJT5GUQ==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/runtime-react-refresh": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz", - "integrity": "sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.13.2.tgz", + "integrity": "sha512-anLQUANkU++brMa7PWBmvbGDgaNMA9BP7vg/g22KI7w6nh9D3f4JBi/Vo4N66zHATpex41gAjGmFXcBtotc5bQ==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "react-error-overlay": "6.0.9", - "react-refresh": "^0.9.0" + "react-refresh": ">=0.9 <=0.14" } }, "@parcel/runtime-service-worker": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz", - "integrity": "sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.13.2.tgz", + "integrity": "sha512-EWn3eM5d81uL9+hXqAnuXo/6yq/7p1VEOKn83FEsbO4TAb6Pd25bJ0mPnWpewPcJBQUoPX3Wjx7VzVit7eeuYw==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/rust": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz", - "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==" + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.13.2.tgz", + "integrity": "sha512-XFIewSwxkrDYOnnSP/XZ1LDLdXTs7L9CjQUWtl46Vir5Pq/rinemwLJeKGIwKLHy7fhUZQjYxquH6fBL+AY8DA==" }, "@parcel/source-map": { "version": "2.1.1", @@ -11653,14 +11605,14 @@ } }, "@parcel/transformer-babel": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz", - "integrity": "sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.13.2.tgz", + "integrity": "sha512-2cHXLQ2+jeae+mImoaKTtkKhCKATaPY2+Pao0g3zh1xwhNu/08xj7upnbD548UEyEChUWn6IjWljDsx4y8Oa3w==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "browserslist": "^4.6.6", "json5": "^2.2.0", "nullthrows": "^1.1.1", @@ -11668,150 +11620,143 @@ } }, "@parcel/transformer-coffeescript": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.12.0.tgz", - "integrity": "sha512-F+xo76q/y28eMIR4NmIO0Gzdmr+nvrR8q+4KbIaMljLPRI3fuhKClF/TCCc8/HY1sC2DlGKSJFFanxovHsoYhQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.13.2.tgz", + "integrity": "sha512-BfMjKLIuIpA/dxlnJfjubPKMnE16l6h1hDfpsY/IxxE7JiwU8MIFcecvpB9X0w7x3OqRrj74aWBG17wFz0dlEA==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "coffeescript": "^2.0.3", "nullthrows": "^1.1.1", "semver": "^7.5.2" } }, "@parcel/transformer-css": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz", - "integrity": "sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.13.2.tgz", + "integrity": "sha512-QR9I4wYc+Tw7eET5ak3BvXLdsmDJGzq+Gd4KaULa0sNKioDUXCi79E5rGICW8E+BbHGKar7boNzk7HrNZX7PLg==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "browserslist": "^4.6.6", "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" } }, "@parcel/transformer-glsl": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-glsl/-/transformer-glsl-2.12.0.tgz", - "integrity": "sha512-aW87AaJZWASkTL1Dq2M2rSmKRIUd0q6gJx5yd9jKIEmAI47ffFUGCPjvQNecHCGkgO0GBCeINtOShz7MThKvjg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-glsl/-/transformer-glsl-2.13.2.tgz", + "integrity": "sha512-YE8FfV0z8B4W324jtMaVBvbUN8BWUCQN4hRSaoJZyMBlrcrH6SzKL85v5ZH424mMLQjbbUytziI2EWYL4Gm8lg==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "glslify-bundle": "^5.1.1", "glslify-deps": "^1.3.2" } }, "@parcel/transformer-graphql": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-graphql/-/transformer-graphql-2.12.0.tgz", - "integrity": "sha512-o4A/Vl5fnekVV+Ft7OskbXHjxs3ve72ew5NBwQ0sx3oNcoYmAbepP5iH2Mh7G2bjeUCNYWE5z+jnO0FNM53QWw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-graphql/-/transformer-graphql-2.13.2.tgz", + "integrity": "sha512-6AA/lQZy8XoxmJZq91GXIL3qLHoDt8xt2pzANItASf2PoUrOIUojYCtN7khB06SaD5gyY2EBYTQL8ohYi+a0Iw==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "graphql": "^15.0.0", "graphql-import-macro": "^1.0.0" } }, "@parcel/transformer-html": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz", - "integrity": "sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.13.2.tgz", + "integrity": "sha512-LlQHODz/R832ZuRkCGlOQe+TF1BR9nriUcVSc2Z7q5xQ/HblNPrVvvLDBcXG7xRToawS1y6jXG0Tihv47AykfQ==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", - "posthtml-parser": "^0.10.1", + "posthtml-parser": "^0.12.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2", "srcset": "4" } }, "@parcel/transformer-image": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz", - "integrity": "sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.13.2.tgz", + "integrity": "sha512-sHk9UmJIPEGil+8ulK+Mi4BArbSuMPTXrY1z3EP4pKGHPCMABNKIRiricngvxCW1eVZrxSokeHQe2jYWJ4tAtA==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/transformer-inline-string": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-inline-string/-/transformer-inline-string-2.12.0.tgz", - "integrity": "sha512-FawH7Hgc7E8/Uc0t1UlFT2AdKdEQysu6OJp88NJixAqNhZT7G24OtKltM+VyayPxQZyLblPcp6TnYpY+Tz9VGA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-inline-string/-/transformer-inline-string-2.13.2.tgz", + "integrity": "sha512-FwRqLfoIriLavfG3QhzbYenA/CdWWGZD29dwG7+1/DmOcczfq8KfVKe/vad4psqmLWGJLJcWbTXs5Zq6UKRzYw==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/transformer-js": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz", - "integrity": "sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.13.2.tgz", + "integrity": "sha512-mn5DL+59x0FHeHKWOstZuKcz4rcVnZUAkXMPtERgXa0ggjJ1CgVOc26VD68sszC/aiF6yathz/LJtJpyluniLQ==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "@swc/helpers": "^0.5.0", "browserslist": "^4.6.6", "nullthrows": "^1.1.1", - "regenerator-runtime": "^0.13.7", + "regenerator-runtime": "^0.14.1", "semver": "^7.5.2" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - } } }, "@parcel/transformer-json": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz", - "integrity": "sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.13.2.tgz", + "integrity": "sha512-AiLyWPnHaNvO9sGykYF15S3jzyQY0vSw3xQPj/xhDRv7IXQyt3y1zTtJmQsp/ri9vIzf2CruD42UXiaSPpbA8A==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "json5": "^2.2.0" } }, "@parcel/transformer-jsonld": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-jsonld/-/transformer-jsonld-2.12.0.tgz", - "integrity": "sha512-f/k8ODjthQt83yq1K11MibgVVIBXWr5JDvWuWOcbOKel0AmSbTYB3fb2kYGDSGkQ9XElUvRDaOfecb8GN8am8g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-jsonld/-/transformer-jsonld-2.13.2.tgz", + "integrity": "sha512-rQyZvHQ9//OTjvErvcVIrGf/1nuK21wLVKmWZaUwv8pdEv+4SngB261LaVwNhnr0wXt+p7WxeaexfJCz0rAWsw==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/types": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", "json5": "^2.2.0" } }, "@parcel/transformer-less": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-less/-/transformer-less-2.12.0.tgz", - "integrity": "sha512-eBgDLKX+5HU2IhZxdKabUflt2Aza8ZlV70G95GPZAW80PKlXPHxI10JTlYLAUiUy3G38TM3dvL6W0FhtCRbgSQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-less/-/transformer-less-2.13.2.tgz", + "integrity": "sha512-gOChha5J1R7b3MzBFe5JrfH2cBrIm+SuKZRzboC7JaUIUEZr38cUjRq00dj6kb8Y95nFvFw8G7ORqHl9x9uXAA==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", "less": "^4.1.1" } }, "@parcel/transformer-postcss": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz", - "integrity": "sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==", - "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.13.2.tgz", + "integrity": "sha512-srcKQcTaaCGutcvpWeTue4/bScPJK3nXyql2QVNneufqxTQsOZcZg8lFaMc3ma6WjQn/m2emQC26eivr3MOhDg==", + "requires": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "clone": "^2.1.1", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", @@ -11819,238 +11764,226 @@ } }, "@parcel/transformer-posthtml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz", - "integrity": "sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.13.2.tgz", + "integrity": "sha512-pNvxKp7GWLKSbyV2xRaGWZNV/ut8uetMfbwpcGxboxgq5TV9dqnHxRGzsTvZTo7yHqQ3N6hycoGh+w8L/8sg8Q==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", - "posthtml-parser": "^0.10.1", + "posthtml-parser": "^0.12.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2" } }, "@parcel/transformer-pug": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-pug/-/transformer-pug-2.12.0.tgz", - "integrity": "sha512-aiWpfPYIhAAhYU+A29pHMMSc/HE688djX3olVc3MJXjQH49j4XUF1u4QnqMTTrKPHYgSQCXxdGWWljoifMH4iQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-pug/-/transformer-pug-2.13.2.tgz", + "integrity": "sha512-OJfxcR3aYKvPAYdSJPAiFpgtPxyubSQBhOq2e+w+u6dyfxKr/ZrNCCFi0Kvuhhcxu+p7PWanl0PfLODg4Piz/w==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "pug": "^3.0.2" } }, "@parcel/transformer-raw": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz", - "integrity": "sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.13.2.tgz", + "integrity": "sha512-KsTasFp+jwkGjBLrHO6oiqIIwOeiyNPx5NawmIzXUuGvQv6UhTSayk3NnFxteOVXzy5C9GfrQ5W+IBrHe6JWaw==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/transformer-react-refresh-wrap": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz", - "integrity": "sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.13.2.tgz", + "integrity": "sha512-2UuuzHzpUx8Z0muoM3cETa7PDRJIG9a5nxPaTBZttT5ucprskITakky5pzsd4gabmNzWfZ5raRG5ixV3zOSL5A==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "react-refresh": "^0.9.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "react-refresh": ">=0.9 <=0.14" } }, "@parcel/transformer-sass": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.12.0.tgz", - "integrity": "sha512-xLLoSLPST+2AHJwFRLl4foArDjjy6P1RChP3TxMU2MVS1sbKGJnfFhFpHAacH8ASjuGtu5rbpfpHRZePlvoZxw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.13.2.tgz", + "integrity": "sha512-FemdyKa6wvkitG2DQgkDI6NkyJCsQ2My/z3idcFAyf8kb3KBIJ+a0ZK4QALvLnJiC9ugeIKsZk5uFjoJAHX1XQ==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", "sass": "^1.38.0" } }, "@parcel/transformer-stylus": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-stylus/-/transformer-stylus-2.12.0.tgz", - "integrity": "sha512-sqhYAodncAj5KG7UG4zb9pMspCAA5xSX4fIosIvpEqbTLGaVdxSQ8qZk+8mv5879Q8x0xsQGxFFwNJx5ZEiYMg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-stylus/-/transformer-stylus-2.13.2.tgz", + "integrity": "sha512-pgK88lZychWqfuF+BWh4nrek/P1mq+JK8e5Td+ZlOFTbaTa1r3ayChkSTWJAjAXuyqg8SaDyqnVVT2NUs1qE6w==", "requires": { - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0", - "stylus": "^0.55.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "stylus": "^0.63.0" } }, "@parcel/transformer-sugarss": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sugarss/-/transformer-sugarss-2.12.0.tgz", - "integrity": "sha512-gpKzN4zOXCVlgeGq59yPfJWtFi94niwfSF9h1LdVKqrPH1Bc5xvza0felxVTcpSAu0IhgTUXZJx5Hsjgbp4XJg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sugarss/-/transformer-sugarss-2.13.2.tgz", + "integrity": "sha512-IQCGXqdcQ6d07wqHd/Ui1izWaEgzFNuypnJpstg8rvCevHRbrj8aH4x2THuQznbHeBZd1ER9eawqNZrL5hO54g==", "requires": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "postcss": "^8.4.5", - "sugarss": "^3.0.3" + "sugarss": "^4.0.1" } }, "@parcel/transformer-svg": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz", - "integrity": "sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.13.2.tgz", + "integrity": "sha512-ANwWE4/n4rXrlbmY3iT18ndlxlLP1ubapR1wYL9bpp2cKA8ny2tCe5wlzLxBAfwcZx8cd15N/5v/ZwS6xt6BXw==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", - "posthtml-parser": "^0.10.1", + "posthtml-parser": "^0.12.1", "posthtml-render": "^3.0.0", "semver": "^7.5.2" } }, "@parcel/transformer-toml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-toml/-/transformer-toml-2.12.0.tgz", - "integrity": "sha512-v+7U0UD+qLKzSWVfl7KUSVBTgw9aZiy/XJ6OfeSrWHovuZXVA4EsFYibrhHdM9B3WEUXemVmJc5fWA5vXrPkXA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-toml/-/transformer-toml-2.13.2.tgz", + "integrity": "sha512-72lZHqdAuiyKx9X5qFtqTBjhcz0kAoQ//7bs98PMVjtI7iFpYNBwkd71YBBkEOAaw+NtDEwelQgMopQWuimqog==", "requires": { "@iarna/toml": "^2.2.3", - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/transformer-typescript-types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.12.0.tgz", - "integrity": "sha512-uxF4UBMYvbjiV3zHTWMrZX8cFD92VUvD3ArcGi5WEtuVROUm9Sc47o0mOzxKfMFlJu2KOfZVHYlzK9f/UKA2kQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.13.2.tgz", + "integrity": "sha512-EUtWLnvZuw1CiOhlgU0WEo7QHE7G0RTPyWpmMHWJljCsvpTeAlfU12V2ko2tmtFNp9F8JiwBhP0+od5+f5LlBA==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/ts-utils": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/ts-utils": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" } }, "@parcel/transformer-vue": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-vue/-/transformer-vue-2.12.0.tgz", - "integrity": "sha512-WZNlNUDymAD+3b2BOGHRsW66rlmW7E9QXa6CTrkPnR6gXX1c9lY7srxSt1Lb+c8zDJHr4Gw7Y0kz8gj921S/aQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-vue/-/transformer-vue-2.13.2.tgz", + "integrity": "sha512-LTdJuEf8ZLJ40YQNczSKfGG7A++QzDKctk/pkk8WxkCWqbD5LkyM0kMLVhMYxiNEacU5zCDKdjvma3HUiu8CIA==", "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", + "@ladjs/consolidate": "^1.0.3", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.12.0", + "@parcel/utils": "2.13.2", "@vue/compiler-sfc": "^3.2.27", - "consolidate": "^0.16.0", "nullthrows": "^1.1.1", "semver": "^7.5.2" } }, "@parcel/transformer-webmanifest": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-webmanifest/-/transformer-webmanifest-2.12.0.tgz", - "integrity": "sha512-suiUv9DDEpyryHtzahbIeJSZTIeE/t4cdrU0Ikb/O46wsy5RLo59nE4E6TGWM84R7fQO8m/MhzeQM5Y3NV6jKg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-webmanifest/-/transformer-webmanifest-2.13.2.tgz", + "integrity": "sha512-nHAvJcBspGn6E4ctIV7lYiGSXKmwCGk7sV4KKorLj6O1b8kO3h9azKnuKBPq0x3Lfq6OdF7RluejsKhZF8mgDQ==", "requires": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/utils": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" } }, "@parcel/transformer-worklet": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-worklet/-/transformer-worklet-2.12.0.tgz", - "integrity": "sha512-+IodC0EUN0mHfLOEsrUPK0lr1b5fSvZfAXh+FMqiXvJo4jziRq5Lb+HZbgCfp5DnD5BH0VxLAxdd8QUyAt4Gog==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-worklet/-/transformer-worklet-2.13.2.tgz", + "integrity": "sha512-/EI8h6ROJZkET44u3g9+vEiLrvOJs26ebjEcRVJPumMc6t9lyJtFO3wfOa5h4gtlrbd72HDcbgPumEugNEnziQ==", "requires": { - "@parcel/plugin": "2.12.0" + "@parcel/plugin": "2.13.2" } }, "@parcel/transformer-xml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-xml/-/transformer-xml-2.12.0.tgz", - "integrity": "sha512-iey1GEg1LJ7M9y/4TPHoYskf3Hi8uIkQl+yCIzRQahlZWdw4PoNKGeWt1khh9FzhF6K0SvUUDVfRmmuOkqJIhw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-xml/-/transformer-xml-2.13.2.tgz", + "integrity": "sha512-DXs3z4b6jytkQ6kI7qhQOK7tOMQRO4YNtjwUC4kGU0FNEaE7F3O7y4NJis0SagGiWZZ9vt4O45oFimLASk7BIA==", "requires": { - "@parcel/plugin": "2.12.0", - "@xmldom/xmldom": "^0.7.9" + "@parcel/plugin": "2.13.2", + "@xmldom/xmldom": "^0.9.3" } }, "@parcel/transformer-yaml": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-yaml/-/transformer-yaml-2.12.0.tgz", - "integrity": "sha512-iD43BNH7rtQdIDzV6mgHLrAgHo4BLFxzSF10rXR225mzQi+TPiKDmW/nPr6aW7Tne544qTkRYmoCARC5X/S++w==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-yaml/-/transformer-yaml-2.13.2.tgz", + "integrity": "sha512-hAeCZqh3MbrtlsoLO4KML0hgI51UB/A3tnq0xUQKVRKkq6qerE3VHU7GurMIsAl4q1DZrH/T3N5sTp1RMXGPmQ==", "requires": { - "@parcel/plugin": "2.12.0", - "js-yaml": "^3.10.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } + "@parcel/plugin": "2.13.2", + "js-yaml": "^4.1.0" } }, "@parcel/ts-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.12.0.tgz", - "integrity": "sha512-zou+W6dcqnXXUOfN5zGM+ePIWbYOhGp8bVB2jICoNkoKmNAHd4l4zeHl5yQXnbZfynVw88cZVqxtXS8tYebelg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.13.2.tgz", + "integrity": "sha512-wj6trzSaZ7nHDzx5zVQfs467WrA3p7g6bos7Opr8nTw5V1qACXa03C9ccRiEUmR0i+Bk8kEZKUunswhjBiPuHg==", "requires": { "nullthrows": "^1.1.1" } }, "@parcel/types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz", - "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==", - "requires": { - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/package-manager": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.13.2.tgz", + "integrity": "sha512-6ixqjk2pjKELn4sQ/jdvpbCVTeH6xXQTdotkN8Wzk68F2K2MtSPIRAEocumlexScfffbRQplr2MdIf1JJWLogA==", + "requires": { + "@parcel/types-internal": "2.13.2", + "@parcel/workers": "2.13.2" + } + }, + "@parcel/types-internal": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.13.2.tgz", + "integrity": "sha512-j0zb3WNM8O/+d8CArll7/4w4AyBED3Jbo32/unz89EPVN0VklmgBrRCAI5QXDKuJAGdAZSL5/a8bNYbwl7/Wxw==", + "requires": { + "@parcel/diagnostic": "2.13.2", + "@parcel/feature-flags": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.12.0", "utility-types": "^3.10.0" } }, "@parcel/utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz", - "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==", - "requires": { - "@parcel/codeframe": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/markdown-ansi": "2.12.0", - "@parcel/rust": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.13.2.tgz", + "integrity": "sha512-BkFtRo5xenmonwnBy+X4sVbHIRrx+ZHMPpS/6hFqyTvoUUFq2yTFQnfRGVVOOvscVUxpGom+kewnrTG3HHbZoA==", + "requires": { + "@parcel/codeframe": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/markdown-ansi": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "chalk": "^4.1.0", + "chalk": "^4.1.2", "nullthrows": "^1.1.1" } }, "@parcel/watcher": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz", - "integrity": "sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==", - "requires": { - "@parcel/watcher-android-arm64": "2.4.0", - "@parcel/watcher-darwin-arm64": "2.4.0", - "@parcel/watcher-darwin-x64": "2.4.0", - "@parcel/watcher-freebsd-x64": "2.4.0", - "@parcel/watcher-linux-arm-glibc": "2.4.0", - "@parcel/watcher-linux-arm64-glibc": "2.4.0", - "@parcel/watcher-linux-arm64-musl": "2.4.0", - "@parcel/watcher-linux-x64-glibc": "2.4.0", - "@parcel/watcher-linux-x64-musl": "2.4.0", - "@parcel/watcher-win32-arm64": "2.4.0", - "@parcel/watcher-win32-ia32": "2.4.0", - "@parcel/watcher-win32-x64": "2.4.0", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "requires": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0", "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", @@ -12058,87 +11991,93 @@ } }, "@parcel/watcher-android-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz", - "integrity": "sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "optional": true }, "@parcel/watcher-darwin-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz", - "integrity": "sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", "optional": true }, "@parcel/watcher-darwin-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz", - "integrity": "sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", "optional": true }, "@parcel/watcher-freebsd-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz", - "integrity": "sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", "optional": true }, "@parcel/watcher-linux-arm-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz", - "integrity": "sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "optional": true + }, + "@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", "optional": true }, "@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz", - "integrity": "sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", "optional": true }, "@parcel/watcher-linux-arm64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz", - "integrity": "sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", "optional": true }, "@parcel/watcher-linux-x64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz", - "integrity": "sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", "optional": true }, "@parcel/watcher-linux-x64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz", - "integrity": "sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", "optional": true }, "@parcel/watcher-win32-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz", - "integrity": "sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", "optional": true }, "@parcel/watcher-win32-ia32": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz", - "integrity": "sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", "optional": true }, "@parcel/watcher-win32-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz", - "integrity": "sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", "optional": true }, "@parcel/workers": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz", - "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==", - "requires": { - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.13.2.tgz", + "integrity": "sha512-P78BpH0yTT9KK09wgK4eabtlb5OlcWAmZebOToN5UYuwWEylKt0gWZx1+d+LPQupvK84/iZ+AutDScsATjgUMw==", + "requires": { + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" } }, @@ -12331,82 +12270,82 @@ } }, "@swc/core": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.0.tgz", - "integrity": "sha512-wc5DMI5BJftnK0Fyx9SNJKkA0+BZSJQx8430yutWmsILkHMBD3Yd9GhlMaxasab9RhgKqZp7Ht30hUYO5ZDvQg==", - "requires": { - "@swc/core-darwin-arm64": "1.4.0", - "@swc/core-darwin-x64": "1.4.0", - "@swc/core-linux-arm-gnueabihf": "1.4.0", - "@swc/core-linux-arm64-gnu": "1.4.0", - "@swc/core-linux-arm64-musl": "1.4.0", - "@swc/core-linux-x64-gnu": "1.4.0", - "@swc/core-linux-x64-musl": "1.4.0", - "@swc/core-win32-arm64-msvc": "1.4.0", - "@swc/core-win32-ia32-msvc": "1.4.0", - "@swc/core-win32-x64-msvc": "1.4.0", - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.9.3.tgz", + "integrity": "sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==", + "requires": { + "@swc/core-darwin-arm64": "1.9.3", + "@swc/core-darwin-x64": "1.9.3", + "@swc/core-linux-arm-gnueabihf": "1.9.3", + "@swc/core-linux-arm64-gnu": "1.9.3", + "@swc/core-linux-arm64-musl": "1.9.3", + "@swc/core-linux-x64-gnu": "1.9.3", + "@swc/core-linux-x64-musl": "1.9.3", + "@swc/core-win32-arm64-msvc": "1.9.3", + "@swc/core-win32-ia32-msvc": "1.9.3", + "@swc/core-win32-x64-msvc": "1.9.3", + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.17" } }, "@swc/core-darwin-arm64": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.0.tgz", - "integrity": "sha512-UTJ/Vz+s7Pagef6HmufWt6Rs0aUu+EJF4Pzuwvr7JQQ5b1DZeAAUeUtkUTFx/PvCbM8Xfw4XdKBUZfrIKCfW8A==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.3.tgz", + "integrity": "sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.0.tgz", - "integrity": "sha512-f8v58u2GsGak8EtZFN9guXqE0Ep10Suny6xriaW2d8FGqESPyNrnBzli3aqkSeQk5gGqu2zJ7WiiKp3XoUOidA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.9.3.tgz", + "integrity": "sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.0.tgz", - "integrity": "sha512-q2KAkBzmPcTnRij/Y1fgHCKAGevUX/H4uUESrw1J5gmUg9Qip6onKV80lTumA1/aooGJ18LOsB31qdbwmZk9OA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.3.tgz", + "integrity": "sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.0.tgz", - "integrity": "sha512-SknGu96W0mzHtLHWm+62fk5+Omp9fMPFO7AWyGFmz2tr8EgRRXtTSrBUnWhAbgcalnhen48GsvtMdxf1KNputg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.3.tgz", + "integrity": "sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.0.tgz", - "integrity": "sha512-/k3TDvpBRMDNskHooNN1KqwUhcwkfBlIYxRTnJvsfT2C7My4pffR+4KXmt0IKynlTTbCdlU/4jgX4801FSuliw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.3.tgz", + "integrity": "sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.0.tgz", - "integrity": "sha512-GYsTMvNt5+WTVlwwQzOOWsPMw6P/F41u5PGHWmfev8Nd4QJ1h3rWPySKk4mV42IJwH9MgQCVSl3ygwNqwl6kFg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.3.tgz", + "integrity": "sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.0.tgz", - "integrity": "sha512-jGVPdM/VwF7kK/uYRW5N6FwzKf/FnDjGIR3RPvQokjYJy7Auk+3Oj21C0Jev7sIT9RYnO/TrFEoEozKeD/z2Qw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.3.tgz", + "integrity": "sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.0.tgz", - "integrity": "sha512-biHYm1AronEKlt47O/H8sSOBM2BKXMmWT+ApvlxUw50m1RGNnVnE0bgY7tylFuuSiWyXsQPJbmUV708JqORXVg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.3.tgz", + "integrity": "sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.0.tgz", - "integrity": "sha512-TL5L2tFQb19kJwv6+elToGBj74QXCn9j+hZfwQatvZEJRA5rDK16eH6oAE751dGUArhnWlW3Vj65hViPvTuycw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.3.tgz", + "integrity": "sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.0.tgz", - "integrity": "sha512-e2xVezU7XZ2Stzn4i7TOQe2Kn84oYdG0M3A7XI7oTdcpsKCcKwgiMoroiAhqCv+iN20KNqhnWwJiUiTj/qN5AA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.3.tgz", + "integrity": "sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==", "optional": true }, "@swc/counter": { @@ -12423,9 +12362,12 @@ } }, "@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==" + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "requires": { + "@swc/counter": "^0.1.3" + } }, "@tokenizer/token": { "version": "0.3.0", @@ -12435,7 +12377,9 @@ "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "optional": true, + "peer": true }, "@types/node": { "version": "18.11.10", @@ -12522,20 +12466,15 @@ "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" }, "@xmldom/xmldom": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", - "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==" + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.5.tgz", + "integrity": "sha512-6g1EwSs8cr8JhP1iBxzyVAWM6BIDvx9Y3FZRIQiMDzgG43Pxi8YkWOZ0nQj2NHgNzgXDZbJewFx/n+YAvMZrfg==" }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" - }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -12653,11 +12592,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, "await-event-emitter": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/await-event-emitter/-/await-event-emitter-2.0.2.tgz", @@ -12748,11 +12682,6 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, "bmp-ts": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/bmp-ts/-/bmp-ts-1.0.9.tgz", @@ -12795,7 +12724,9 @@ "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "optional": true, + "peer": true }, "brace-expansion": { "version": "1.1.11", @@ -12908,9 +12839,9 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==" }, "cliui": { "version": "8.0.1", @@ -13003,7 +12934,9 @@ "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "optional": true, + "peer": true }, "concat-map": { "version": "0.0.1", @@ -13055,14 +12988,6 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "consolidate": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz", - "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==", - "requires": { - "bluebird": "^3.7.2" - } - }, "constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -13128,16 +13053,6 @@ "path-type": "^4.0.0" } }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, "css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -13209,7 +13124,9 @@ "css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "optional": true, + "peer": true }, "csso": { "version": "5.0.5", @@ -13259,11 +13176,6 @@ "ms": "2.1.2" } }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - }, "deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -13373,9 +13285,12 @@ "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" }, "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "requires": { + "dotenv": "^16.4.5" + } }, "ee-first": { "version": "1.1.1", @@ -14364,9 +14279,9 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==" + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", + "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==" }, "jimp": { "version": "1.6.0", @@ -14745,9 +14660,9 @@ "integrity": "sha512-dnkvm+xJifwjPEkwipKPpbVEeW7XL3w06yREQiUxGQwcnVowpt+tYFelgr5dnPTpARFNoP5Lc0qTlpWaXVRsxA==" }, "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" }, "mime-db": { "version": "1.52.0", @@ -15009,9 +14924,9 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" }, "node-fetch": { "version": "2.7.0", @@ -15051,9 +14966,9 @@ }, "dependencies": { "detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==" } } }, @@ -15100,6 +15015,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "optional": true, + "peer": true, "requires": { "boolbase": "^1.0.0" } @@ -15156,9 +15073,9 @@ } }, "ordered-binary": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", - "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==" }, "p2": { "version": "0.7.1", @@ -15350,11 +15267,57 @@ } }, "posthtml-parser": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", - "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.12.1.tgz", + "integrity": "sha512-rYFmsDLfYm+4Ts2Oh4DCDSZPtdC1BLnRXAobypVzX9alj28KGl65dIFtgDY9zB57D0TC4Qxqrawuq/2et1P0GA==", "requires": { - "htmlparser2": "^7.1.1" + "htmlparser2": "^9.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + } } }, "posthtml-render": { @@ -15876,22 +15839,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true }, "source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -15911,11 +15866,6 @@ "memory-pager": "^1.0.2" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, "sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", @@ -15926,11 +15876,6 @@ "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==" }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -15977,42 +15922,21 @@ } }, "stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.63.0.tgz", + "integrity": "sha512-OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==", "requires": { - "css": "^3.0.0", - "debug": "~3.1.0", + "@adobe/css-tools": "~4.3.3", + "debug": "^4.3.2", "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", + "sax": "~1.3.0", "source-map": "^0.7.3" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "source-map": { "version": "0.7.4", @@ -16022,12 +15946,10 @@ } }, "sugarss": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-3.0.3.tgz", - "integrity": "sha512-uxa2bbuc+w7ov7DyYIhF6bM0qZF3UkFT5/nE8AJgboiVnKsBDbwxs++dehEIe1JNhpMaGJc37wGQ2QrrWey2Sg==", - "requires": { - "postcss": "^8.1.6" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-4.0.1.tgz", + "integrity": "sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==", + "requires": {} }, "supports-color": { "version": "7.2.0", diff --git a/package.json b/package.json index b376968e..fc2c299e 100644 --- a/package.json +++ b/package.json @@ -46,59 +46,58 @@ "@colyseus/monitor": "0.15.8", "@colyseus/schema": "2.0.36", "@colyseus/ws-transport": "0.15.3", - "@parcel/bundler-default": "2.12.0", - "@parcel/compressor-raw": "2.12.0", - "@parcel/core": "2.12.0", - "@parcel/namer-default": "2.12.0", - "@parcel/optimizer-css": "2.12.0", - "@parcel/optimizer-data-url": "2.12.0", - "@parcel/optimizer-htmlnano": "2.12.0", - "@parcel/optimizer-image": "2.12.0", - "@parcel/optimizer-svgo": "2.12.0", - "@parcel/optimizer-swc": "2.12.0", - "@parcel/packager-css": "2.12.0", - "@parcel/packager-html": "2.12.0", - "@parcel/packager-js": "2.12.0", - "@parcel/packager-raw": "2.12.0", - "@parcel/packager-raw-url": "2.12.0", - "@parcel/packager-svg": "2.12.0", - "@parcel/packager-ts": "2.12.0", - "@parcel/packager-wasm": "2.12.0", - "@parcel/packager-xml": "2.12.0", - "@parcel/reporter-dev-server": "2.12.0", - "@parcel/resolver-default": "2.12.0", - "@parcel/runtime-browser-hmr": "2.12.0", - "@parcel/runtime-js": "2.12.0", - "@parcel/runtime-react-refresh": "2.12.0", - "@parcel/runtime-service-worker": "2.12.0", - "@parcel/transformer-babel": "2.12.0", - "@parcel/transformer-coffeescript": "2.12.0", - "@parcel/transformer-css": "2.12.0", - "@parcel/transformer-glsl": "2.12.0", - "@parcel/transformer-graphql": "2.12.0", - "@parcel/transformer-html": "2.12.0", - "@parcel/transformer-image": "2.12.0", - "@parcel/transformer-inline-string": "2.12.0", - "@parcel/transformer-js": "2.12.0", - "@parcel/transformer-json": "2.12.0", - "@parcel/transformer-jsonld": "2.12.0", - "@parcel/transformer-less": "2.12.0", - "@parcel/transformer-postcss": "2.12.0", - "@parcel/transformer-posthtml": "2.12.0", - "@parcel/transformer-pug": "2.12.0", - "@parcel/transformer-raw": "2.12.0", - "@parcel/transformer-react-refresh-wrap": "2.12.0", - "@parcel/transformer-sass": "2.12.0", - "@parcel/transformer-stylus": "2.12.0", - "@parcel/transformer-sugarss": "2.12.0", - "@parcel/transformer-svg": "2.12.0", - "@parcel/transformer-toml": "2.12.0", - "@parcel/transformer-typescript-types": "2.12.0", - "@parcel/transformer-vue": "2.12.0", - "@parcel/transformer-webmanifest": "2.12.0", - "@parcel/transformer-worklet": "2.12.0", - "@parcel/transformer-xml": "2.12.0", - "@parcel/transformer-yaml": "2.12.0", + "@parcel/bundler-default": "2.13.2", + "@parcel/compressor-raw": "2.13.2", + "@parcel/core": "2.13.2", + "@parcel/namer-default": "2.13.2", + "@parcel/optimizer-css": "2.13.2", + "@parcel/optimizer-data-url": "2.13.2", + "@parcel/optimizer-htmlnano": "2.13.2", + "@parcel/optimizer-image": "2.13.2", + "@parcel/optimizer-swc": "2.13.2", + "@parcel/packager-css": "2.13.2", + "@parcel/packager-html": "2.13.2", + "@parcel/packager-js": "2.13.2", + "@parcel/packager-raw": "2.13.2", + "@parcel/packager-raw-url": "2.13.2", + "@parcel/packager-svg": "2.13.2", + "@parcel/packager-ts": "2.13.2", + "@parcel/packager-wasm": "2.13.2", + "@parcel/packager-xml": "2.13.2", + "@parcel/reporter-dev-server": "2.13.2", + "@parcel/resolver-default": "2.13.2", + "@parcel/runtime-browser-hmr": "2.13.2", + "@parcel/runtime-js": "2.13.2", + "@parcel/runtime-react-refresh": "2.13.2", + "@parcel/runtime-service-worker": "2.13.2", + "@parcel/transformer-babel": "2.13.2", + "@parcel/transformer-coffeescript": "2.13.2", + "@parcel/transformer-css": "2.13.2", + "@parcel/transformer-glsl": "2.13.2", + "@parcel/transformer-graphql": "2.13.2", + "@parcel/transformer-html": "2.13.2", + "@parcel/transformer-image": "2.13.2", + "@parcel/transformer-inline-string": "2.13.2", + "@parcel/transformer-js": "2.13.2", + "@parcel/transformer-json": "2.13.2", + "@parcel/transformer-jsonld": "2.13.2", + "@parcel/transformer-less": "2.13.2", + "@parcel/transformer-postcss": "2.13.2", + "@parcel/transformer-posthtml": "2.13.2", + "@parcel/transformer-pug": "2.13.2", + "@parcel/transformer-raw": "2.13.2", + "@parcel/transformer-react-refresh-wrap": "2.13.2", + "@parcel/transformer-sass": "2.13.2", + "@parcel/transformer-stylus": "2.13.2", + "@parcel/transformer-sugarss": "2.13.2", + "@parcel/transformer-svg": "2.13.2", + "@parcel/transformer-toml": "2.13.2", + "@parcel/transformer-typescript-types": "2.13.2", + "@parcel/transformer-vue": "2.13.2", + "@parcel/transformer-webmanifest": "2.13.2", + "@parcel/transformer-worklet": "2.13.2", + "@parcel/transformer-xml": "2.13.2", + "@parcel/transformer-yaml": "2.13.2", "@reldens/game-data-generator": "^0.9.0", "@reldens/items-system": "^0.34.0", "@reldens/modifiers": "^0.26.0", From 4b548d0de0989caa9ad30846bed9f9f5a18835ec Mon Sep 17 00:00:00 2001 From: "Damian A. Pastorini" Date: Tue, 3 Dec 2024 20:49:24 +0100 Subject: [PATCH 39/39] - Reldens - v4.0.0 - Commented logs. --- lib/actions/server/pve.js | 2 +- lib/import/server/skills-importer.js | 2 +- lib/objects/server/object/type/animation-object.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/actions/server/pve.js b/lib/actions/server/pve.js index 0896d085..d6036b48 100644 --- a/lib/actions/server/pve.js +++ b/lib/actions/server/pve.js @@ -31,7 +31,7 @@ class Pve extends Battle { //Logger.debug('Running Battle between "'+playerSchema.sessionId+'" and "'+target.id+'".', this.uid); if(GameConst.STATUS.ACTIVE !== playerSchema.state.inState){ - Logger.debug('PvE inactive player.', playerSchema.state.inState); + //Logger.debug('PvE inactive player.', playerSchema.state.inState); delete this.inBattleWith[target.id]; return false; } diff --git a/lib/import/server/skills-importer.js b/lib/import/server/skills-importer.js index 412e14f0..b3da2bc4 100644 --- a/lib/import/server/skills-importer.js +++ b/lib/import/server/skills-importer.js @@ -74,7 +74,7 @@ class SkillsImporter skillsData.type = this.skillTypes[skillRawData.typeData.key].id; if(this.options.update && existentSkill){ await this.updateSkill(existentSkill, skillsData); - Logger.debug('Updated skill: "' + key + '".'); + //Logger.debug('Updated skill: "' + key + '".'); return; } if(this.options.override && existentSkill){ diff --git a/lib/objects/server/object/type/animation-object.js b/lib/objects/server/object/type/animation-object.js index 9c6e53db..0aaa45cf 100644 --- a/lib/objects/server/object/type/animation-object.js +++ b/lib/objects/server/object/type/animation-object.js @@ -69,7 +69,7 @@ class AnimationObject extends BaseObject onAction(props) { if(!this.runOnAction || !props.room){ - Logger.debug('Disabled runOnAction or missing room.'); + //Logger.debug('Disabled runOnAction or missing room.'); return; } // run for everyone in the room: