@my-swu/simulator-client 0.1.2 → 0.1.3

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.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/dist/connection.js +2 -3
  3. package/dist/generated/index.d.ts +10 -0
  4. package/dist/generated/schemas.d.ts +1 -1
  5. package/dist/generated/schemas.js +466 -59
  6. package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -0
  7. package/dist/generated/types/admin-match-debug-bundle.js +2 -0
  8. package/dist/generated/types/admin-match-list-response.d.ts +1 -0
  9. package/dist/generated/types/admin-match-list-response.js +2 -0
  10. package/dist/generated/types/admin-match-replay-response.d.ts +1 -0
  11. package/dist/generated/types/admin-match-replay-response.js +2 -0
  12. package/dist/generated/types/common.d.ts +143 -15
  13. package/dist/generated/types/create-match-history-replay-share-request.d.ts +1 -0
  14. package/dist/generated/types/create-match-history-replay-share-request.js +2 -0
  15. package/dist/generated/types/create-match-history-replay-share-response.d.ts +1 -0
  16. package/dist/generated/types/create-match-history-replay-share-response.js +2 -0
  17. package/dist/generated/types/inactive-match-recovery-request.d.ts +1 -0
  18. package/dist/generated/types/inactive-match-recovery-request.js +2 -0
  19. package/dist/generated/types/inactive-match-recovery-response.d.ts +1 -0
  20. package/dist/generated/types/inactive-match-recovery-response.js +2 -0
  21. package/dist/generated/types/match-access-recovery-request.d.ts +1 -0
  22. package/dist/generated/types/match-access-recovery-request.js +2 -0
  23. package/dist/generated/types/match-access-recovery-response.d.ts +1 -0
  24. package/dist/generated/types/match-access-recovery-response.js +2 -0
  25. package/dist/generated/types/match-recovery-request.d.ts +1 -0
  26. package/dist/generated/types/match-recovery-request.js +2 -0
  27. package/dist/generated/types/match-recovery-response.d.ts +1 -0
  28. package/dist/generated/types/match-recovery-response.js +2 -0
  29. package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -0
  30. package/dist/generated/types/shared-match-history-replay-response.js +2 -0
  31. package/dist/generated/version.d.ts +1 -1
  32. package/dist/generated/version.js +1 -1
  33. package/dist/index.d.ts +3 -3
  34. package/dist/internal/match-history.d.ts +5 -0
  35. package/dist/internal/match-history.js +8 -0
  36. package/dist/local/engine.d.ts +2 -0
  37. package/dist/local/server/http-router.js +10 -0
  38. package/dist/local/wasm-engine.d.ts +1 -0
  39. package/dist/local/wasm-engine.js +1 -0
  40. package/dist/match-session/controller.d.ts +1 -0
  41. package/dist/match-session/controller.js +56 -17
  42. package/dist/match-session/methods.d.ts +8 -0
  43. package/dist/match-session/session-state.d.ts +5 -1
  44. package/dist/match-session/types.d.ts +1 -1
  45. package/dist/match-session.d.ts +1 -1
  46. package/dist/resources/admin.d.ts +14 -1
  47. package/dist/resources/admin.js +21 -0
  48. package/dist/resources/lobby-types.d.ts +4 -4
  49. package/dist/resources/match-history.d.ts +14 -1
  50. package/dist/resources/match-history.js +16 -0
  51. package/dist/resources/match-types.d.ts +11 -2
  52. package/dist/resources/matches.js +10 -0
  53. package/dist/validators.d.ts +11 -1
  54. package/package.json +1 -1
  55. package/schema/add-lobby-ai-player-request.schema.json +7 -0
  56. package/schema/admin-match-debug-bundle.schema.json +48 -0
  57. package/schema/admin-match-list-response.schema.json +23 -0
  58. package/schema/admin-match-replay-response.schema.json +14 -0
  59. package/schema/common.schema.json +176 -27
  60. package/schema/create-limited-event-request.schema.json +2 -4
  61. package/schema/create-lobby-request.schema.json +4 -8
  62. package/schema/create-match-history-replay-share-request.schema.json +22 -0
  63. package/schema/create-match-history-replay-share-response.schema.json +15 -0
  64. package/schema/create-match-request.schema.json +2 -3
  65. package/schema/create-tournament-room-request.schema.json +4 -8
  66. package/schema/limited-event-preflight-response.schema.json +1 -3
  67. package/schema/manifest.json +11 -1
  68. package/schema/match-access-recovery-request.schema.json +17 -0
  69. package/schema/match-access-recovery-response.schema.json +36 -0
  70. package/schema/match-access-response.schema.json +1 -3
  71. package/schema/match-history-entry.schema.json +1 -3
  72. package/schema/match-recovery-request.schema.json +33 -0
  73. package/schema/match-recovery-response.schema.json +36 -0
  74. package/schema/route-manifest.json +92 -0
  75. package/schema/shared-match-history-replay-response.schema.json +14 -0
package/README.md CHANGED
@@ -99,7 +99,7 @@ const premierHostDeck = {
99
99
 
100
100
  const hostAccess = await simulatorClient.matches.create({
101
101
  // Seeds make local examples and tests deterministic.
102
- seed: 7,
102
+ seed: '7',
103
103
  format: 'premier',
104
104
  // Twin Suns supports 2-4 players; every other format is exactly 2.
105
105
  playerCount: 2,
@@ -1,5 +1,5 @@
1
1
  import { TypedEmitter } from './internal/emitter.js';
2
- import { DEFAULT_MATCH_HISTORY_LIMIT } from './internal/limits.js';
2
+ import { upsertMatchHistoryEntry } from './internal/match-history.js';
3
3
  import { getDefaultWebSocketFactory } from './internal/transport.js';
4
4
  import { aiFormatEventMessage, commandMessage, chatMessage, formatEventMessage, interactionCueMessage, pingMessage, readyMessage, setAiPausedMessage, syncRequestMessage, undoMessage, undoResponseMessage, } from './messages.js';
5
5
  import { passthroughValidator } from './validators/validator.js';
@@ -313,8 +313,7 @@ export class MatchConnection {
313
313
  // Same retention contract as `MatchSession`: a re-delivered entry
314
314
  // replaces its earlier copy, and the feed stays bounded so a long
315
315
  // match cannot grow it (and its copy-on-append cost) without limit.
316
- const withoutDuplicate = this.#history.filter(existing => existing.id !== parsed.payload.id);
317
- this.#history = [...withoutDuplicate, parsed.payload].slice(-DEFAULT_MATCH_HISTORY_LIMIT);
316
+ this.#history = upsertMatchHistoryEntry(this.#history, parsed.payload);
318
317
  this.#emitter.emit('historyEntry', parsed.payload);
319
318
  break;
320
319
  }
@@ -1,4 +1,7 @@
1
1
  /** Generated SDK wire types. */
2
+ export type { AdminMatchListResponse } from './types/admin-match-list-response.js';
3
+ export type { AdminMatchDebugBundle } from './types/admin-match-debug-bundle.js';
4
+ export type { AdminMatchReplayResponse } from './types/admin-match-replay-response.js';
2
5
  export type { SimulatorReportListResponse } from './types/simulator-report-list-response.js';
3
6
  export type { SimulatorReportResponse } from './types/simulator-report-response.js';
4
7
  export type { HealthResponse } from './types/health-response.js';
@@ -99,9 +102,16 @@ export type { MatchHistoryDeckStatsResponse } from './types/match-history-deck-s
99
102
  export type { MatchHistoryEntry } from './types/match-history-entry.js';
100
103
  export type { MatchHistoryReplayRequest } from './types/match-history-replay-request.js';
101
104
  export type { MatchHistoryReplayResponse } from './types/match-history-replay-response.js';
105
+ export type { CreateMatchHistoryReplayShareRequest } from './types/create-match-history-replay-share-request.js';
106
+ export type { CreateMatchHistoryReplayShareResponse } from './types/create-match-history-replay-share-response.js';
107
+ export type { SharedMatchHistoryReplayResponse } from './types/shared-match-history-replay-response.js';
102
108
  export type { MatchChatLookupResponse } from './types/match-chat-lookup-response.js';
103
109
  export type { MatchHistoryRestoreRequest } from './types/match-history-restore-request.js';
104
110
  export type { RestoreHistoryResponse } from './types/restore-history-response.js';
111
+ export type { MatchRecoveryRequest } from './types/match-recovery-request.js';
112
+ export type { MatchRecoveryResponse } from './types/match-recovery-response.js';
113
+ export type { MatchAccessRecoveryRequest } from './types/match-access-recovery-request.js';
114
+ export type { MatchAccessRecoveryResponse } from './types/match-access-recovery-response.js';
105
115
  export type { CardsResponse } from './types/cards-response.js';
106
116
  export type { ResolveCardIdsRequest } from './types/resolve-card-ids-request.js';
107
117
  export type { ResolveCardIdsResponse } from './types/resolve-card-ids-response.js';
@@ -7,7 +7,7 @@ export { schemaVersion } from './version.js';
7
7
  * sdkSchemas` would force TypeScript to serialize the entire inlined schema
8
8
  * map in the emitted declaration file, overflowing its serializer.
9
9
  */
10
- export declare const schemaNames: readonly ["simulator-report-list-response", "simulator-report-response", "health-response", "simulator-availability-response", "simulator-admin-status-response", "card-catalog-refresh-response", "set-simulator-maintenance-request", "set-ranked-admission-request", "api-error-response", "meta-window", "ranked-queue", "ranked-admin-status", "ranked-matchmaking-view", "ranked-leaderboard-entry", "create-meta-window-request", "meta-windows-response", "ranked-profile-request", "ranked-profile-response", "ranked-leaderboard-query", "ranked-leaderboard-response", "create-match-request", "create-lobby-request", "join-lobby-request", "spectate-lobby-request", "lobby-matchmaking-request", "lobby-sync-request", "lobby-matchmaking-decision-request", "update-lobby-player-request", "update-lobby-ai-player-request", "add-lobby-ai-player-request", "lobby-chat-request", "start-lobby-request", "return-lobby-match-request", "submit-lobby-limited-deck-request", "prepare-lobby-limited-ai-decks-request", "start-lobby-limited-match-request", "leave-lobby-request", "kick-lobby-player-request", "kick-lobby-spectator-request", "update-lobby-settings-request", "lobby-response", "lobby-list-response", "lobby-access-response", "lobby-chat-response", "lobby-server-message", "lobby-list-server-message", "create-tournament-room-request", "join-tournament-room-request", "tournament-room-sync-request", "update-tournament-room-player-request", "update-tournament-room-settings-request", "tournament-room-chat-request", "start-tournament-event-request", "tournament-event-command-request", "submit-tournament-deck-request", "create-tournament-table-request", "join-tournament-table-request", "return-tournament-match-request", "leave-tournament-room-request", "close-tournament-room-request", "tournament-room-response", "tournament-room-list-response", "tournament-room-access-response", "tournament-room-chat-response", "tournament-room-server-message", "create-limited-event-request", "limited-event-access-response", "limited-event-preflight-response", "limited-event-response", "limited-event-command-request", "join-limited-event-request", "match-access-response", "abandon-match-request", "abandon-match-response", "list-active-ai-matches-request", "list-active-ai-matches-response", "leave-match-request", "leave-match-response", "match-spectator-access-response", "join-match-request", "spectate-match-request", "submit-match-deck-request", "submit-match-deck-response", "format-event-request", "format-event-response", "undo-match-request", "undo-match-response", "undo-respond-match-request", "rematch-match-request", "rematch-match-response", "set-ai-paused-request", "set-ai-paused-response", "get-match-response", "match-history-list-request", "match-history-list-response", "match-history-deck-stats-request", "match-history-deck-stats-response", "match-history-entry", "match-history-replay-request", "match-history-replay-response", "match-chat-lookup-response", "match-history-restore-request", "restore-history-response", "cards-response", "resolve-card-ids-request", "resolve-card-ids-response", "client-message", "server-message", "game-command", "game-event", "game-state", "match-connection-role", "welcome-payload", "error-payload", "match-save-payload", "save-match-request", "restore-match-save-request", "restore-match-save-response"];
10
+ export declare const schemaNames: readonly ["admin-match-list-response", "admin-match-debug-bundle", "admin-match-replay-response", "simulator-report-list-response", "simulator-report-response", "health-response", "simulator-availability-response", "simulator-admin-status-response", "card-catalog-refresh-response", "set-simulator-maintenance-request", "set-ranked-admission-request", "api-error-response", "meta-window", "ranked-queue", "ranked-admin-status", "ranked-matchmaking-view", "ranked-leaderboard-entry", "create-meta-window-request", "meta-windows-response", "ranked-profile-request", "ranked-profile-response", "ranked-leaderboard-query", "ranked-leaderboard-response", "create-match-request", "create-lobby-request", "join-lobby-request", "spectate-lobby-request", "lobby-matchmaking-request", "lobby-sync-request", "lobby-matchmaking-decision-request", "update-lobby-player-request", "update-lobby-ai-player-request", "add-lobby-ai-player-request", "lobby-chat-request", "start-lobby-request", "return-lobby-match-request", "submit-lobby-limited-deck-request", "prepare-lobby-limited-ai-decks-request", "start-lobby-limited-match-request", "leave-lobby-request", "kick-lobby-player-request", "kick-lobby-spectator-request", "update-lobby-settings-request", "lobby-response", "lobby-list-response", "lobby-access-response", "lobby-chat-response", "lobby-server-message", "lobby-list-server-message", "create-tournament-room-request", "join-tournament-room-request", "tournament-room-sync-request", "update-tournament-room-player-request", "update-tournament-room-settings-request", "tournament-room-chat-request", "start-tournament-event-request", "tournament-event-command-request", "submit-tournament-deck-request", "create-tournament-table-request", "join-tournament-table-request", "return-tournament-match-request", "leave-tournament-room-request", "close-tournament-room-request", "tournament-room-response", "tournament-room-list-response", "tournament-room-access-response", "tournament-room-chat-response", "tournament-room-server-message", "create-limited-event-request", "limited-event-access-response", "limited-event-preflight-response", "limited-event-response", "limited-event-command-request", "join-limited-event-request", "match-access-response", "abandon-match-request", "abandon-match-response", "list-active-ai-matches-request", "list-active-ai-matches-response", "leave-match-request", "leave-match-response", "match-spectator-access-response", "join-match-request", "spectate-match-request", "submit-match-deck-request", "submit-match-deck-response", "format-event-request", "format-event-response", "undo-match-request", "undo-match-response", "undo-respond-match-request", "rematch-match-request", "rematch-match-response", "set-ai-paused-request", "set-ai-paused-response", "get-match-response", "match-history-list-request", "match-history-list-response", "match-history-deck-stats-request", "match-history-deck-stats-response", "match-history-entry", "match-history-replay-request", "match-history-replay-response", "create-match-history-replay-share-request", "create-match-history-replay-share-response", "shared-match-history-replay-response", "match-chat-lookup-response", "match-history-restore-request", "restore-history-response", "match-recovery-request", "match-recovery-response", "match-access-recovery-request", "match-access-recovery-response", "cards-response", "resolve-card-ids-request", "resolve-card-ids-response", "client-message", "server-message", "game-command", "game-event", "game-state", "match-connection-role", "welcome-payload", "error-payload", "match-save-payload", "save-match-request", "restore-match-save-request", "restore-match-save-response"];
11
11
  export type SchemaName = (typeof schemaNames)[number];
12
12
  /**
13
13
  * Definitions shared by every generated root schema.