@my-swu/simulator-client 0.1.6 → 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.
Files changed (111) hide show
  1. package/README.md +29 -0
  2. package/dist/client.js +6 -1
  3. package/dist/connection/url.d.ts +2 -0
  4. package/dist/connection/url.js +4 -0
  5. package/dist/generated/index.d.ts +4 -0
  6. package/dist/generated/schemas.d.ts +1 -1
  7. package/dist/generated/schemas.js +1405 -23
  8. package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -1
  9. package/dist/generated/types/admin-match-list-response.d.ts +1 -1
  10. package/dist/generated/types/admin-match-replay-response.d.ts +1 -1
  11. package/dist/generated/types/common.d.ts +445 -0
  12. package/dist/generated/types/create-limited-event-request.d.ts +1 -1
  13. package/dist/generated/types/format-event-response.d.ts +1 -1
  14. package/dist/generated/types/game-event.d.ts +1 -1
  15. package/dist/generated/types/game-state.d.ts +1 -1
  16. package/dist/generated/types/get-match-response.d.ts +1 -1
  17. package/dist/generated/types/leave-limited-event-request.d.ts +1 -0
  18. package/dist/generated/types/leave-limited-event-request.js +2 -0
  19. package/dist/generated/types/limited-event-server-message.d.ts +1 -0
  20. package/dist/generated/types/limited-event-server-message.js +2 -0
  21. package/dist/generated/types/list-active-ai-matches-response.d.ts +1 -1
  22. package/dist/generated/types/lobby-access-response.d.ts +1 -1
  23. package/dist/generated/types/lobby-chat-response.d.ts +1 -1
  24. package/dist/generated/types/lobby-response.d.ts +1 -1
  25. package/dist/generated/types/lobby-server-message.d.ts +1 -1
  26. package/dist/generated/types/match-access-recovery-response.d.ts +1 -1
  27. package/dist/generated/types/match-access-response.d.ts +1 -1
  28. package/dist/generated/types/match-history-replay-response.d.ts +1 -1
  29. package/dist/generated/types/match-recovery-response.d.ts +1 -1
  30. package/dist/generated/types/match-spectator-access-response.d.ts +1 -1
  31. package/dist/generated/types/rematch-match-response.d.ts +1 -1
  32. package/dist/generated/types/restore-history-response.d.ts +1 -1
  33. package/dist/generated/types/restore-match-save-response.d.ts +1 -1
  34. package/dist/generated/types/server-message.d.ts +1 -1
  35. package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -1
  36. package/dist/generated/types/submit-ai-game-feedback-request.d.ts +1 -0
  37. package/dist/generated/types/submit-ai-game-feedback-request.js +2 -0
  38. package/dist/generated/types/submit-ai-game-feedback-response.d.ts +1 -0
  39. package/dist/generated/types/submit-ai-game-feedback-response.js +2 -0
  40. package/dist/generated/types/submit-match-deck-response.d.ts +1 -1
  41. package/dist/generated/types/tournament-room-access-response.d.ts +1 -1
  42. package/dist/generated/types/tournament-room-server-message.d.ts +1 -1
  43. package/dist/generated/types/undo-match-response.d.ts +1 -1
  44. package/dist/generated/types/update-lobby-settings-request.d.ts +1 -1
  45. package/dist/generated/version.d.ts +1 -1
  46. package/dist/generated/version.js +1 -1
  47. package/dist/http/request.d.ts +2 -0
  48. package/dist/http/request.js +9 -1
  49. package/dist/i18n/card-print-catalog.d.ts +9 -0
  50. package/dist/i18n/card-print-catalog.js +260 -0
  51. package/dist/i18n/catalog.d.ts +8 -0
  52. package/dist/i18n/catalog.js +195 -0
  53. package/dist/i18n/diagnostics.d.ts +6 -0
  54. package/dist/i18n/diagnostics.js +19 -0
  55. package/dist/i18n/fallback.d.ts +3 -0
  56. package/dist/i18n/fallback.js +40 -0
  57. package/dist/i18n/format.d.ts +8 -0
  58. package/dist/i18n/format.js +29 -0
  59. package/dist/i18n/generated/message-types.d.ts +91 -0
  60. package/dist/i18n/generated/message-types.js +3 -0
  61. package/dist/i18n/icu.d.ts +12 -0
  62. package/dist/i18n/icu.js +75 -0
  63. package/dist/i18n/index.d.ts +9 -0
  64. package/dist/i18n/index.js +5 -0
  65. package/dist/i18n/locale.d.ts +9 -0
  66. package/dist/i18n/locale.js +19 -0
  67. package/dist/i18n/types.d.ts +151 -0
  68. package/dist/i18n/types.js +1 -0
  69. package/dist/index.d.ts +4 -3
  70. package/dist/internal/authenticated-socket-session.d.ts +2 -0
  71. package/dist/internal/authenticated-socket-session.js +3 -1
  72. package/dist/local/client.js +7 -2
  73. package/dist/local/server/http-router.js +18 -0
  74. package/dist/resources/admin.d.ts +8 -0
  75. package/dist/resources/admin.js +2 -0
  76. package/dist/resources/limited-event-session.d.ts +10 -0
  77. package/dist/resources/limited-event-session.js +35 -0
  78. package/dist/resources/limited-event-types.d.ts +34 -1
  79. package/dist/resources/limited-events.d.ts +8 -1
  80. package/dist/resources/limited-events.js +18 -1
  81. package/dist/resources/lobbies.d.ts +1 -1
  82. package/dist/resources/lobbies.js +1 -1
  83. package/dist/resources/lobby-types.d.ts +15 -2
  84. package/dist/resources/match-history.d.ts +8 -1
  85. package/dist/resources/match-history.js +10 -0
  86. package/dist/resources/tournament-rooms.d.ts +1 -1
  87. package/dist/resources/tournament-rooms.js +1 -1
  88. package/dist/validators.d.ts +5 -1
  89. package/i18n/cards/de.json +121 -0
  90. package/i18n/cards/en.json +121 -0
  91. package/i18n/cards/es.json +121 -0
  92. package/i18n/cards/fr.json +121 -0
  93. package/i18n/cards/it.json +121 -0
  94. package/i18n/cards/manifest.json +2715 -0
  95. package/i18n/de.json +11 -0
  96. package/i18n/en.json +11 -0
  97. package/i18n/es.json +11 -0
  98. package/i18n/fr.json +11 -0
  99. package/i18n/it.json +11 -0
  100. package/i18n/messages.schema.json +28 -0
  101. package/package.json +12 -2
  102. package/schema/common.schema.json +1092 -1
  103. package/schema/create-limited-event-request.schema.json +11 -0
  104. package/schema/game-event.schema.json +76 -0
  105. package/schema/leave-limited-event-request.schema.json +15 -0
  106. package/schema/limited-event-server-message.schema.json +63 -0
  107. package/schema/manifest.json +5 -1
  108. package/schema/route-manifest.json +54 -0
  109. package/schema/submit-ai-game-feedback-request.schema.json +36 -0
  110. package/schema/submit-ai-game-feedback-response.schema.json +19 -0
  111. package/schema/update-lobby-settings-request.schema.json +67 -0
@@ -46,6 +46,17 @@
46
46
  "setCode": {
47
47
  "description": "Set code used for booster generation.",
48
48
  "type": "string"
49
+ },
50
+ "timerSettings": {
51
+ "description": "Optional lobby-owned pick and deck-construction schedule.",
52
+ "anyOf": [
53
+ {
54
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LimitedLobbyTimerSettings"
55
+ },
56
+ {
57
+ "type": "null"
58
+ }
59
+ ]
49
60
  }
50
61
  },
51
62
  "required": [
@@ -236,11 +236,33 @@
236
236
  "format": "uint32",
237
237
  "minimum": 0
238
238
  },
239
+ "inputProvenance": {
240
+ "description": "Exact reviewed owners for inputs supplied while playing this event.\n\nThis is emitted only for migrated declarations. It captures the\nplay command before later event clauses can replace the active\nprompt, which lets draft/history consumers retain the source input\nrather than borrowing a descendant's text.",
241
+ "anyOf": [
242
+ {
243
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EventPlayInputProvenance"
244
+ },
245
+ {
246
+ "type": "null"
247
+ }
248
+ ]
249
+ },
239
250
  "playedWithSmuggle": {
240
251
  "type": "boolean"
241
252
  },
242
253
  "seat": {
243
254
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
255
+ },
256
+ "text": {
257
+ "description": "Exact printed event declaration exposed when this public event was played.",
258
+ "anyOf": [
259
+ {
260
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
261
+ },
262
+ {
263
+ "type": "null"
264
+ }
265
+ ]
244
266
  }
245
267
  },
246
268
  "required": [
@@ -707,6 +729,38 @@
707
729
  "cardsRevealed"
708
730
  ]
709
731
  },
732
+ {
733
+ "description": "Public cards explicitly selected from a discard pile during ability resolution.",
734
+ "type": "object",
735
+ "properties": {
736
+ "cardsChosenFromDiscard": {
737
+ "type": "object",
738
+ "properties": {
739
+ "cardIds": {
740
+ "description": "Printed card identities in command order; duplicates represent distinct copies.",
741
+ "type": "array",
742
+ "items": {
743
+ "type": "integer",
744
+ "format": "uint32",
745
+ "minimum": 0
746
+ }
747
+ },
748
+ "seat": {
749
+ "description": "Player who made the selection, which may differ from the discard-pile owner.",
750
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
751
+ }
752
+ },
753
+ "required": [
754
+ "seat",
755
+ "cardIds"
756
+ ]
757
+ }
758
+ },
759
+ "additionalProperties": false,
760
+ "required": [
761
+ "cardsChosenFromDiscard"
762
+ ]
763
+ },
710
764
  {
711
765
  "type": "object",
712
766
  "properties": {
@@ -899,6 +953,17 @@
899
953
  "items": {
900
954
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
901
955
  }
956
+ },
957
+ "text": {
958
+ "description": "Exact public Action or Epic Action declaration that was used.",
959
+ "anyOf": [
960
+ {
961
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
962
+ },
963
+ {
964
+ "type": "null"
965
+ }
966
+ ]
902
967
  }
903
968
  },
904
969
  "required": [
@@ -938,6 +1003,17 @@
938
1003
  "format": "uint64",
939
1004
  "minimum": 0
940
1005
  },
1006
+ "text": {
1007
+ "description": "Exact public trigger declaration and currently resolved effect.",
1008
+ "anyOf": [
1009
+ {
1010
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
1011
+ },
1012
+ {
1013
+ "type": "null"
1014
+ }
1015
+ ]
1016
+ },
941
1017
  "window": {
942
1018
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityWindow"
943
1019
  }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "LeaveLimitedEventRequest",
4
+ "description": "Explicit departure from one direct Limited Event seat.",
5
+ "type": "object",
6
+ "properties": {
7
+ "seatToken": {
8
+ "description": "Seat token returned by create or join.",
9
+ "type": "string"
10
+ }
11
+ },
12
+ "required": [
13
+ "seatToken"
14
+ ]
15
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "LimitedEventServerMessage",
4
+ "description": "Server messages emitted by direct Limited Event sockets.",
5
+ "oneOf": [
6
+ {
7
+ "type": "object",
8
+ "properties": {
9
+ "payload": {
10
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LimitedEventSnapshot"
11
+ },
12
+ "type": {
13
+ "type": "string",
14
+ "const": "snapshot"
15
+ }
16
+ },
17
+ "required": [
18
+ "type",
19
+ "payload"
20
+ ]
21
+ },
22
+ {
23
+ "type": "object",
24
+ "properties": {
25
+ "payload": {
26
+ "type": "object",
27
+ "properties": {
28
+ "nonce": {
29
+ "type": [
30
+ "string",
31
+ "null"
32
+ ]
33
+ }
34
+ }
35
+ },
36
+ "type": {
37
+ "type": "string",
38
+ "const": "pong"
39
+ }
40
+ },
41
+ "required": [
42
+ "type",
43
+ "payload"
44
+ ]
45
+ },
46
+ {
47
+ "type": "object",
48
+ "properties": {
49
+ "payload": {
50
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ErrorPayload"
51
+ },
52
+ "type": {
53
+ "type": "string",
54
+ "const": "error"
55
+ }
56
+ },
57
+ "required": [
58
+ "type",
59
+ "payload"
60
+ ]
61
+ }
62
+ ]
63
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "f0334cd661de38164d34b780eea4872102c9f26c8e44630d13130a0c30054717",
2
+ "version": "15b7e3f89474d6a789a582f441912c549b989474569daf636ab0cb22dd2ea8f3",
3
3
  "files": [
4
4
  "admin-match-list-response.schema.json",
5
5
  "admin-match-debug-bundle.schema.json",
@@ -75,6 +75,8 @@
75
75
  "limited-event-response.schema.json",
76
76
  "limited-event-command-request.schema.json",
77
77
  "join-limited-event-request.schema.json",
78
+ "leave-limited-event-request.schema.json",
79
+ "limited-event-server-message.schema.json",
78
80
  "match-access-response.schema.json",
79
81
  "abandon-match-request.schema.json",
80
82
  "abandon-match-response.schema.json",
@@ -107,6 +109,8 @@
107
109
  "match-history-entry.schema.json",
108
110
  "match-history-replay-request.schema.json",
109
111
  "match-history-replay-response.schema.json",
112
+ "submit-ai-game-feedback-request.schema.json",
113
+ "submit-ai-game-feedback-response.schema.json",
110
114
  "create-match-history-replay-share-request.schema.json",
111
115
  "create-match-history-replay-share-response.schema.json",
112
116
  "shared-match-history-replay-response.schema.json",
@@ -145,6 +145,28 @@
145
145
  "method": "matchChatMessage"
146
146
  }
147
147
  },
148
+ {
149
+ "operationId": "getAdminMatchDebugBundle",
150
+ "method": "GET",
151
+ "path": "/api/admin/matches/{match_id}/debug",
152
+ "responseSchema": "admin-match-debug-bundle",
153
+ "sdk": {
154
+ "kind": "required",
155
+ "resource": "admin",
156
+ "method": "getMatchDebugBundle"
157
+ }
158
+ },
159
+ {
160
+ "operationId": "getAdminMatchReplay",
161
+ "method": "GET",
162
+ "path": "/api/admin/matches/{match_id}/replay",
163
+ "responseSchema": "admin-match-replay-response",
164
+ "sdk": {
165
+ "kind": "required",
166
+ "resource": "admin",
167
+ "method": "getMatchReplay"
168
+ }
169
+ },
148
170
  {
149
171
  "operationId": "debug_ui_index",
150
172
  "method": "GET",
@@ -305,6 +327,17 @@
305
327
  "method": "applyCommand"
306
328
  }
307
329
  },
330
+ {
331
+ "operationId": "limited_event_leave",
332
+ "method": "POST",
333
+ "path": "/api/limited-events/{event_id}/leave",
334
+ "requestSchema": "leave-limited-event-request",
335
+ "sdk": {
336
+ "kind": "required",
337
+ "resource": "limitedEvents",
338
+ "method": "leave"
339
+ }
340
+ },
308
341
  {
309
342
  "operationId": "match_create",
310
343
  "method": "POST",
@@ -912,6 +945,18 @@
912
945
  "method": "replay"
913
946
  }
914
947
  },
948
+ {
949
+ "operationId": "match_history_ai_feedback",
950
+ "method": "POST",
951
+ "path": "/api/match-history/{source_match_id}/ai-feedback",
952
+ "requestSchema": "submit-ai-game-feedback-request",
953
+ "responseSchema": "submit-ai-game-feedback-response",
954
+ "sdk": {
955
+ "kind": "required",
956
+ "resource": "matchHistory",
957
+ "method": "submitAiGameFeedback"
958
+ }
959
+ },
915
960
  {
916
961
  "operationId": "match_history_replay_share_create",
917
962
  "method": "POST",
@@ -1152,6 +1197,15 @@
1152
1197
  "reason": "websocket route"
1153
1198
  }
1154
1199
  },
1200
+ {
1201
+ "operationId": "limited_event_ws",
1202
+ "method": "GET",
1203
+ "path": "/ws/limited-events/{event_id}",
1204
+ "sdk": {
1205
+ "kind": "internal",
1206
+ "reason": "websocket route"
1207
+ }
1208
+ },
1155
1209
  {
1156
1210
  "operationId": "tournament_room_ws",
1157
1211
  "method": "GET",
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "SubmitAiGameFeedbackRequest",
4
+ "description": "Participant-authorized feedback for one completed Solo-versus-AI game.",
5
+ "type": "object",
6
+ "properties": {
7
+ "comments": {
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ],
12
+ "maxLength": 2000
13
+ },
14
+ "gameNumber": {
15
+ "type": "integer",
16
+ "format": "uint8",
17
+ "maximum": 255,
18
+ "minimum": 1
19
+ },
20
+ "identities": {
21
+ "type": "array",
22
+ "items": {
23
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/HistoryIdentityInput"
24
+ },
25
+ "minItems": 1
26
+ },
27
+ "rating": {
28
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedbackRating"
29
+ }
30
+ },
31
+ "required": [
32
+ "identities",
33
+ "gameNumber",
34
+ "rating"
35
+ ]
36
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "SubmitAiGameFeedbackResponse",
4
+ "description": "Result of an idempotent AI-game-feedback submission.",
5
+ "type": "object",
6
+ "properties": {
7
+ "created": {
8
+ "description": "`false` means this game had already received feedback.",
9
+ "type": "boolean"
10
+ },
11
+ "feedback": {
12
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedback"
13
+ }
14
+ },
15
+ "required": [
16
+ "feedback",
17
+ "created"
18
+ ]
19
+ }
@@ -13,6 +13,24 @@
13
13
  "maximum": 255,
14
14
  "minimum": 0
15
15
  },
16
+ "clearMatchSeed": {
17
+ "description": "Clears the deterministic match seed, restoring random matches.",
18
+ "type": "boolean"
19
+ },
20
+ "clearPackSeed": {
21
+ "description": "Clears the deterministic Limited pool seed, restoring random pools.",
22
+ "type": "boolean"
23
+ },
24
+ "draftRounds": {
25
+ "description": "Replacement Chaos Draft booster sequence.",
26
+ "type": [
27
+ "array",
28
+ "null"
29
+ ],
30
+ "items": {
31
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DraftRoundConfig"
32
+ }
33
+ },
16
34
  "gameTimerEnabled": {
17
35
  "type": [
18
36
  "boolean",
@@ -30,6 +48,27 @@
30
48
  }
31
49
  ]
32
50
  },
51
+ "matchSeed": {
52
+ "description": "Replacement deterministic match seed.",
53
+ "type": [
54
+ "string",
55
+ "null"
56
+ ]
57
+ },
58
+ "packSeed": {
59
+ "description": "Replacement deterministic Limited pool seed.",
60
+ "type": [
61
+ "string",
62
+ "null"
63
+ ]
64
+ },
65
+ "pickTimerEnabled": {
66
+ "description": "Enables or disables draft pick auto-selection countdowns.",
67
+ "type": [
68
+ "boolean",
69
+ "null"
70
+ ]
71
+ },
33
72
  "playerCount": {
34
73
  "type": [
35
74
  "integer",
@@ -42,6 +81,34 @@
42
81
  "playerToken": {
43
82
  "type": "string"
44
83
  },
84
+ "sealedPackCount": {
85
+ "description": "Replacement Sealed booster count.",
86
+ "type": [
87
+ "integer",
88
+ "null"
89
+ ],
90
+ "format": "uint8",
91
+ "maximum": 255,
92
+ "minimum": 0
93
+ },
94
+ "setCode": {
95
+ "description": "Replacement Limited set code for sealed and normal Draft lobbies.",
96
+ "type": [
97
+ "string",
98
+ "null"
99
+ ]
100
+ },
101
+ "timerSettings": {
102
+ "description": "Replaces timer durations for the final match and Limited event.",
103
+ "anyOf": [
104
+ {
105
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyTimerSettings"
106
+ },
107
+ {
108
+ "type": "null"
109
+ }
110
+ ]
111
+ },
45
112
  "trilogyFormat": {
46
113
  "description": "Replacement legality profile for Trilogy lobbies.",
47
114
  "anyOf": [