@my-swu/simulator-client 0.1.5 → 0.1.7
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.
- package/README.md +29 -0
- package/dist/client.js +6 -1
- package/dist/connection/url.d.ts +2 -0
- package/dist/connection/url.js +4 -0
- package/dist/generated/index.d.ts +4 -0
- package/dist/generated/schemas.d.ts +1 -1
- package/dist/generated/schemas.js +2412 -1434
- package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -1
- package/dist/generated/types/admin-match-list-response.d.ts +1 -1
- package/dist/generated/types/admin-match-replay-response.d.ts +1 -1
- package/dist/generated/types/client-message.d.ts +1 -1
- package/dist/generated/types/common.d.ts +524 -260
- package/dist/generated/types/create-limited-event-request.d.ts +1 -1
- package/dist/generated/types/format-event-response.d.ts +1 -1
- package/dist/generated/types/game-command.d.ts +1 -1
- package/dist/generated/types/game-event.d.ts +1 -1
- package/dist/generated/types/game-state.d.ts +1 -1
- package/dist/generated/types/get-match-response.d.ts +1 -1
- package/dist/generated/types/leave-limited-event-request.d.ts +1 -0
- package/dist/generated/types/leave-limited-event-request.js +2 -0
- package/dist/generated/types/limited-event-server-message.d.ts +1 -0
- package/dist/generated/types/limited-event-server-message.js +2 -0
- package/dist/generated/types/list-active-ai-matches-response.d.ts +1 -1
- package/dist/generated/types/lobby-access-response.d.ts +1 -1
- package/dist/generated/types/lobby-chat-response.d.ts +1 -1
- package/dist/generated/types/lobby-response.d.ts +1 -1
- package/dist/generated/types/lobby-server-message.d.ts +1 -1
- package/dist/generated/types/match-access-recovery-response.d.ts +1 -1
- package/dist/generated/types/match-access-response.d.ts +1 -1
- package/dist/generated/types/match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/match-recovery-response.d.ts +1 -1
- package/dist/generated/types/match-spectator-access-response.d.ts +1 -1
- package/dist/generated/types/rematch-match-response.d.ts +1 -1
- package/dist/generated/types/restore-history-response.d.ts +1 -1
- package/dist/generated/types/restore-match-save-response.d.ts +1 -1
- package/dist/generated/types/server-message.d.ts +1 -1
- package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/submit-ai-game-feedback-request.d.ts +1 -0
- package/dist/generated/types/submit-ai-game-feedback-request.js +2 -0
- package/dist/generated/types/submit-ai-game-feedback-response.d.ts +1 -0
- package/dist/generated/types/submit-ai-game-feedback-response.js +2 -0
- package/dist/generated/types/submit-match-deck-response.d.ts +1 -1
- package/dist/generated/types/tournament-room-access-response.d.ts +1 -1
- package/dist/generated/types/tournament-room-server-message.d.ts +1 -1
- package/dist/generated/types/undo-match-response.d.ts +1 -1
- package/dist/generated/types/update-lobby-settings-request.d.ts +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/http/request.d.ts +2 -0
- package/dist/http/request.js +9 -1
- package/dist/i18n/card-print-catalog.d.ts +9 -0
- package/dist/i18n/card-print-catalog.js +260 -0
- package/dist/i18n/catalog.d.ts +8 -0
- package/dist/i18n/catalog.js +195 -0
- package/dist/i18n/diagnostics.d.ts +6 -0
- package/dist/i18n/diagnostics.js +19 -0
- package/dist/i18n/fallback.d.ts +3 -0
- package/dist/i18n/fallback.js +40 -0
- package/dist/i18n/format.d.ts +8 -0
- package/dist/i18n/format.js +29 -0
- package/dist/i18n/generated/message-types.d.ts +91 -0
- package/dist/i18n/generated/message-types.js +3 -0
- package/dist/i18n/icu.d.ts +12 -0
- package/dist/i18n/icu.js +75 -0
- package/dist/i18n/index.d.ts +9 -0
- package/dist/i18n/index.js +5 -0
- package/dist/i18n/locale.d.ts +9 -0
- package/dist/i18n/locale.js +19 -0
- package/dist/i18n/types.d.ts +151 -0
- package/dist/i18n/types.js +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/internal/authenticated-socket-session.d.ts +2 -0
- package/dist/internal/authenticated-socket-session.js +3 -1
- package/dist/local/client.js +7 -2
- package/dist/local/server/http-router.js +18 -0
- package/dist/resources/admin.d.ts +8 -0
- package/dist/resources/admin.js +2 -0
- package/dist/resources/limited-event-session.d.ts +10 -0
- package/dist/resources/limited-event-session.js +35 -0
- package/dist/resources/limited-event-types.d.ts +34 -1
- package/dist/resources/limited-events.d.ts +8 -1
- package/dist/resources/limited-events.js +18 -1
- package/dist/resources/lobbies.d.ts +1 -1
- package/dist/resources/lobbies.js +1 -1
- package/dist/resources/lobby-types.d.ts +15 -2
- package/dist/resources/match-history.d.ts +8 -1
- package/dist/resources/match-history.js +10 -0
- package/dist/resources/tournament-rooms.d.ts +1 -1
- package/dist/resources/tournament-rooms.js +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/validators.d.ts +5 -1
- package/i18n/cards/de.json +121 -0
- package/i18n/cards/en.json +121 -0
- package/i18n/cards/es.json +121 -0
- package/i18n/cards/fr.json +121 -0
- package/i18n/cards/it.json +121 -0
- package/i18n/cards/manifest.json +2715 -0
- package/i18n/de.json +11 -0
- package/i18n/en.json +11 -0
- package/i18n/es.json +11 -0
- package/i18n/fr.json +11 -0
- package/i18n/it.json +11 -0
- package/i18n/messages.schema.json +28 -0
- package/package.json +12 -2
- package/schema/common.schema.json +1684 -1005
- package/schema/create-limited-event-request.schema.json +11 -0
- package/schema/game-event.schema.json +76 -0
- package/schema/game-state.schema.json +8 -0
- package/schema/leave-limited-event-request.schema.json +15 -0
- package/schema/limited-event-server-message.schema.json +63 -0
- package/schema/manifest.json +5 -1
- package/schema/match-save-payload.schema.json +1 -1
- package/schema/route-manifest.json +54 -0
- package/schema/submit-ai-game-feedback-request.schema.json +36 -0
- package/schema/submit-ai-game-feedback-response.schema.json +19 -0
- package/schema/update-lobby-settings-request.schema.json +67 -0
package/README.md
CHANGED
|
@@ -40,6 +40,35 @@ const simulatorClient = createSimulatorClient({
|
|
|
40
40
|
})
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
## SDK i18n catalogs
|
|
44
|
+
|
|
45
|
+
SDK-owned simulator messages use typed ICU values through the separate i18n
|
|
46
|
+
subpath. Load only the UI message pack and card-text locale shard your surface
|
|
47
|
+
needs; root SDK imports do not load card prose.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
import { formatMessage, prepareMessageCatalog } from '@my-swu/simulator-client/i18n'
|
|
51
|
+
import englishMessages from '@my-swu/simulator-client/i18n/messages/en.json' with { type: 'json' }
|
|
52
|
+
|
|
53
|
+
const messages = prepareMessageCatalog(englishMessages)
|
|
54
|
+
formatMessage(messages, 'chooseTargets', { min: 1, max: 2 })
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Literal card shards need their shared manifest and asynchronous preparation so
|
|
58
|
+
each shard hash is verified before synchronous lookup.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import { prepareCardTextCatalog } from '@my-swu/simulator-client/i18n'
|
|
62
|
+
import manifest from '@my-swu/simulator-client/i18n/cards/manifest.json' with { type: 'json' }
|
|
63
|
+
import englishCardText from '@my-swu/simulator-client/i18n/cards/en.json' with { type: 'json' }
|
|
64
|
+
|
|
65
|
+
const cardText = await prepareCardTextCatalog(manifest, englishCardText)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Maintainers run
|
|
69
|
+
`cargo card-text generate`, `cargo card-text check`, and `pnpm i18n:check` to
|
|
70
|
+
regenerate and verify reviewed catalogs.
|
|
71
|
+
|
|
43
72
|
## Card ids
|
|
44
73
|
|
|
45
74
|
Decks and commands use card ids. These are not collector numbers or
|
package/dist/client.js
CHANGED
|
@@ -49,7 +49,12 @@ export function createSimulatorClient(options) {
|
|
|
49
49
|
});
|
|
50
50
|
const cards = createCardsResource(requester);
|
|
51
51
|
const admin = createAdminResource(requester);
|
|
52
|
-
const limitedEvents = createLimitedEventsResource(
|
|
52
|
+
const limitedEvents = createLimitedEventsResource({
|
|
53
|
+
requester,
|
|
54
|
+
validate,
|
|
55
|
+
wsUrl: webSocketBaseUrl(baseUrl),
|
|
56
|
+
...(options.webSocketFactory == null ? {} : { webSocketFactory: options.webSocketFactory }),
|
|
57
|
+
});
|
|
53
58
|
const lobbies = createLobbiesResource({
|
|
54
59
|
requester,
|
|
55
60
|
validate,
|
package/dist/connection/url.d.ts
CHANGED
|
@@ -53,3 +53,5 @@ export declare function matchSocketProtocols(token: MatchSocketToken): string[];
|
|
|
53
53
|
* player token off-URL: `['swu.player-token', playerToken]`.
|
|
54
54
|
*/
|
|
55
55
|
export declare function playerTokenProtocols(playerToken: string): string[];
|
|
56
|
+
/** Returns WebSocket subprotocols carrying one seat token off-URL. */
|
|
57
|
+
export declare function seatTokenProtocols(seatToken: string): string[];
|
package/dist/connection/url.js
CHANGED
|
@@ -44,3 +44,7 @@ export function matchSocketProtocols(token) {
|
|
|
44
44
|
export function playerTokenProtocols(playerToken) {
|
|
45
45
|
return [PLAYER_TOKEN_PROTOCOL, playerToken];
|
|
46
46
|
}
|
|
47
|
+
/** Returns WebSocket subprotocols carrying one seat token off-URL. */
|
|
48
|
+
export function seatTokenProtocols(seatToken) {
|
|
49
|
+
return [MATCH_SEAT_TOKEN_PROTOCOL, seatToken];
|
|
50
|
+
}
|
|
@@ -73,6 +73,8 @@ export type { LimitedEventPreflightResponse } from './types/limited-event-prefli
|
|
|
73
73
|
export type { LimitedEventResponse } from './types/limited-event-response.js';
|
|
74
74
|
export type { LimitedEventCommandRequest } from './types/limited-event-command-request.js';
|
|
75
75
|
export type { JoinLimitedEventRequest } from './types/join-limited-event-request.js';
|
|
76
|
+
export type { LeaveLimitedEventRequest } from './types/leave-limited-event-request.js';
|
|
77
|
+
export type { LimitedEventServerMessage } from './types/limited-event-server-message.js';
|
|
76
78
|
export type { MatchAccessResponse } from './types/match-access-response.js';
|
|
77
79
|
export type { AbandonMatchRequest } from './types/abandon-match-request.js';
|
|
78
80
|
export type { AbandonMatchResponse } from './types/abandon-match-response.js';
|
|
@@ -105,6 +107,8 @@ export type { MatchHistoryDeckStatsResponse } from './types/match-history-deck-s
|
|
|
105
107
|
export type { MatchHistoryEntry } from './types/match-history-entry.js';
|
|
106
108
|
export type { MatchHistoryReplayRequest } from './types/match-history-replay-request.js';
|
|
107
109
|
export type { MatchHistoryReplayResponse } from './types/match-history-replay-response.js';
|
|
110
|
+
export type { SubmitAiGameFeedbackRequest } from './types/submit-ai-game-feedback-request.js';
|
|
111
|
+
export type { SubmitAiGameFeedbackResponse } from './types/submit-ai-game-feedback-response.js';
|
|
108
112
|
export type { CreateMatchHistoryReplayShareRequest } from './types/create-match-history-replay-share-request.js';
|
|
109
113
|
export type { CreateMatchHistoryReplayShareResponse } from './types/create-match-history-replay-share-response.js';
|
|
110
114
|
export type { SharedMatchHistoryReplayResponse } from './types/shared-match-history-replay-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 ["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", "set-playground-ai-seat-request", "playground-export-payload", "create-playground-share-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"];
|
|
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", "leave-limited-event-request", "limited-event-server-message", "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", "set-playground-ai-seat-request", "playground-export-payload", "create-playground-share-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", "submit-ai-game-feedback-request", "submit-ai-game-feedback-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.
|