quake2ts 0.0.569 → 0.0.570

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
2
2
  import { Mock } from 'vitest';
3
3
  import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
- import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod } from '@quake2ts/game';
5
+ import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, GameExports } from '@quake2ts/game';
6
6
  import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
7
7
  import { ImageData } from '@napi-rs/canvas';
8
8
  import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
@@ -208,6 +208,10 @@ interface GameState {
208
208
  * @param overrides Optional overrides for the game state.
209
209
  */
210
210
  declare function createMockGameState(overrides?: Partial<GameState>): GameState;
211
+ /**
212
+ * Creates a mock GameExports object.
213
+ */
214
+ declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
211
215
 
212
216
  /**
213
217
  * Mock implementation of the NetworkTransport interface for server testing.
@@ -774,4 +778,4 @@ interface VisualScenario {
774
778
  */
775
779
  declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
776
780
 
777
- export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
781
+ export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
2
2
  import { Mock } from 'vitest';
3
3
  import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
- import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod } from '@quake2ts/game';
5
+ import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, GameExports } from '@quake2ts/game';
6
6
  import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
7
7
  import { ImageData } from '@napi-rs/canvas';
8
8
  import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
@@ -208,6 +208,10 @@ interface GameState {
208
208
  * @param overrides Optional overrides for the game state.
209
209
  */
210
210
  declare function createMockGameState(overrides?: Partial<GameState>): GameState;
211
+ /**
212
+ * Creates a mock GameExports object.
213
+ */
214
+ declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
211
215
 
212
216
  /**
213
217
  * Mock implementation of the NetworkTransport interface for server testing.
@@ -774,4 +778,4 @@ interface VisualScenario {
774
778
  */
775
779
  declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
776
780
 
777
- export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
781
+ export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
@@ -566,6 +566,7 @@ var mockMonsterAttacks = {
566
566
  };
567
567
 
568
568
  // src/game/mocks.ts
569
+ import { vi as vi5 } from "vitest";
569
570
  function createMockGameState(overrides) {
570
571
  return {
571
572
  levelName: "test_level",
@@ -575,9 +576,97 @@ function createMockGameState(overrides) {
575
576
  ...overrides
576
577
  };
577
578
  }
579
+ function createMockGameExports(overrides) {
580
+ return {
581
+ init: vi5.fn(),
582
+ shutdown: vi5.fn(),
583
+ spawnWorld: vi5.fn(),
584
+ frame: vi5.fn().mockReturnValue({ state: {} }),
585
+ clientConnect: vi5.fn().mockReturnValue(true),
586
+ clientBegin: vi5.fn().mockReturnValue({ index: 1, origin: { x: 0, y: 0, z: 0 } }),
587
+ clientDisconnect: vi5.fn(),
588
+ clientThink: vi5.fn(),
589
+ // clientUserInfoChanged is not in GameExports
590
+ // clientCommand is not in GameExports (it's serverCommand?) No, clientCommand might be missing from interface but present in impl or legacy.
591
+ // Checking GameExports interface in src/index.ts:
592
+ /*
593
+ clientConnect(ent: Entity | null, userInfo: string): string | true;
594
+ clientBegin(client: PlayerClient): Entity;
595
+ clientDisconnect(ent: Entity): void;
596
+ clientThink(ent: Entity, cmd: UserCommand): void;
597
+ respawn(ent: Entity): void;
598
+ ...
599
+ configstring(index: number, value: string): void;
600
+ serverCommand(cmd: string): void;
601
+ */
602
+ respawn: vi5.fn(),
603
+ entities: {
604
+ getByIndex: vi5.fn(),
605
+ forEachEntity: vi5.fn(),
606
+ findByRadius: vi5.fn(),
607
+ find: vi5.fn(),
608
+ checkAnyCollision: vi5.fn(),
609
+ trace: vi5.fn(),
610
+ pointcontents: vi5.fn(),
611
+ link: vi5.fn(),
612
+ // linkentity mapped to link in EntitySystem? No, linkentity in imports, link/unlink in System.
613
+ unlink: vi5.fn(),
614
+ spawn: vi5.fn(),
615
+ free: vi5.fn(),
616
+ activeCount: 0,
617
+ world: { classname: "worldspawn" }
618
+ },
619
+ multicast: vi5.fn(),
620
+ unicast: vi5.fn(),
621
+ configstring: vi5.fn(),
622
+ serverCommand: vi5.fn(),
623
+ sound: vi5.fn(),
624
+ soundIndex: vi5.fn(),
625
+ centerprintf: vi5.fn(),
626
+ trace: vi5.fn(),
627
+ time: 0,
628
+ deathmatch: false,
629
+ skill: 1,
630
+ rogue: false,
631
+ xatrix: false,
632
+ coop: false,
633
+ friendlyFire: false,
634
+ random: {
635
+ next: vi5.fn(),
636
+ nextFloat: vi5.fn(),
637
+ range: vi5.fn(),
638
+ crandom: vi5.fn(),
639
+ getState: vi5.fn(),
640
+ setState: vi5.fn()
641
+ },
642
+ createSave: vi5.fn(),
643
+ loadSave: vi5.fn(),
644
+ serialize: vi5.fn(),
645
+ loadState: vi5.fn(),
646
+ setGodMode: vi5.fn(),
647
+ setNoclip: vi5.fn(),
648
+ setNotarget: vi5.fn(),
649
+ giveItem: vi5.fn(),
650
+ damage: vi5.fn(),
651
+ teleport: vi5.fn(),
652
+ registerHooks: vi5.fn(),
653
+ hooks: {
654
+ onMapLoad: vi5.fn(),
655
+ onMapUnload: vi5.fn(),
656
+ onPlayerSpawn: vi5.fn(),
657
+ onPlayerDeath: vi5.fn(),
658
+ register: vi5.fn()
659
+ },
660
+ setSpectator: vi5.fn(),
661
+ registerEntitySpawn: vi5.fn(),
662
+ unregisterEntitySpawn: vi5.fn(),
663
+ getCustomEntities: vi5.fn(),
664
+ ...overrides
665
+ };
666
+ }
578
667
 
579
668
  // src/server/mocks/transport.ts
580
- import { vi as vi5 } from "vitest";
669
+ import { vi as vi6 } from "vitest";
581
670
  var MockTransport = class {
582
671
  constructor() {
583
672
  this.address = "127.0.0.1";
@@ -585,11 +674,11 @@ var MockTransport = class {
585
674
  this.sentMessages = [];
586
675
  this.receivedMessages = [];
587
676
  this.listening = false;
588
- this.listenSpy = vi5.fn().mockImplementation(async (port) => {
677
+ this.listenSpy = vi6.fn().mockImplementation(async (port) => {
589
678
  this.port = port;
590
679
  this.listening = true;
591
680
  });
592
- this.closeSpy = vi5.fn().mockImplementation(() => {
681
+ this.closeSpy = vi6.fn().mockImplementation(() => {
593
682
  this.listening = false;
594
683
  });
595
684
  }
@@ -645,11 +734,11 @@ var MockTransport = class {
645
734
  };
646
735
  function createMockUDPSocket(overrides) {
647
736
  const socket = {
648
- send: vi5.fn(),
649
- on: vi5.fn(),
650
- close: vi5.fn(),
651
- bind: vi5.fn(),
652
- address: vi5.fn().mockReturnValue({ address: "127.0.0.1", family: "IPv4", port: 0 }),
737
+ send: vi6.fn(),
738
+ on: vi6.fn(),
739
+ close: vi6.fn(),
740
+ bind: vi6.fn(),
741
+ address: vi6.fn().mockReturnValue({ address: "127.0.0.1", family: "IPv4", port: 0 }),
653
742
  ...overrides
654
743
  };
655
744
  return socket;
@@ -666,13 +755,13 @@ function createMockTransport(address = "127.0.0.1", port = 27910, overrides) {
666
755
  }
667
756
  function createMockNetDriver(overrides) {
668
757
  return {
669
- connect: vi5.fn().mockResolvedValue(void 0),
670
- disconnect: vi5.fn(),
671
- send: vi5.fn(),
672
- onMessage: vi5.fn(),
673
- onClose: vi5.fn(),
674
- onError: vi5.fn(),
675
- isConnected: vi5.fn().mockReturnValue(true),
758
+ connect: vi6.fn().mockResolvedValue(void 0),
759
+ disconnect: vi6.fn(),
760
+ send: vi6.fn(),
761
+ onMessage: vi6.fn(),
762
+ onClose: vi6.fn(),
763
+ onError: vi6.fn(),
764
+ isConnected: vi6.fn().mockReturnValue(true),
676
765
  ...overrides
677
766
  };
678
767
  }
@@ -680,7 +769,7 @@ function createMockNetDriver(overrides) {
680
769
  // src/server/mocks/state.ts
681
770
  import { ServerState, ClientState } from "@quake2ts/server";
682
771
  import { MAX_CONFIGSTRINGS, MAX_EDICTS } from "@quake2ts/shared";
683
- import { vi as vi6 } from "vitest";
772
+ import { vi as vi7 } from "vitest";
684
773
  function createMockServerState(overrides) {
685
774
  return {
686
775
  state: ServerState.Game,
@@ -722,13 +811,13 @@ function createMockServerClient(clientNum, overrides) {
722
811
  incomingSequence: 0,
723
812
  outgoingSequence: 0,
724
813
  lastReceived: 0,
725
- process: vi6.fn(),
726
- transmit: vi6.fn(),
727
- writeReliableByte: vi6.fn(),
728
- writeReliableShort: vi6.fn(),
729
- writeReliableLong: vi6.fn(),
730
- writeReliableString: vi6.fn(),
731
- writeReliableData: vi6.fn()
814
+ process: vi7.fn(),
815
+ transmit: vi7.fn(),
816
+ writeReliableByte: vi7.fn(),
817
+ writeReliableShort: vi7.fn(),
818
+ writeReliableLong: vi7.fn(),
819
+ writeReliableString: vi7.fn(),
820
+ writeReliableData: vi7.fn()
732
821
  },
733
822
  // Cast as any because NetChan might be complex to fully mock here
734
823
  userInfo: "",
@@ -770,13 +859,13 @@ function createMockServerClient(clientNum, overrides) {
770
859
  }
771
860
  function createMockServer(overrides) {
772
861
  return {
773
- start: vi6.fn().mockResolvedValue(void 0),
774
- stop: vi6.fn(),
775
- multicast: vi6.fn(),
776
- unicast: vi6.fn(),
777
- configstring: vi6.fn(),
778
- kickPlayer: vi6.fn(),
779
- changeMap: vi6.fn().mockResolvedValue(void 0),
862
+ start: vi7.fn().mockResolvedValue(void 0),
863
+ stop: vi7.fn(),
864
+ multicast: vi7.fn(),
865
+ unicast: vi7.fn(),
866
+ configstring: vi7.fn(),
867
+ kickPlayer: vi7.fn(),
868
+ changeMap: vi7.fn().mockResolvedValue(void 0),
780
869
  ...overrides
781
870
  };
782
871
  }
@@ -838,19 +927,19 @@ async function simulateHandshake(client, server) {
838
927
  }
839
928
 
840
929
  // src/server/mocks/commands.ts
841
- import { vi as vi7 } from "vitest";
930
+ import { vi as vi8 } from "vitest";
842
931
  function createMockServerConsole(overrides) {
843
932
  const outputBuffer = [];
844
933
  const commandBuffer = [];
845
934
  return {
846
- exec: vi7.fn((cmd) => {
935
+ exec: vi8.fn((cmd) => {
847
936
  commandBuffer.push(cmd);
848
937
  return `Executed: ${cmd}`;
849
938
  }),
850
- print: vi7.fn((text) => {
939
+ print: vi8.fn((text) => {
851
940
  outputBuffer.push(text);
852
941
  }),
853
- broadcast: vi7.fn((text) => {
942
+ broadcast: vi8.fn((text) => {
854
943
  outputBuffer.push(`Broadcast: ${text}`);
855
944
  }),
856
945
  commandBuffer,
@@ -863,13 +952,13 @@ function createMockRConClient(password = "") {
863
952
  connected: false,
864
953
  lastCommand: "",
865
954
  lastResponse: "",
866
- connect: vi7.fn(async (address, port, pwd) => {
955
+ connect: vi8.fn(async (address, port, pwd) => {
867
956
  return pwd === password;
868
957
  }),
869
- sendCommand: vi7.fn(async (cmd) => {
958
+ sendCommand: vi8.fn(async (cmd) => {
870
959
  return `RCON Response for: ${cmd}`;
871
960
  }),
872
- disconnect: vi7.fn()
961
+ disconnect: vi8.fn()
873
962
  };
874
963
  }
875
964
  function simulateServerCommand(server, command) {
@@ -1512,10 +1601,10 @@ function createMockImage(width, height, src) {
1512
1601
  }
1513
1602
 
1514
1603
  // src/engine/mocks/webgpu.ts
1515
- import { vi as vi8 } from "vitest";
1604
+ import { vi as vi9 } from "vitest";
1516
1605
  function createMockGPUAdapter() {
1517
1606
  return {
1518
- requestDevice: vi8.fn().mockResolvedValue(createMockGPUDevice()),
1607
+ requestDevice: vi9.fn().mockResolvedValue(createMockGPUDevice()),
1519
1608
  features: /* @__PURE__ */ new Set(),
1520
1609
  limits: {}
1521
1610
  };
@@ -1525,40 +1614,40 @@ function createMockGPUDevice() {
1525
1614
  features: /* @__PURE__ */ new Set(),
1526
1615
  limits: {},
1527
1616
  queue: {
1528
- submit: vi8.fn(),
1529
- writeBuffer: vi8.fn(),
1530
- writeTexture: vi8.fn(),
1531
- copyExternalImageToTexture: vi8.fn()
1532
- },
1533
- createCommandEncoder: vi8.fn().mockReturnValue({
1534
- beginRenderPass: vi8.fn().mockReturnValue({
1535
- setPipeline: vi8.fn(),
1536
- draw: vi8.fn(),
1537
- end: vi8.fn()
1617
+ submit: vi9.fn(),
1618
+ writeBuffer: vi9.fn(),
1619
+ writeTexture: vi9.fn(),
1620
+ copyExternalImageToTexture: vi9.fn()
1621
+ },
1622
+ createCommandEncoder: vi9.fn().mockReturnValue({
1623
+ beginRenderPass: vi9.fn().mockReturnValue({
1624
+ setPipeline: vi9.fn(),
1625
+ draw: vi9.fn(),
1626
+ end: vi9.fn()
1538
1627
  }),
1539
- finish: vi8.fn()
1628
+ finish: vi9.fn()
1540
1629
  }),
1541
- createRenderPipeline: vi8.fn(),
1542
- createShaderModule: vi8.fn(),
1543
- createBindGroup: vi8.fn(),
1544
- createBindGroupLayout: vi8.fn(),
1545
- createBuffer: vi8.fn(),
1546
- createTexture: vi8.fn(),
1547
- createSampler: vi8.fn()
1630
+ createRenderPipeline: vi9.fn(),
1631
+ createShaderModule: vi9.fn(),
1632
+ createBindGroup: vi9.fn(),
1633
+ createBindGroupLayout: vi9.fn(),
1634
+ createBuffer: vi9.fn(),
1635
+ createTexture: vi9.fn(),
1636
+ createSampler: vi9.fn()
1548
1637
  };
1549
1638
  }
1550
1639
  function createMockGPUCanvasContext() {
1551
1640
  return {
1552
- configure: vi8.fn(),
1553
- unconfigure: vi8.fn(),
1554
- getCurrentTexture: vi8.fn()
1641
+ configure: vi9.fn(),
1642
+ unconfigure: vi9.fn(),
1643
+ getCurrentTexture: vi9.fn()
1555
1644
  };
1556
1645
  }
1557
1646
  function setupWebGPUMocks() {
1558
1647
  const mockAdapter = createMockGPUAdapter();
1559
1648
  const mockGpu = {
1560
- requestAdapter: vi8.fn().mockResolvedValue(mockAdapter),
1561
- getPreferredCanvasFormat: vi8.fn().mockReturnValue("bgra8unorm")
1649
+ requestAdapter: vi9.fn().mockResolvedValue(mockAdapter),
1650
+ getPreferredCanvasFormat: vi9.fn().mockReturnValue("bgra8unorm")
1562
1651
  };
1563
1652
  Object.defineProperty(global.navigator, "gpu", {
1564
1653
  value: mockGpu,
@@ -2194,6 +2283,7 @@ export {
2194
2283
  createMockGPUCanvasContext,
2195
2284
  createMockGPUDevice,
2196
2285
  createMockGame,
2286
+ createMockGameExports,
2197
2287
  createMockGameState,
2198
2288
  createMockHandshake,
2199
2289
  createMockImage,