@ughuuu/game_server 1.0.1058 → 1.0.1063
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 +72 -36
- package/dist/ApiClient.js +2 -2
- package/dist/api/AdminChatApi.js +2 -2
- package/dist/api/AdminEconomyApi.js +2 -2
- package/dist/api/AdminGroupsApi.js +2 -2
- package/dist/api/AdminKVApi.js +2 -2
- package/dist/api/AdminLeaderboardsApi.js +2 -2
- package/dist/api/AdminLobbiesApi.js +2 -2
- package/dist/api/AdminMatchmakingApi.js +2 -2
- package/dist/api/AdminNotificationsApi.js +2 -2
- package/dist/api/AdminPushApi.js +179 -0
- package/dist/api/AdminQuestsApi.js +418 -0
- package/dist/api/AdminSessionsApi.js +2 -2
- package/dist/api/AdminStorageApi.js +2 -2
- package/dist/api/AdminTournamentsApi.js +2 -2
- package/dist/api/AdminUsersApi.js +2 -2
- package/dist/api/AuthenticationApi.js +2 -2
- package/dist/api/ChatApi.js +2 -2
- package/dist/api/EconomyApi.js +2 -2
- package/dist/api/FriendsApi.js +2 -2
- package/dist/api/GroupsApi.js +2 -2
- package/dist/api/HealthApi.js +2 -2
- package/dist/api/HooksApi.js +2 -2
- package/dist/api/KVApi.js +2 -2
- package/dist/api/LeaderboardsApi.js +2 -2
- package/dist/api/LobbiesApi.js +41 -2
- package/dist/api/MatchmakingApi.js +2 -2
- package/dist/api/NotificationsApi.js +2 -2
- package/dist/api/PartiesApi.js +2 -2
- package/dist/api/PaymentsApi.js +2 -2
- package/dist/api/PushApi.js +166 -0
- package/dist/api/QuestsApi.js +233 -0
- package/dist/api/TournamentsApi.js +2 -2
- package/dist/api/UsersApi.js +2 -2
- package/dist/gamend_proto.js +14 -5
- package/dist/gamend_realtime.pb.js +205 -106
- package/dist/index.js +185 -80
- package/dist/model/AcceptPartyInvite200Response.js +2 -2
- package/dist/model/AcceptPartyInvite200ResponseMembersInner.js +2 -2
- package/dist/model/AcceptPartyInviteRequest.js +2 -2
- package/dist/model/AdminCancelMatchmakingTicket200Response.js +2 -2
- package/dist/model/AdminCreateLeaderboard200Response.js +2 -2
- package/dist/model/AdminCreateLeaderboard200ResponseData.js +2 -2
- package/dist/model/AdminCreateLeaderboardRequest.js +2 -2
- package/dist/model/AdminCreateNotificationRequest.js +2 -2
- package/dist/model/AdminCreateQuestRequest.js +321 -0
- package/dist/model/AdminCreateQuestRequestObjectivesInner.js +128 -0
- package/dist/model/AdminCreateQuestRequestRewardsInner.js +152 -0
- package/dist/model/AdminDeleteChatConversation200Response.js +2 -2
- package/dist/model/AdminDrawTournament200Response.js +2 -2
- package/dist/model/AdminDrawTournament200ResponseData.js +2 -2
- package/dist/model/AdminGrantItemRequest.js +2 -2
- package/dist/model/AdminListChatMessages200Response.js +6 -6
- package/dist/model/AdminListChatMessages200ResponseDataInner.js +2 -2
- package/dist/model/AdminListGroups200Response.js +6 -6
- package/dist/model/AdminListKvEntries200Response.js +6 -6
- package/dist/model/AdminListLobbies200Response.js +6 -6
- package/dist/model/AdminListLobbies200ResponseDataInner.js +2 -2
- package/dist/model/AdminListMatchmakingTickets200Response.js +6 -6
- package/dist/model/AdminListMatchmakingTickets200ResponseDataInner.js +2 -2
- package/dist/model/AdminListNotifications200Response.js +6 -6
- package/dist/model/AdminListNotifications200ResponseDataInner.js +2 -2
- package/dist/model/AdminListPushTokens200Response.js +118 -0
- package/dist/model/AdminListPushTokens200ResponseDataInner.js +226 -0
- package/dist/model/AdminListQuestProgress200Response.js +118 -0
- package/dist/model/AdminListQuestProgress200ResponseDataInner.js +208 -0
- package/dist/model/AdminListQuests200Response.js +118 -0
- package/dist/model/AdminListQuests200ResponseDataInner.js +310 -0
- package/dist/model/AdminListSessions200Response.js +6 -6
- package/dist/model/AdminListSessions200ResponseDataInner.js +2 -2
- package/dist/model/AdminListStorageObjects200Response.js +2 -2
- package/dist/model/AdminListStorageObjects200ResponseDataInner.js +2 -2
- package/dist/model/AdminListStorageObjects200ResponseUsage.js +2 -2
- package/dist/model/AdminMatchmakingStats200Response.js +2 -2
- package/dist/model/AdminMatchmakingStats200ResponseData.js +2 -2
- package/dist/model/AdminResetQuestRequest.js +127 -0
- package/dist/model/AdminResolveTournamentMatchRequest.js +2 -2
- package/dist/model/AdminSendPushRequest.js +190 -0
- package/dist/model/AdminSpendCurrencyRequest.js +2 -2
- package/dist/model/AdminSubmitLeaderboardScoreRequest.js +2 -2
- package/dist/model/AdminUpdateGroup200Response.js +2 -2
- package/dist/model/AdminUpdateGroupRequest.js +2 -2
- package/dist/model/AdminUpdateKvEntryRequest.js +2 -2
- package/dist/model/AdminUpdateLeaderboardRecord200Response.js +2 -2
- package/dist/model/AdminUpdateLeaderboardRecord200ResponseData.js +2 -2
- package/dist/model/AdminUpdateLeaderboardRecordRequest.js +2 -2
- package/dist/model/AdminUpdateLeaderboardRequest.js +2 -2
- package/dist/model/AdminUpdateLobby200Response.js +2 -2
- package/dist/model/AdminUpdateLobbyRequest.js +2 -2
- package/dist/model/AdminUpdateTournamentRequest.js +2 -2
- package/dist/model/AdminUpdateUser200Response.js +2 -2
- package/dist/model/AdminUpdateUser200ResponseData.js +2 -2
- package/dist/model/AdminUpdateUserRequest.js +2 -2
- package/dist/model/AdminUpsertKv200Response.js +2 -2
- package/dist/model/AdminUpsertKv200ResponseData.js +2 -2
- package/dist/model/AdminUpsertKvRequest.js +2 -2
- package/dist/model/ApproveJoinRequest200Response.js +2 -2
- package/dist/model/CallHook200Response.js +2 -2
- package/dist/model/CallHookRequest.js +2 -2
- package/dist/model/CancelJoinRequest200Response.js +2 -2
- package/dist/model/CancelPartyInviteRequest.js +2 -2
- package/dist/model/ChatUnreadCount200Response.js +2 -2
- package/dist/model/ClaimQuest200Response.js +91 -0
- package/dist/model/ClaimQuest200ResponseData.js +124 -0
- package/dist/model/CreateCurrentUserAvatarUploadUrlRequest.js +2 -2
- package/dist/model/CreateFriendRequestRequest.js +2 -2
- package/dist/model/CreateGroupRequest.js +2 -2
- package/dist/model/CreateLobbyRequest.js +2 -2
- package/dist/model/CreatePartyRequest.js +2 -2
- package/dist/model/DeclineGroupInvite200Response.js +2 -2
- package/dist/model/DeclinePartyInviteRequest.js +2 -2
- package/dist/model/DeleteNotifications200Response.js +2 -2
- package/dist/model/DeleteNotificationsRequest.js +2 -2
- package/dist/model/DeletePushToken200Response.js +210 -0
- package/dist/model/DemoteGroupMemberRequest.js +2 -2
- package/dist/model/DeviceLoginRequest.js +2 -2
- package/dist/model/ErrorResponse.js +2 -2
- package/dist/model/GetCurrentUser200Response.js +2 -2
- package/dist/model/GetCurrentUser200ResponseLinkedProviders.js +2 -2
- package/dist/model/GetCurrentUserInventory200Response.js +2 -2
- package/dist/model/GetKv200Response.js +2 -2
- package/dist/model/GetLobby200Response.js +2 -2
- package/dist/model/GetMyRecord200Response.js +2 -2
- package/dist/model/GetMyRecord200ResponseData.js +2 -2
- package/dist/model/HealthResponse.js +2 -2
- package/dist/model/InviteToGroup200Response.js +2 -2
- package/dist/model/InviteToGroupRequest.js +2 -2
- package/dist/model/InviteToPartyRequest.js +2 -2
- package/dist/model/KickGroupMemberRequest.js +2 -2
- package/dist/model/KickPartyMemberRequest.js +2 -2
- package/dist/model/LinkDeviceRequest.js +2 -2
- package/dist/model/ListBlacklistedUsers200Response.js +2 -2
- package/dist/model/ListBlacklistedUsers200ResponseDataInner.js +2 -2
- package/dist/model/ListBlockedFriends200Response.js +6 -6
- package/dist/model/ListBlockedFriends200ResponseDataInner.js +2 -2
- package/dist/model/ListChatMessages200Response.js +2 -2
- package/dist/model/ListChatMessages200ResponseDataInner.js +2 -2
- package/dist/model/ListCurrentUserLedger200Response.js +2 -2
- package/dist/model/ListCurrentUserLedger200ResponseDataInner.js +2 -2
- package/dist/model/ListCurrentUserLedger401Response.js +2 -2
- package/dist/model/ListFriendRequests200Response.js +2 -2
- package/dist/model/ListFriendRequests200ResponseIncomingInner.js +2 -2
- package/dist/model/ListFriendRequests200ResponseIncomingInnerRequester.js +2 -2
- package/dist/model/ListFriendRequests200ResponseMeta.js +2 -2
- package/dist/model/ListFriends200Response.js +6 -6
- package/dist/model/ListFriends200ResponseDataInner.js +2 -2
- package/dist/model/ListGroupInvitations200Response.js +6 -6
- package/dist/model/ListGroupInvitations200ResponseDataInner.js +2 -2
- package/dist/model/ListGroupMembers200Response.js +6 -6
- package/dist/model/ListJoinRequests200Response.js +6 -6
- package/dist/model/ListLeaderboardRecords200Response.js +6 -6
- package/dist/model/ListLeaderboards200Response.js +6 -6
- package/dist/model/ListLobbies200Response.js +6 -6
- package/dist/model/ListLobbies200ResponseDataInner.js +2 -2
- package/dist/model/ListMyGroups200Response.js +6 -6
- package/dist/model/ListMyGroups200ResponseDataInner.js +2 -2
- package/dist/model/ListNotifications200Response.js +6 -6
- package/dist/model/ListNotifications200ResponseDataInner.js +2 -2
- package/dist/model/ListPartyInvitations200ResponseInner.js +2 -2
- package/dist/model/ListPushTokens200Response.js +118 -0
- package/dist/model/ListRecordsAroundUser200Response.js +2 -2
- package/dist/model/ListSentInvitations200Response.js +6 -6
- package/dist/model/ListSentInvitations200ResponseDataInner.js +2 -2
- package/dist/model/ListTournaments200Response.js +2 -2
- package/dist/model/ListTournaments200ResponseDataInner.js +2 -2
- package/dist/model/Login200Response.js +2 -2
- package/dist/model/Login200ResponseData.js +2 -2
- package/dist/model/LoginRequest.js +2 -2
- package/dist/model/MarkChatReadRequest.js +2 -2
- package/dist/model/MatchmakingCancel200Response.js +2 -2
- package/dist/model/MatchmakingJoin201Response.js +2 -2
- package/dist/model/MatchmakingJoin201ResponseData.js +2 -2
- package/dist/model/MatchmakingJoinRequest.js +2 -2
- package/dist/model/MatchmakingMyTicket200Response.js +2 -2
- package/dist/model/MatchmakingMyTicket200ResponseData.js +2 -2
- package/dist/model/MatchmakingStats200Response.js +2 -2
- package/dist/model/MatchmakingStats200ResponseData.js +2 -2
- package/dist/model/MatchmakingStats200ResponseDataQueuesInner.js +2 -2
- package/dist/model/NotifyGroup200Response.js +2 -2
- package/dist/model/NotifyGroupRequest.js +2 -2
- package/dist/model/OAuthSessionData.js +2 -2
- package/dist/model/OAuthSessionDataDetails.js +2 -2
- package/dist/model/OAuthSessionStatus.js +2 -2
- package/dist/model/OauthApiCallback200Response.js +2 -2
- package/dist/model/OauthApiCallbackRequest.js +2 -2
- package/dist/model/OauthCallbackApiAppleIosRequest.js +2 -2
- package/dist/model/OauthGoogleIdTokenRequest.js +2 -2
- package/dist/model/OauthRequest200Response.js +2 -2
- package/dist/model/OauthSessionStatus404Response.js +2 -2
- package/dist/model/PartyCreateLobbyRequest.js +2 -2
- package/dist/model/PartyJoinLobbyRequest.js +2 -2
- package/dist/model/PaymentsSteamCheckoutRequest.js +2 -2
- package/dist/model/PaymentsSteamFinalizeRequest.js +2 -2
- package/dist/model/PaymentsStripeCheckoutRequest.js +2 -2
- package/dist/model/PromoteGroupMemberRequest.js +2 -2
- package/dist/model/QuickJoinRequest.js +2 -2
- package/dist/model/RefreshToken200Response.js +2 -2
- package/dist/model/RefreshToken200ResponseData.js +2 -2
- package/dist/model/RefreshTokenRequest.js +2 -2
- package/dist/model/RegisterPushTokenRequest.js +199 -0
- package/dist/model/ResolveLeaderboardSlugs200Response.js +2 -2
- package/dist/model/ResolveLeaderboardSlugs200ResponseDataValue.js +2 -2
- package/dist/model/ResolveLeaderboardSlugsRequest.js +2 -2
- package/dist/model/SearchUsers200Response.js +6 -6
- package/dist/model/SearchUsers200ResponseDataInner.js +2 -2
- package/dist/model/SendChatMessageRequest.js +2 -2
- package/dist/model/SendNotificationRequest.js +2 -2
- package/dist/model/SetCurrentUserAvatarRequest.js +2 -2
- package/dist/model/SetLobbyStateRequest.js +113 -0
- package/dist/model/TournamentMyMatch200Response.js +2 -2
- package/dist/model/UpdateChatMessageRequest.js +2 -2
- package/dist/model/UpdateCurrentUserDisplayName400Response.js +2 -2
- package/dist/model/UpdateCurrentUserDisplayNameRequest.js +2 -2
- package/dist/model/UpdateCurrentUserPasswordRequest.js +2 -2
- package/dist/model/UpdateCurrentUserUsernameRequest.js +2 -2
- package/dist/model/UpdateGroupRequest.js +2 -2
- package/dist/model/UpdateLobbyRequest.js +2 -2
- package/dist/model/UpdatePartyRequest.js +2 -2
- package/dist/model/UserQuests200Response.js +124 -0
- package/dist/model/UserQuests200ResponseDataInner.js +361 -0
- package/dist/model/UserQuests200ResponseDataInnerObjectivesInner.js +108 -0
- package/dist/model/UserQuests200ResponseDataInnerProgress.js +150 -0
- package/dist/model/UserQuests200ResponseDataInnerRewardsInner.js +130 -0
- package/dist/model/UserQuests200ResponseMeta.js +125 -0
- package/package.json +2 -2
- package/dist/api/AchievementsApi.js +0 -224
- package/dist/api/AdminAchievementsApi.js +0 -356
- package/dist/model/AdminCreateAchievementRequest.js +0 -182
- package/dist/model/AdminGrantAchievementRequest.js +0 -126
- package/dist/model/AdminIncrementAchievementRequest.js +0 -134
- package/dist/model/AdminListAchievements200Response.js +0 -118
- package/dist/model/AdminListAchievements200ResponseDataInner.js +0 -185
- package/dist/model/AdminRevokeAchievementRequest.js +0 -126
- package/dist/model/AdminUpdateAchievementRequest.js +0 -145
- package/dist/model/ListFriends200ResponseMeta.js +0 -125
- package/dist/model/MyAchievements200Response.js +0 -124
- package/dist/model/MyAchievements200ResponseDataInner.js +0 -196
package/dist/index.js
CHANGED
|
@@ -21,18 +21,6 @@ Object.defineProperty(exports, "AcceptPartyInviteRequest", {
|
|
|
21
21
|
return _AcceptPartyInviteRequest["default"];
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "AchievementsApi", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function get() {
|
|
27
|
-
return _AchievementsApi["default"];
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(exports, "AdminAchievementsApi", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function get() {
|
|
33
|
-
return _AdminAchievementsApi["default"];
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
24
|
Object.defineProperty(exports, "AdminCancelMatchmakingTicket200Response", {
|
|
37
25
|
enumerable: true,
|
|
38
26
|
get: function get() {
|
|
@@ -45,12 +33,6 @@ Object.defineProperty(exports, "AdminChatApi", {
|
|
|
45
33
|
return _AdminChatApi["default"];
|
|
46
34
|
}
|
|
47
35
|
});
|
|
48
|
-
Object.defineProperty(exports, "AdminCreateAchievementRequest", {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function get() {
|
|
51
|
-
return _AdminCreateAchievementRequest["default"];
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
36
|
Object.defineProperty(exports, "AdminCreateLeaderboard200Response", {
|
|
55
37
|
enumerable: true,
|
|
56
38
|
get: function get() {
|
|
@@ -75,6 +57,24 @@ Object.defineProperty(exports, "AdminCreateNotificationRequest", {
|
|
|
75
57
|
return _AdminCreateNotificationRequest["default"];
|
|
76
58
|
}
|
|
77
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "AdminCreateQuestRequest", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _AdminCreateQuestRequest["default"];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "AdminCreateQuestRequestObjectivesInner", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function get() {
|
|
69
|
+
return _AdminCreateQuestRequestObjectivesInner["default"];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "AdminCreateQuestRequestRewardsInner", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _AdminCreateQuestRequestRewardsInner["default"];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
78
|
Object.defineProperty(exports, "AdminDeleteChatConversation200Response", {
|
|
79
79
|
enumerable: true,
|
|
80
80
|
get: function get() {
|
|
@@ -99,12 +99,6 @@ Object.defineProperty(exports, "AdminEconomyApi", {
|
|
|
99
99
|
return _AdminEconomyApi["default"];
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
|
-
Object.defineProperty(exports, "AdminGrantAchievementRequest", {
|
|
103
|
-
enumerable: true,
|
|
104
|
-
get: function get() {
|
|
105
|
-
return _AdminGrantAchievementRequest["default"];
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
102
|
Object.defineProperty(exports, "AdminGrantItemRequest", {
|
|
109
103
|
enumerable: true,
|
|
110
104
|
get: function get() {
|
|
@@ -117,12 +111,6 @@ Object.defineProperty(exports, "AdminGroupsApi", {
|
|
|
117
111
|
return _AdminGroupsApi["default"];
|
|
118
112
|
}
|
|
119
113
|
});
|
|
120
|
-
Object.defineProperty(exports, "AdminIncrementAchievementRequest", {
|
|
121
|
-
enumerable: true,
|
|
122
|
-
get: function get() {
|
|
123
|
-
return _AdminIncrementAchievementRequest["default"];
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
114
|
Object.defineProperty(exports, "AdminKVApi", {
|
|
127
115
|
enumerable: true,
|
|
128
116
|
get: function get() {
|
|
@@ -135,18 +123,6 @@ Object.defineProperty(exports, "AdminLeaderboardsApi", {
|
|
|
135
123
|
return _AdminLeaderboardsApi["default"];
|
|
136
124
|
}
|
|
137
125
|
});
|
|
138
|
-
Object.defineProperty(exports, "AdminListAchievements200Response", {
|
|
139
|
-
enumerable: true,
|
|
140
|
-
get: function get() {
|
|
141
|
-
return _AdminListAchievements200Response["default"];
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
Object.defineProperty(exports, "AdminListAchievements200ResponseDataInner", {
|
|
145
|
-
enumerable: true,
|
|
146
|
-
get: function get() {
|
|
147
|
-
return _AdminListAchievements200ResponseDataInner["default"];
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
126
|
Object.defineProperty(exports, "AdminListChatMessages200Response", {
|
|
151
127
|
enumerable: true,
|
|
152
128
|
get: function get() {
|
|
@@ -207,6 +183,42 @@ Object.defineProperty(exports, "AdminListNotifications200ResponseDataInner", {
|
|
|
207
183
|
return _AdminListNotifications200ResponseDataInner["default"];
|
|
208
184
|
}
|
|
209
185
|
});
|
|
186
|
+
Object.defineProperty(exports, "AdminListPushTokens200Response", {
|
|
187
|
+
enumerable: true,
|
|
188
|
+
get: function get() {
|
|
189
|
+
return _AdminListPushTokens200Response["default"];
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
Object.defineProperty(exports, "AdminListPushTokens200ResponseDataInner", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function get() {
|
|
195
|
+
return _AdminListPushTokens200ResponseDataInner["default"];
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
Object.defineProperty(exports, "AdminListQuestProgress200Response", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function get() {
|
|
201
|
+
return _AdminListQuestProgress200Response["default"];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
Object.defineProperty(exports, "AdminListQuestProgress200ResponseDataInner", {
|
|
205
|
+
enumerable: true,
|
|
206
|
+
get: function get() {
|
|
207
|
+
return _AdminListQuestProgress200ResponseDataInner["default"];
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
Object.defineProperty(exports, "AdminListQuests200Response", {
|
|
211
|
+
enumerable: true,
|
|
212
|
+
get: function get() {
|
|
213
|
+
return _AdminListQuests200Response["default"];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
Object.defineProperty(exports, "AdminListQuests200ResponseDataInner", {
|
|
217
|
+
enumerable: true,
|
|
218
|
+
get: function get() {
|
|
219
|
+
return _AdminListQuests200ResponseDataInner["default"];
|
|
220
|
+
}
|
|
221
|
+
});
|
|
210
222
|
Object.defineProperty(exports, "AdminListSessions200Response", {
|
|
211
223
|
enumerable: true,
|
|
212
224
|
get: function get() {
|
|
@@ -267,16 +279,34 @@ Object.defineProperty(exports, "AdminNotificationsApi", {
|
|
|
267
279
|
return _AdminNotificationsApi["default"];
|
|
268
280
|
}
|
|
269
281
|
});
|
|
282
|
+
Object.defineProperty(exports, "AdminPushApi", {
|
|
283
|
+
enumerable: true,
|
|
284
|
+
get: function get() {
|
|
285
|
+
return _AdminPushApi["default"];
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
Object.defineProperty(exports, "AdminQuestsApi", {
|
|
289
|
+
enumerable: true,
|
|
290
|
+
get: function get() {
|
|
291
|
+
return _AdminQuestsApi["default"];
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
Object.defineProperty(exports, "AdminResetQuestRequest", {
|
|
295
|
+
enumerable: true,
|
|
296
|
+
get: function get() {
|
|
297
|
+
return _AdminResetQuestRequest["default"];
|
|
298
|
+
}
|
|
299
|
+
});
|
|
270
300
|
Object.defineProperty(exports, "AdminResolveTournamentMatchRequest", {
|
|
271
301
|
enumerable: true,
|
|
272
302
|
get: function get() {
|
|
273
303
|
return _AdminResolveTournamentMatchRequest["default"];
|
|
274
304
|
}
|
|
275
305
|
});
|
|
276
|
-
Object.defineProperty(exports, "
|
|
306
|
+
Object.defineProperty(exports, "AdminSendPushRequest", {
|
|
277
307
|
enumerable: true,
|
|
278
308
|
get: function get() {
|
|
279
|
-
return
|
|
309
|
+
return _AdminSendPushRequest["default"];
|
|
280
310
|
}
|
|
281
311
|
});
|
|
282
312
|
Object.defineProperty(exports, "AdminSessionsApi", {
|
|
@@ -309,12 +339,6 @@ Object.defineProperty(exports, "AdminTournamentsApi", {
|
|
|
309
339
|
return _AdminTournamentsApi["default"];
|
|
310
340
|
}
|
|
311
341
|
});
|
|
312
|
-
Object.defineProperty(exports, "AdminUpdateAchievementRequest", {
|
|
313
|
-
enumerable: true,
|
|
314
|
-
get: function get() {
|
|
315
|
-
return _AdminUpdateAchievementRequest["default"];
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
342
|
Object.defineProperty(exports, "AdminUpdateGroup200Response", {
|
|
319
343
|
enumerable: true,
|
|
320
344
|
get: function get() {
|
|
@@ -471,6 +495,18 @@ Object.defineProperty(exports, "ChatUnreadCount200Response", {
|
|
|
471
495
|
return _ChatUnreadCount200Response["default"];
|
|
472
496
|
}
|
|
473
497
|
});
|
|
498
|
+
Object.defineProperty(exports, "ClaimQuest200Response", {
|
|
499
|
+
enumerable: true,
|
|
500
|
+
get: function get() {
|
|
501
|
+
return _ClaimQuest200Response["default"];
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
Object.defineProperty(exports, "ClaimQuest200ResponseData", {
|
|
505
|
+
enumerable: true,
|
|
506
|
+
get: function get() {
|
|
507
|
+
return _ClaimQuest200ResponseData["default"];
|
|
508
|
+
}
|
|
509
|
+
});
|
|
474
510
|
Object.defineProperty(exports, "CreateCurrentUserAvatarUploadUrlRequest", {
|
|
475
511
|
enumerable: true,
|
|
476
512
|
get: function get() {
|
|
@@ -525,6 +561,12 @@ Object.defineProperty(exports, "DeleteNotificationsRequest", {
|
|
|
525
561
|
return _DeleteNotificationsRequest["default"];
|
|
526
562
|
}
|
|
527
563
|
});
|
|
564
|
+
Object.defineProperty(exports, "DeletePushToken200Response", {
|
|
565
|
+
enumerable: true,
|
|
566
|
+
get: function get() {
|
|
567
|
+
return _DeletePushToken200Response["default"];
|
|
568
|
+
}
|
|
569
|
+
});
|
|
528
570
|
Object.defineProperty(exports, "DemoteGroupMemberRequest", {
|
|
529
571
|
enumerable: true,
|
|
530
572
|
get: function get() {
|
|
@@ -759,12 +801,6 @@ Object.defineProperty(exports, "ListFriends200ResponseDataInner", {
|
|
|
759
801
|
return _ListFriends200ResponseDataInner["default"];
|
|
760
802
|
}
|
|
761
803
|
});
|
|
762
|
-
Object.defineProperty(exports, "ListFriends200ResponseMeta", {
|
|
763
|
-
enumerable: true,
|
|
764
|
-
get: function get() {
|
|
765
|
-
return _ListFriends200ResponseMeta["default"];
|
|
766
|
-
}
|
|
767
|
-
});
|
|
768
804
|
Object.defineProperty(exports, "ListGroupInvitations200Response", {
|
|
769
805
|
enumerable: true,
|
|
770
806
|
get: function get() {
|
|
@@ -843,6 +879,12 @@ Object.defineProperty(exports, "ListPartyInvitations200ResponseInner", {
|
|
|
843
879
|
return _ListPartyInvitations200ResponseInner["default"];
|
|
844
880
|
}
|
|
845
881
|
});
|
|
882
|
+
Object.defineProperty(exports, "ListPushTokens200Response", {
|
|
883
|
+
enumerable: true,
|
|
884
|
+
get: function get() {
|
|
885
|
+
return _ListPushTokens200Response["default"];
|
|
886
|
+
}
|
|
887
|
+
});
|
|
846
888
|
Object.defineProperty(exports, "ListRecordsAroundUser200Response", {
|
|
847
889
|
enumerable: true,
|
|
848
890
|
get: function get() {
|
|
@@ -963,18 +1005,6 @@ Object.defineProperty(exports, "MatchmakingStats200ResponseDataQueuesInner", {
|
|
|
963
1005
|
return _MatchmakingStats200ResponseDataQueuesInner["default"];
|
|
964
1006
|
}
|
|
965
1007
|
});
|
|
966
|
-
Object.defineProperty(exports, "MyAchievements200Response", {
|
|
967
|
-
enumerable: true,
|
|
968
|
-
get: function get() {
|
|
969
|
-
return _MyAchievements200Response["default"];
|
|
970
|
-
}
|
|
971
|
-
});
|
|
972
|
-
Object.defineProperty(exports, "MyAchievements200ResponseDataInner", {
|
|
973
|
-
enumerable: true,
|
|
974
|
-
get: function get() {
|
|
975
|
-
return _MyAchievements200ResponseDataInner["default"];
|
|
976
|
-
}
|
|
977
|
-
});
|
|
978
1008
|
Object.defineProperty(exports, "NotificationsApi", {
|
|
979
1009
|
enumerable: true,
|
|
980
1010
|
get: function get() {
|
|
@@ -1095,6 +1125,18 @@ Object.defineProperty(exports, "PromoteGroupMemberRequest", {
|
|
|
1095
1125
|
return _PromoteGroupMemberRequest["default"];
|
|
1096
1126
|
}
|
|
1097
1127
|
});
|
|
1128
|
+
Object.defineProperty(exports, "PushApi", {
|
|
1129
|
+
enumerable: true,
|
|
1130
|
+
get: function get() {
|
|
1131
|
+
return _PushApi["default"];
|
|
1132
|
+
}
|
|
1133
|
+
});
|
|
1134
|
+
Object.defineProperty(exports, "QuestsApi", {
|
|
1135
|
+
enumerable: true,
|
|
1136
|
+
get: function get() {
|
|
1137
|
+
return _QuestsApi["default"];
|
|
1138
|
+
}
|
|
1139
|
+
});
|
|
1098
1140
|
Object.defineProperty(exports, "QuickJoinRequest", {
|
|
1099
1141
|
enumerable: true,
|
|
1100
1142
|
get: function get() {
|
|
@@ -1119,6 +1161,12 @@ Object.defineProperty(exports, "RefreshTokenRequest", {
|
|
|
1119
1161
|
return _RefreshTokenRequest["default"];
|
|
1120
1162
|
}
|
|
1121
1163
|
});
|
|
1164
|
+
Object.defineProperty(exports, "RegisterPushTokenRequest", {
|
|
1165
|
+
enumerable: true,
|
|
1166
|
+
get: function get() {
|
|
1167
|
+
return _RegisterPushTokenRequest["default"];
|
|
1168
|
+
}
|
|
1169
|
+
});
|
|
1122
1170
|
Object.defineProperty(exports, "ResolveLeaderboardSlugs200Response", {
|
|
1123
1171
|
enumerable: true,
|
|
1124
1172
|
get: function get() {
|
|
@@ -1167,6 +1215,12 @@ Object.defineProperty(exports, "SetCurrentUserAvatarRequest", {
|
|
|
1167
1215
|
return _SetCurrentUserAvatarRequest["default"];
|
|
1168
1216
|
}
|
|
1169
1217
|
});
|
|
1218
|
+
Object.defineProperty(exports, "SetLobbyStateRequest", {
|
|
1219
|
+
enumerable: true,
|
|
1220
|
+
get: function get() {
|
|
1221
|
+
return _SetLobbyStateRequest["default"];
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
1170
1224
|
Object.defineProperty(exports, "TournamentMyMatch200Response", {
|
|
1171
1225
|
enumerable: true,
|
|
1172
1226
|
get: function get() {
|
|
@@ -1227,6 +1281,42 @@ Object.defineProperty(exports, "UpdatePartyRequest", {
|
|
|
1227
1281
|
return _UpdatePartyRequest["default"];
|
|
1228
1282
|
}
|
|
1229
1283
|
});
|
|
1284
|
+
Object.defineProperty(exports, "UserQuests200Response", {
|
|
1285
|
+
enumerable: true,
|
|
1286
|
+
get: function get() {
|
|
1287
|
+
return _UserQuests200Response["default"];
|
|
1288
|
+
}
|
|
1289
|
+
});
|
|
1290
|
+
Object.defineProperty(exports, "UserQuests200ResponseDataInner", {
|
|
1291
|
+
enumerable: true,
|
|
1292
|
+
get: function get() {
|
|
1293
|
+
return _UserQuests200ResponseDataInner["default"];
|
|
1294
|
+
}
|
|
1295
|
+
});
|
|
1296
|
+
Object.defineProperty(exports, "UserQuests200ResponseDataInnerObjectivesInner", {
|
|
1297
|
+
enumerable: true,
|
|
1298
|
+
get: function get() {
|
|
1299
|
+
return _UserQuests200ResponseDataInnerObjectivesInner["default"];
|
|
1300
|
+
}
|
|
1301
|
+
});
|
|
1302
|
+
Object.defineProperty(exports, "UserQuests200ResponseDataInnerProgress", {
|
|
1303
|
+
enumerable: true,
|
|
1304
|
+
get: function get() {
|
|
1305
|
+
return _UserQuests200ResponseDataInnerProgress["default"];
|
|
1306
|
+
}
|
|
1307
|
+
});
|
|
1308
|
+
Object.defineProperty(exports, "UserQuests200ResponseDataInnerRewardsInner", {
|
|
1309
|
+
enumerable: true,
|
|
1310
|
+
get: function get() {
|
|
1311
|
+
return _UserQuests200ResponseDataInnerRewardsInner["default"];
|
|
1312
|
+
}
|
|
1313
|
+
});
|
|
1314
|
+
Object.defineProperty(exports, "UserQuests200ResponseMeta", {
|
|
1315
|
+
enumerable: true,
|
|
1316
|
+
get: function get() {
|
|
1317
|
+
return _UserQuests200ResponseMeta["default"];
|
|
1318
|
+
}
|
|
1319
|
+
});
|
|
1230
1320
|
Object.defineProperty(exports, "UsersApi", {
|
|
1231
1321
|
enumerable: true,
|
|
1232
1322
|
get: function get() {
|
|
@@ -1238,19 +1328,17 @@ var _AcceptPartyInvite200Response = _interopRequireDefault(require("./model/Acce
|
|
|
1238
1328
|
var _AcceptPartyInvite200ResponseMembersInner = _interopRequireDefault(require("./model/AcceptPartyInvite200ResponseMembersInner"));
|
|
1239
1329
|
var _AcceptPartyInviteRequest = _interopRequireDefault(require("./model/AcceptPartyInviteRequest"));
|
|
1240
1330
|
var _AdminCancelMatchmakingTicket200Response = _interopRequireDefault(require("./model/AdminCancelMatchmakingTicket200Response"));
|
|
1241
|
-
var _AdminCreateAchievementRequest = _interopRequireDefault(require("./model/AdminCreateAchievementRequest"));
|
|
1242
1331
|
var _AdminCreateLeaderboard200Response = _interopRequireDefault(require("./model/AdminCreateLeaderboard200Response"));
|
|
1243
1332
|
var _AdminCreateLeaderboard200ResponseData = _interopRequireDefault(require("./model/AdminCreateLeaderboard200ResponseData"));
|
|
1244
1333
|
var _AdminCreateLeaderboardRequest = _interopRequireDefault(require("./model/AdminCreateLeaderboardRequest"));
|
|
1245
1334
|
var _AdminCreateNotificationRequest = _interopRequireDefault(require("./model/AdminCreateNotificationRequest"));
|
|
1335
|
+
var _AdminCreateQuestRequest = _interopRequireDefault(require("./model/AdminCreateQuestRequest"));
|
|
1336
|
+
var _AdminCreateQuestRequestObjectivesInner = _interopRequireDefault(require("./model/AdminCreateQuestRequestObjectivesInner"));
|
|
1337
|
+
var _AdminCreateQuestRequestRewardsInner = _interopRequireDefault(require("./model/AdminCreateQuestRequestRewardsInner"));
|
|
1246
1338
|
var _AdminDeleteChatConversation200Response = _interopRequireDefault(require("./model/AdminDeleteChatConversation200Response"));
|
|
1247
1339
|
var _AdminDrawTournament200Response = _interopRequireDefault(require("./model/AdminDrawTournament200Response"));
|
|
1248
1340
|
var _AdminDrawTournament200ResponseData = _interopRequireDefault(require("./model/AdminDrawTournament200ResponseData"));
|
|
1249
|
-
var _AdminGrantAchievementRequest = _interopRequireDefault(require("./model/AdminGrantAchievementRequest"));
|
|
1250
1341
|
var _AdminGrantItemRequest = _interopRequireDefault(require("./model/AdminGrantItemRequest"));
|
|
1251
|
-
var _AdminIncrementAchievementRequest = _interopRequireDefault(require("./model/AdminIncrementAchievementRequest"));
|
|
1252
|
-
var _AdminListAchievements200Response = _interopRequireDefault(require("./model/AdminListAchievements200Response"));
|
|
1253
|
-
var _AdminListAchievements200ResponseDataInner = _interopRequireDefault(require("./model/AdminListAchievements200ResponseDataInner"));
|
|
1254
1342
|
var _AdminListChatMessages200Response = _interopRequireDefault(require("./model/AdminListChatMessages200Response"));
|
|
1255
1343
|
var _AdminListChatMessages200ResponseDataInner = _interopRequireDefault(require("./model/AdminListChatMessages200ResponseDataInner"));
|
|
1256
1344
|
var _AdminListGroups200Response = _interopRequireDefault(require("./model/AdminListGroups200Response"));
|
|
@@ -1261,6 +1349,12 @@ var _AdminListMatchmakingTickets200Response = _interopRequireDefault(require("./
|
|
|
1261
1349
|
var _AdminListMatchmakingTickets200ResponseDataInner = _interopRequireDefault(require("./model/AdminListMatchmakingTickets200ResponseDataInner"));
|
|
1262
1350
|
var _AdminListNotifications200Response = _interopRequireDefault(require("./model/AdminListNotifications200Response"));
|
|
1263
1351
|
var _AdminListNotifications200ResponseDataInner = _interopRequireDefault(require("./model/AdminListNotifications200ResponseDataInner"));
|
|
1352
|
+
var _AdminListPushTokens200Response = _interopRequireDefault(require("./model/AdminListPushTokens200Response"));
|
|
1353
|
+
var _AdminListPushTokens200ResponseDataInner = _interopRequireDefault(require("./model/AdminListPushTokens200ResponseDataInner"));
|
|
1354
|
+
var _AdminListQuestProgress200Response = _interopRequireDefault(require("./model/AdminListQuestProgress200Response"));
|
|
1355
|
+
var _AdminListQuestProgress200ResponseDataInner = _interopRequireDefault(require("./model/AdminListQuestProgress200ResponseDataInner"));
|
|
1356
|
+
var _AdminListQuests200Response = _interopRequireDefault(require("./model/AdminListQuests200Response"));
|
|
1357
|
+
var _AdminListQuests200ResponseDataInner = _interopRequireDefault(require("./model/AdminListQuests200ResponseDataInner"));
|
|
1264
1358
|
var _AdminListSessions200Response = _interopRequireDefault(require("./model/AdminListSessions200Response"));
|
|
1265
1359
|
var _AdminListSessions200ResponseDataInner = _interopRequireDefault(require("./model/AdminListSessions200ResponseDataInner"));
|
|
1266
1360
|
var _AdminListStorageObjects200Response = _interopRequireDefault(require("./model/AdminListStorageObjects200Response"));
|
|
@@ -1268,11 +1362,11 @@ var _AdminListStorageObjects200ResponseDataInner = _interopRequireDefault(requir
|
|
|
1268
1362
|
var _AdminListStorageObjects200ResponseUsage = _interopRequireDefault(require("./model/AdminListStorageObjects200ResponseUsage"));
|
|
1269
1363
|
var _AdminMatchmakingStats200Response = _interopRequireDefault(require("./model/AdminMatchmakingStats200Response"));
|
|
1270
1364
|
var _AdminMatchmakingStats200ResponseData = _interopRequireDefault(require("./model/AdminMatchmakingStats200ResponseData"));
|
|
1365
|
+
var _AdminResetQuestRequest = _interopRequireDefault(require("./model/AdminResetQuestRequest"));
|
|
1271
1366
|
var _AdminResolveTournamentMatchRequest = _interopRequireDefault(require("./model/AdminResolveTournamentMatchRequest"));
|
|
1272
|
-
var
|
|
1367
|
+
var _AdminSendPushRequest = _interopRequireDefault(require("./model/AdminSendPushRequest"));
|
|
1273
1368
|
var _AdminSpendCurrencyRequest = _interopRequireDefault(require("./model/AdminSpendCurrencyRequest"));
|
|
1274
1369
|
var _AdminSubmitLeaderboardScoreRequest = _interopRequireDefault(require("./model/AdminSubmitLeaderboardScoreRequest"));
|
|
1275
|
-
var _AdminUpdateAchievementRequest = _interopRequireDefault(require("./model/AdminUpdateAchievementRequest"));
|
|
1276
1370
|
var _AdminUpdateGroup200Response = _interopRequireDefault(require("./model/AdminUpdateGroup200Response"));
|
|
1277
1371
|
var _AdminUpdateGroupRequest = _interopRequireDefault(require("./model/AdminUpdateGroupRequest"));
|
|
1278
1372
|
var _AdminUpdateKvEntryRequest = _interopRequireDefault(require("./model/AdminUpdateKvEntryRequest"));
|
|
@@ -1295,6 +1389,8 @@ var _CallHookRequest = _interopRequireDefault(require("./model/CallHookRequest")
|
|
|
1295
1389
|
var _CancelJoinRequest200Response = _interopRequireDefault(require("./model/CancelJoinRequest200Response"));
|
|
1296
1390
|
var _CancelPartyInviteRequest = _interopRequireDefault(require("./model/CancelPartyInviteRequest"));
|
|
1297
1391
|
var _ChatUnreadCount200Response = _interopRequireDefault(require("./model/ChatUnreadCount200Response"));
|
|
1392
|
+
var _ClaimQuest200Response = _interopRequireDefault(require("./model/ClaimQuest200Response"));
|
|
1393
|
+
var _ClaimQuest200ResponseData = _interopRequireDefault(require("./model/ClaimQuest200ResponseData"));
|
|
1298
1394
|
var _CreateCurrentUserAvatarUploadUrlRequest = _interopRequireDefault(require("./model/CreateCurrentUserAvatarUploadUrlRequest"));
|
|
1299
1395
|
var _CreateFriendRequestRequest = _interopRequireDefault(require("./model/CreateFriendRequestRequest"));
|
|
1300
1396
|
var _CreateGroupRequest = _interopRequireDefault(require("./model/CreateGroupRequest"));
|
|
@@ -1304,6 +1400,7 @@ var _DeclineGroupInvite200Response = _interopRequireDefault(require("./model/Dec
|
|
|
1304
1400
|
var _DeclinePartyInviteRequest = _interopRequireDefault(require("./model/DeclinePartyInviteRequest"));
|
|
1305
1401
|
var _DeleteNotifications200Response = _interopRequireDefault(require("./model/DeleteNotifications200Response"));
|
|
1306
1402
|
var _DeleteNotificationsRequest = _interopRequireDefault(require("./model/DeleteNotificationsRequest"));
|
|
1403
|
+
var _DeletePushToken200Response = _interopRequireDefault(require("./model/DeletePushToken200Response"));
|
|
1307
1404
|
var _DemoteGroupMemberRequest = _interopRequireDefault(require("./model/DemoteGroupMemberRequest"));
|
|
1308
1405
|
var _DeviceLoginRequest = _interopRequireDefault(require("./model/DeviceLoginRequest"));
|
|
1309
1406
|
var _ErrorResponse = _interopRequireDefault(require("./model/ErrorResponse"));
|
|
@@ -1336,7 +1433,6 @@ var _ListFriendRequests200ResponseIncomingInnerRequester = _interopRequireDefaul
|
|
|
1336
1433
|
var _ListFriendRequests200ResponseMeta = _interopRequireDefault(require("./model/ListFriendRequests200ResponseMeta"));
|
|
1337
1434
|
var _ListFriends200Response = _interopRequireDefault(require("./model/ListFriends200Response"));
|
|
1338
1435
|
var _ListFriends200ResponseDataInner = _interopRequireDefault(require("./model/ListFriends200ResponseDataInner"));
|
|
1339
|
-
var _ListFriends200ResponseMeta = _interopRequireDefault(require("./model/ListFriends200ResponseMeta"));
|
|
1340
1436
|
var _ListGroupInvitations200Response = _interopRequireDefault(require("./model/ListGroupInvitations200Response"));
|
|
1341
1437
|
var _ListGroupInvitations200ResponseDataInner = _interopRequireDefault(require("./model/ListGroupInvitations200ResponseDataInner"));
|
|
1342
1438
|
var _ListGroupMembers200Response = _interopRequireDefault(require("./model/ListGroupMembers200Response"));
|
|
@@ -1350,6 +1446,7 @@ var _ListMyGroups200ResponseDataInner = _interopRequireDefault(require("./model/
|
|
|
1350
1446
|
var _ListNotifications200Response = _interopRequireDefault(require("./model/ListNotifications200Response"));
|
|
1351
1447
|
var _ListNotifications200ResponseDataInner = _interopRequireDefault(require("./model/ListNotifications200ResponseDataInner"));
|
|
1352
1448
|
var _ListPartyInvitations200ResponseInner = _interopRequireDefault(require("./model/ListPartyInvitations200ResponseInner"));
|
|
1449
|
+
var _ListPushTokens200Response = _interopRequireDefault(require("./model/ListPushTokens200Response"));
|
|
1353
1450
|
var _ListRecordsAroundUser200Response = _interopRequireDefault(require("./model/ListRecordsAroundUser200Response"));
|
|
1354
1451
|
var _ListSentInvitations200Response = _interopRequireDefault(require("./model/ListSentInvitations200Response"));
|
|
1355
1452
|
var _ListSentInvitations200ResponseDataInner = _interopRequireDefault(require("./model/ListSentInvitations200ResponseDataInner"));
|
|
@@ -1368,8 +1465,6 @@ var _MatchmakingMyTicket200ResponseData = _interopRequireDefault(require("./mode
|
|
|
1368
1465
|
var _MatchmakingStats200Response = _interopRequireDefault(require("./model/MatchmakingStats200Response"));
|
|
1369
1466
|
var _MatchmakingStats200ResponseData = _interopRequireDefault(require("./model/MatchmakingStats200ResponseData"));
|
|
1370
1467
|
var _MatchmakingStats200ResponseDataQueuesInner = _interopRequireDefault(require("./model/MatchmakingStats200ResponseDataQueuesInner"));
|
|
1371
|
-
var _MyAchievements200Response = _interopRequireDefault(require("./model/MyAchievements200Response"));
|
|
1372
|
-
var _MyAchievements200ResponseDataInner = _interopRequireDefault(require("./model/MyAchievements200ResponseDataInner"));
|
|
1373
1468
|
var _NotifyGroup200Response = _interopRequireDefault(require("./model/NotifyGroup200Response"));
|
|
1374
1469
|
var _NotifyGroupRequest = _interopRequireDefault(require("./model/NotifyGroupRequest"));
|
|
1375
1470
|
var _OAuthSessionData = _interopRequireDefault(require("./model/OAuthSessionData"));
|
|
@@ -1391,6 +1486,7 @@ var _QuickJoinRequest = _interopRequireDefault(require("./model/QuickJoinRequest
|
|
|
1391
1486
|
var _RefreshToken200Response = _interopRequireDefault(require("./model/RefreshToken200Response"));
|
|
1392
1487
|
var _RefreshToken200ResponseData = _interopRequireDefault(require("./model/RefreshToken200ResponseData"));
|
|
1393
1488
|
var _RefreshTokenRequest = _interopRequireDefault(require("./model/RefreshTokenRequest"));
|
|
1489
|
+
var _RegisterPushTokenRequest = _interopRequireDefault(require("./model/RegisterPushTokenRequest"));
|
|
1394
1490
|
var _ResolveLeaderboardSlugs200Response = _interopRequireDefault(require("./model/ResolveLeaderboardSlugs200Response"));
|
|
1395
1491
|
var _ResolveLeaderboardSlugs200ResponseDataValue = _interopRequireDefault(require("./model/ResolveLeaderboardSlugs200ResponseDataValue"));
|
|
1396
1492
|
var _ResolveLeaderboardSlugsRequest = _interopRequireDefault(require("./model/ResolveLeaderboardSlugsRequest"));
|
|
@@ -1399,6 +1495,7 @@ var _SearchUsers200ResponseDataInner = _interopRequireDefault(require("./model/S
|
|
|
1399
1495
|
var _SendChatMessageRequest = _interopRequireDefault(require("./model/SendChatMessageRequest"));
|
|
1400
1496
|
var _SendNotificationRequest = _interopRequireDefault(require("./model/SendNotificationRequest"));
|
|
1401
1497
|
var _SetCurrentUserAvatarRequest = _interopRequireDefault(require("./model/SetCurrentUserAvatarRequest"));
|
|
1498
|
+
var _SetLobbyStateRequest = _interopRequireDefault(require("./model/SetLobbyStateRequest"));
|
|
1402
1499
|
var _TournamentMyMatch200Response = _interopRequireDefault(require("./model/TournamentMyMatch200Response"));
|
|
1403
1500
|
var _UpdateChatMessageRequest = _interopRequireDefault(require("./model/UpdateChatMessageRequest"));
|
|
1404
1501
|
var _UpdateCurrentUserDisplayName400Response = _interopRequireDefault(require("./model/UpdateCurrentUserDisplayName400Response"));
|
|
@@ -1408,8 +1505,12 @@ var _UpdateCurrentUserUsernameRequest = _interopRequireDefault(require("./model/
|
|
|
1408
1505
|
var _UpdateGroupRequest = _interopRequireDefault(require("./model/UpdateGroupRequest"));
|
|
1409
1506
|
var _UpdateLobbyRequest = _interopRequireDefault(require("./model/UpdateLobbyRequest"));
|
|
1410
1507
|
var _UpdatePartyRequest = _interopRequireDefault(require("./model/UpdatePartyRequest"));
|
|
1411
|
-
var
|
|
1412
|
-
var
|
|
1508
|
+
var _UserQuests200Response = _interopRequireDefault(require("./model/UserQuests200Response"));
|
|
1509
|
+
var _UserQuests200ResponseDataInner = _interopRequireDefault(require("./model/UserQuests200ResponseDataInner"));
|
|
1510
|
+
var _UserQuests200ResponseDataInnerObjectivesInner = _interopRequireDefault(require("./model/UserQuests200ResponseDataInnerObjectivesInner"));
|
|
1511
|
+
var _UserQuests200ResponseDataInnerProgress = _interopRequireDefault(require("./model/UserQuests200ResponseDataInnerProgress"));
|
|
1512
|
+
var _UserQuests200ResponseDataInnerRewardsInner = _interopRequireDefault(require("./model/UserQuests200ResponseDataInnerRewardsInner"));
|
|
1513
|
+
var _UserQuests200ResponseMeta = _interopRequireDefault(require("./model/UserQuests200ResponseMeta"));
|
|
1413
1514
|
var _AdminChatApi = _interopRequireDefault(require("./api/AdminChatApi"));
|
|
1414
1515
|
var _AdminEconomyApi = _interopRequireDefault(require("./api/AdminEconomyApi"));
|
|
1415
1516
|
var _AdminGroupsApi = _interopRequireDefault(require("./api/AdminGroupsApi"));
|
|
@@ -1418,6 +1519,8 @@ var _AdminLeaderboardsApi = _interopRequireDefault(require("./api/AdminLeaderboa
|
|
|
1418
1519
|
var _AdminLobbiesApi = _interopRequireDefault(require("./api/AdminLobbiesApi"));
|
|
1419
1520
|
var _AdminMatchmakingApi = _interopRequireDefault(require("./api/AdminMatchmakingApi"));
|
|
1420
1521
|
var _AdminNotificationsApi = _interopRequireDefault(require("./api/AdminNotificationsApi"));
|
|
1522
|
+
var _AdminPushApi = _interopRequireDefault(require("./api/AdminPushApi"));
|
|
1523
|
+
var _AdminQuestsApi = _interopRequireDefault(require("./api/AdminQuestsApi"));
|
|
1421
1524
|
var _AdminSessionsApi = _interopRequireDefault(require("./api/AdminSessionsApi"));
|
|
1422
1525
|
var _AdminStorageApi = _interopRequireDefault(require("./api/AdminStorageApi"));
|
|
1423
1526
|
var _AdminTournamentsApi = _interopRequireDefault(require("./api/AdminTournamentsApi"));
|
|
@@ -1436,6 +1539,8 @@ var _MatchmakingApi = _interopRequireDefault(require("./api/MatchmakingApi"));
|
|
|
1436
1539
|
var _NotificationsApi = _interopRequireDefault(require("./api/NotificationsApi"));
|
|
1437
1540
|
var _PartiesApi = _interopRequireDefault(require("./api/PartiesApi"));
|
|
1438
1541
|
var _PaymentsApi = _interopRequireDefault(require("./api/PaymentsApi"));
|
|
1542
|
+
var _PushApi = _interopRequireDefault(require("./api/PushApi"));
|
|
1543
|
+
var _QuestsApi = _interopRequireDefault(require("./api/QuestsApi"));
|
|
1439
1544
|
var _TournamentsApi = _interopRequireDefault(require("./api/TournamentsApi"));
|
|
1440
1545
|
var _UsersApi = _interopRequireDefault(require("./api/UsersApi"));
|
|
1441
1546
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -17,9 +17,9 @@ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r),
|
|
|
17
17
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
18
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
|
|
19
19
|
* Game Server API
|
|
20
|
-
* API for the Gamend Game Server. Provides HTTP REST API, real-time WebSocket channels, and WebRTC DataChannels for low-latency game data. Features authentication, users, lobbies, groups, parties, friends, chat, notifications, achievements, leaderboards, tournaments, matchmaking, payments, server scripting, and admin portal. ## **1. Authentication** This API uses JWT (JSON Web Tokens) with access and refresh tokens: ### **1.1 Getting Tokens** - **Email/Password**: POST to `/api/v1/login` with email and password - **Device (SDK)**: POST to `/api/v1/login` with a `device_id` string (creates/returns a device user) - **Discord OAuth**: Use `/api/v1/auth/discord` flow - **Google OAuth**: Use `/api/v1/auth/google` flow - **Facebook OAuth**: Use `/api/v1/auth/facebook` flow - **Apple Sign In**: Use `/auth/apple` browser flow or apple sdk flow - **Steam (OpenID)**: Use `/api/v1/auth/steam` flow Both methods return: - `access_token` - Short-lived (15 min), use for API requests - `refresh_token` - Long-lived (30 days), use to get new access tokens ### **1.2 Using Tokens** Include the access token in the Authorization header: ``` Authorization: Bearer <access_token> ``` ### **1.3 Refreshing Tokens** When your access token expires, use POST `/api/v1/refresh` with your refresh token to get a new access token. ## **2. Users** Users endpoints cover the user lifecycle and profile features. Key highlights: - **Registration and login** (email/password, device token for SDKs, and OAuth providers) - **Profile metadata** (JSON blob per user) and editable profile fields - **Account lifecycle**: password reset, email confirmation, and account deletion - **Sessions & tokens**: both browser sessions and JWT-based API tokens are supported ## **3. Friends** The Friends domain offers lightweight social features: - **Friend requests** (send / accept / reject / block flows) - **Friend listing & pagination**, with basic privacy controls - **Domain helpers** to manage and query friend relationships from API or UI contexts ## **4. Lobbies** Lobbies provide matchmaking / room management primitives. Highlights: - **Create / list / update / delete** lobbies with rich metadata (mode, region, tags) - **Host-managed or hostless** modes (hostless allowed internally, not creatable via public API) - **Membership management**: join, leave, kick users, and automatic host transfer - **Controls & protection**: max users, hidden/locked states, and optional password protection - **Hidden lobbies** are excluded from public listings; public listing endpoints are paginated ## **5. Notifications** Persistent user-to-user notifications that survive across sessions: - **Send notifications** to accepted friends with a title, optional content, and optional metadata - **List own notifications** with pagination (ordered oldest-first) - **Delete notifications** by ID (single or batch) - **Real-time delivery** via the user WebSocket channel (`\"notification\"` events) - **Offline delivery**: undeleted notifications are replayed on WebSocket reconnect ## **6. Groups** Groups provide persistent community management for players: - **Three group types**: `public` (anyone joins directly), `private` (users request to join, admins approve), `hidden` (invite-only, never listed) - **Membership roles**: `admin` and `member`, with promote/demote capabilities - **Join requests**: for private groups, users submit requests that admins approve or reject - **Invitations**: admins can invite users directly (blocked users are rejected) - **CRUD operations**: create, update, delete groups with metadata support - **Group chat**: integrated via the Chat API with `chat_type: \"group\"` ## **7. Parties** Ephemeral groups of users for short-lived sessions (e.g., matchmaking squads): - **Invite-only joining**: the party leader sends invites by user ID to friends or shared-group members - **Invite flow**: `POST /parties/invite` → recipient accepts via `POST /parties/invite/accept` or declines via `POST /parties/invite/decline`; leader can cancel via `POST /parties/invite/cancel` - **Invite visibility**: leader can list sent invites (`GET /parties/invitations/sent`); recipient can list received invites (`GET /parties/invitations`) - **Connection requirement**: invites can only be sent to users who are friends or share at least one group with the leader - **One party at a time**: a user can only be in one party; accepting an invite while already in a party is rejected - **Leader management**: the creator is the leader; leadership can be transferred - **Lobby integration**: parties can create or join lobbies as a group - **Party chat**: integrated via the Chat API with `chat_type: \"party\"` - **Real-time events** via the party WebSocket channel ## **8. Chat** Real-time messaging across multiple conversation types: - **Chat types**: `lobby` (within a lobby), `group` (within a group), `party` (within a party), `friend` (DMs between friends) - **Send messages** with content, optional metadata, and automatic access validation - **List messages** with pagination (newest first) - **Read tracking**: mark messages as read and get unread counts per conversation - **Real-time delivery** via PubSub and WebSocket channels - **Moderation hooks**: `before_chat_message` pipeline hook for filtering/blocking ## **9. Leaderboards** Server-managed ranked scoreboards: - **Multiple leaderboards**: create named leaderboards with configurable sort order - **Score submission**: submit scores with optional metadata - **Rankings**: retrieve paginated rankings with user details - **Reset support**: leaderboards can be reset periodically ## **10. Key-Value Storage** Per-user persistent key-value storage for game state, preferences, and settings: - **Get/set/delete** key-value pairs scoped to the authenticated user - **List keys** with optional prefix filtering - **Metadata support**: values can include arbitrary JSON metadata ## **11. Achievements** Track player accomplishments with progress-based or instant-unlock achievements: - **Achievement definitions**: admin-created with slug, title, description, icon, sort order, and optional progress target - **Progress tracking**: increment progress toward a target; auto-unlocks when progress reaches the target - **Instant unlock**: directly unlock achievements without progress tracking - **Hidden achievements**: details obscured (\"???\") until unlocked by the user - **Public listings**: paginated, optionally filtered; authenticated users see their own progress - **Admin management**: create, update, delete, grant, revoke, unlock, and increment achievements ## **12. Tournaments** Single-elimination bracket tournaments, server-structured and game-judged: - **Registration window → seeded draw → timed rounds → champions**; recurring tournaments (cron) create one occurrence per cycle sharing a slug; a nil starts_at keeps registration open until an admin draws manually - **Join/leave** as an entry leader (`POST`/`DELETE /tournaments/:id/join`); team composition is game policy - **Browse**: list/filter tournaments, standings, full bracket view, and the caller's current match (`GET /tournaments/:id/my-match`) - **Match verdicts are server-side** (game hooks) — no public resolve endpoint; clients get `tournament_match_ready` / `tournament_match_resolved` / `tournament_updated` / `tournament_finished` on the user channel - **Admin management** over HTTP: create/update/delete, cancel, draw now, finish, and force match verdicts under `/api/v1/admin/tournaments` ## **13. Matchmaking** Ticket-based queueing that turns waiting players into hidden, locked lobbies: - **Join over HTTP** (`POST /matchmaking/tickets` with a `match_params` string map); only tickets with identical params match together — encode mode/map/skill band as parameter values - **A match forms** when a group reaches `max_players`, or has at least `min_players` and the oldest ticket outwaited the timeout; the server creates a hidden lobby, seats everyone and locks it - **The result is a push, not a poll**: matched players receive `match_found` (`lobby_id`, `match_params`) on their user channel; disconnecting cancels your tickets - **Inspect**: `GET /matchmaking/tickets/me` for your ticket, `GET /matchmaking/stats` for queue depths - **Admin management** over HTTP: list/filter tickets, force-cancel, and stats under `/api/v1/admin/matchmaking` ## **14. Real-time: WebSocket Channels** The server provides real-time communication via Phoenix WebSocket channels. Connect to the WebSocket endpoint and join topic-based channels for live updates. ### **14.1 Connection** Connect to `wss://your-server.com/socket` with your JWT token as a parameter: ``` const socket = new Socket(\"wss://your-server.com/socket\", { params: { token: \"<access_token>\" } }) socket.connect() ``` ### **14.2 Available Channels** - **User channel** (`user:<user_id>`): notifications, friend events, achievement unlocks, party/group invites, tournament events, KV subscriptions - **Lobby channel** (`lobby:<lobby_id>`): lobby member joins/leaves, lobby updates, lobby chat - **Lobbies channel** (`lobbies`): global lobby list changes (created, updated, deleted) - **Group channel** (`group:<group_id>`): group member changes, group updates, group chat - **Groups channel** (`groups`): global group list changes - **Party channel** (`party:<party_id>`): party member changes, party updates, party chat ### **14.3 JS SDK Helper** The `GameRealtime` class (included in this SDK) wraps Phoenix.Socket with convenient channel helpers: ```javascript import { GameRealtime } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', accessToken) const userChannel = realtime.joinUserChannel(userId) userChannel.on('notification', payload => console.log(payload)) ``` Requires the `phoenix` npm package as a peer dependency: `npm install phoenix` ## **15. Real-time: WebRTC DataChannels** For low-latency game data, the server supports WebRTC DataChannels alongside WebSocket. The server acts as a WebRTC peer (not P2P between clients). ### **15.1 How It Works** 1. Client connects via WebSocket and joins the **User channel** 2. Client sends an SDP offer over the channel (`webrtc:offer` event) 3. Server responds with an SDP answer (`webrtc:answer` event) 4. ICE candidates are exchanged (`webrtc:ice` events) 5. Once connected, named DataChannels carry game data at low latency ### **15.2 Default DataChannels** - **`events`** (reliable, ordered): important game events (player actions, state changes) - **`state`** (unreliable, unordered): high-frequency position/state sync ### **15.3 JS SDK Helper** The `GameWebRTC` class (included in this SDK, browser-only) handles signaling automatically: ```javascript import { GameRealtime, GameWebRTC } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', token) const userChannel = realtime.joinUserChannel(userId) const webrtc = new GameWebRTC(userChannel, { onData: (label, data) => console.log(label, data) }) await webrtc.connect() webrtc.send('events', JSON.stringify({ type: 'move', x: 10, y: 20 })) ```
|
|
20
|
+
* API for the Gamend Game Server. Provides HTTP REST API, real-time WebSocket channels, and WebRTC DataChannels for low-latency game data. Features authentication, users, lobbies, groups, parties, friends, chat, notifications, quests, leaderboards, tournaments, matchmaking, payments, server scripting, and admin portal. ## **1. Authentication** This API uses JWT (JSON Web Tokens) with access and refresh tokens: ### **1.1 Getting Tokens** - **Email/Password**: POST to `/api/v1/login` with email and password - **Device (SDK)**: POST to `/api/v1/login` with a `device_id` string (creates/returns a device user) - **Discord OAuth**: Use `/api/v1/auth/discord` flow - **Google OAuth**: Use `/api/v1/auth/google` flow - **Facebook OAuth**: Use `/api/v1/auth/facebook` flow - **Apple Sign In**: Use `/auth/apple` browser flow or apple sdk flow - **Steam (OpenID)**: Use `/api/v1/auth/steam` flow Both methods return: - `access_token` - Short-lived (15 min), use for API requests - `refresh_token` - Long-lived (30 days), use to get new access tokens ### **1.2 Using Tokens** Include the access token in the Authorization header: ``` Authorization: Bearer <access_token> ``` ### **1.3 Refreshing Tokens** When your access token expires, use POST `/api/v1/refresh` with your refresh token to get a new access token. ## **2. Users** Users endpoints cover the user lifecycle and profile features. Key highlights: - **Registration and login** (email/password, device token for SDKs, and OAuth providers) - **Profile metadata** (JSON blob per user) and editable profile fields - **Account lifecycle**: password reset, email confirmation, and account deletion - **Sessions & tokens**: both browser sessions and JWT-based API tokens are supported ## **3. Friends** The Friends domain offers lightweight social features: - **Friend requests** (send / accept / reject / block flows) - **Friend listing & pagination**, with basic privacy controls - **Domain helpers** to manage and query friend relationships from API or UI contexts ## **4. Lobbies** Lobbies provide matchmaking / room management primitives. Highlights: - **Create / list / update / delete** lobbies with rich metadata (mode, region, tags) - **Host-managed or hostless** modes (hostless allowed internally, not creatable via public API) - **Membership management**: join, leave, kick users, and automatic host transfer - **Controls & protection**: max users, hidden/locked states, and optional password protection - **Hidden lobbies** are excluded from public listings; public listing endpoints are paginated ## **5. Notifications** Persistent user-to-user notifications that survive across sessions: - **Send notifications** to accepted friends with a title, optional content, and optional metadata - **List own notifications** with pagination (ordered oldest-first) - **Delete notifications** by ID (single or batch) - **Real-time delivery** via the user WebSocket channel (`\"notification\"` events) - **Offline delivery**: undeleted notifications are replayed on WebSocket reconnect - **Push delivery**: notifications also fan out to the recipient's registered mobile devices (see Push notifications) ## **5b. Push notifications** Mobile/web push delivery to registered devices (FCM for Android/Web, APNs-direct for iOS): - **Register device tokens** via `POST /me/push-tokens` (`token`, `platform`, optional `provider`/`device_id`); re-registering a `device_id` rotates its token in place - **List/remove own devices** via `GET /me/push-tokens` and `DELETE /me/push-tokens/:id` - **Server-authoritative sending** — no public send endpoint; pushes originate from server hooks (`GameServer.Push.send_to_user/2`) or the admin API - **Per-token routing**: each token's `provider` (\"fcm\" | \"apns\") selects the delivery backend; unconfigured backends log instead of sending (dev-friendly) - **Reliability**: delivery rides the durable job queue with retries; dead tokens reported by the provider are disabled automatically ## **6. Groups** Groups provide persistent community management for players: - **Three group types**: `public` (anyone joins directly), `private` (users request to join, admins approve), `hidden` (invite-only, never listed) - **Membership roles**: `admin` and `member`, with promote/demote capabilities - **Join requests**: for private groups, users submit requests that admins approve or reject - **Invitations**: admins can invite users directly (blocked users are rejected) - **CRUD operations**: create, update, delete groups with metadata support - **Group chat**: integrated via the Chat API with `chat_type: \"group\"` ## **7. Parties** Ephemeral groups of users for short-lived sessions (e.g., matchmaking squads): - **Invite-only joining**: the party leader sends invites by user ID to friends or shared-group members - **Invite flow**: `POST /parties/invite` → recipient accepts via `POST /parties/invite/accept` or declines via `POST /parties/invite/decline`; leader can cancel via `POST /parties/invite/cancel` - **Invite visibility**: leader can list sent invites (`GET /parties/invitations/sent`); recipient can list received invites (`GET /parties/invitations`) - **Connection requirement**: invites can only be sent to users who are friends or share at least one group with the leader - **One party at a time**: a user can only be in one party; accepting an invite while already in a party is rejected - **Leader management**: the creator is the leader; leadership can be transferred - **Lobby integration**: parties can create or join lobbies as a group - **Party chat**: integrated via the Chat API with `chat_type: \"party\"` - **Real-time events** via the party WebSocket channel ## **8. Chat** Real-time messaging across multiple conversation types: - **Chat types**: `lobby` (within a lobby), `group` (within a group), `party` (within a party), `friend` (DMs between friends) - **Send messages** with content, optional metadata, and automatic access validation - **List messages** with pagination (newest first) - **Read tracking**: mark messages as read and get unread counts per conversation - **Real-time delivery** via PubSub and WebSocket channels - **Moderation hooks**: `before_chat_message` pipeline hook for filtering/blocking ## **9. Leaderboards** Server-managed ranked scoreboards: - **Multiple leaderboards**: create named leaderboards with configurable sort order - **Score submission**: submit scores with optional metadata - **Rankings**: retrieve paginated rankings with user details - **Reset support**: leaderboards can be reset periodically ## **10. Key-Value Storage** Per-user persistent key-value storage for game state, preferences, and settings: - **Get/set/delete** key-value pairs scoped to the authenticated user - **List keys** with optional prefix filtering - **Metadata support**: values can include arbitrary JSON metadata ## **11. Quests / Progression** One event-driven progression engine covering achievements, daily/weekly quests, time-boxed event quests, and chains: - **Kinds**: `achievement` (permanent one-shot — the replacement for the old achievements system), `daily`/`weekly` (reset per UTC period), `event` (starts_at/ends_at window), `chain` (requires a prerequisite quest) - **Objectives**: each quest lists objectives `{event, target, params}`; server-side `report_event` advances every matching active quest — there is **no public endpoint to advance progress** (server-authoritative) - **Rewards**: currencies (Economy) and items (Inventory), paid **exactly once** per period via idempotent grants; `auto_claim` quests pay on completion, others via `POST /me/quests/:key/claim` - **My quests**: `GET /me/quests` returns active quests, per-period progress, and a claimable flag; hidden quests appear once completed - **Catalog**: `GET /quests` and per-user completions `GET /quests/user/:user_id` (gated by `LIST_QUESTS_ENABLED`) - **Admin management**: definitions CRUD plus per-user grant/reset/force-claim under `/api/v1/admin/quests` ## **12. Tournaments** Single-elimination bracket tournaments, server-structured and game-judged: - **Registration window → seeded draw → timed rounds → champions**; recurring tournaments (cron) create one occurrence per cycle sharing a slug; a nil starts_at keeps registration open until an admin draws manually - **Join/leave** as an entry leader (`POST`/`DELETE /tournaments/:id/join`); team composition is game policy - **Browse**: list/filter tournaments, standings, full bracket view, and the caller's current match (`GET /tournaments/:id/my-match`) - **Match verdicts are server-side** (game hooks) — no public resolve endpoint; clients get `tournament_match_ready` / `tournament_match_resolved` / `tournament_updated` / `tournament_finished` on the user channel - **Admin management** over HTTP: create/update/delete, cancel, draw now, finish, and force match verdicts under `/api/v1/admin/tournaments` ## **13. Matchmaking** Ticket-based queueing that turns waiting players into hidden, locked lobbies: - **Join over HTTP** (`POST /matchmaking/tickets` with a `match_params` string map); only tickets with identical params match together — encode mode/map/skill band as parameter values - **A match forms** when a group reaches `max_players`, or has at least `min_players` and the oldest ticket outwaited the timeout; the server creates a hidden lobby, seats everyone and locks it - **The result is a push, not a poll**: matched players receive `match_found` (`lobby_id`, `match_params`) on their user channel; disconnecting cancels your tickets - **Inspect**: `GET /matchmaking/tickets/me` for your ticket, `GET /matchmaking/stats` for queue depths - **Admin management** over HTTP: list/filter tickets, force-cancel, and stats under `/api/v1/admin/matchmaking` ## **14. Real-time: WebSocket Channels** The server provides real-time communication via Phoenix WebSocket channels. Connect to the WebSocket endpoint and join topic-based channels for live updates. ### **14.1 Connection** Connect to `wss://your-server.com/socket` with your JWT token as a parameter: ``` const socket = new Socket(\"wss://your-server.com/socket\", { params: { token: \"<access_token>\" } }) socket.connect() ``` ### **14.2 Available Channels** - **User channel** (`user:<user_id>`): notifications, friend events, quest progress/completions/claims, party/group invites, tournament events, KV subscriptions - **Lobby channel** (`lobby:<lobby_id>`): lobby member joins/leaves, lobby updates, lobby chat - **Lobbies channel** (`lobbies`): global lobby list changes (created, updated, deleted) - **Group channel** (`group:<group_id>`): group member changes, group updates, group chat - **Groups channel** (`groups`): global group list changes - **Party channel** (`party:<party_id>`): party member changes, party updates, party chat ### **14.3 JS SDK Helper** The `GameRealtime` class (included in this SDK) wraps Phoenix.Socket with convenient channel helpers: ```javascript import { GameRealtime } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', accessToken) const userChannel = realtime.joinUserChannel(userId) userChannel.on('notification', payload => console.log(payload)) ``` Requires the `phoenix` npm package as a peer dependency: `npm install phoenix` ## **15. Real-time: WebRTC DataChannels** For low-latency game data, the server supports WebRTC DataChannels alongside WebSocket. The server acts as a WebRTC peer (not P2P between clients). ### **15.1 How It Works** 1. Client connects via WebSocket and joins the **User channel** 2. Client sends an SDP offer over the channel (`webrtc:offer` event) 3. Server responds with an SDP answer (`webrtc:answer` event) 4. ICE candidates are exchanged (`webrtc:ice` events) 5. Once connected, named DataChannels carry game data at low latency ### **15.2 Default DataChannels** - **`events`** (reliable, ordered): important game events (player actions, state changes) - **`state`** (unreliable, unordered): high-frequency position/state sync ### **15.3 JS SDK Helper** The `GameWebRTC` class (included in this SDK, browser-only) handles signaling automatically: ```javascript import { GameRealtime, GameWebRTC } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', token) const userChannel = realtime.joinUserChannel(userId) const webrtc = new GameWebRTC(userChannel, { onData: (label, data) => console.log(label, data) }) await webrtc.connect() webrtc.send('events', JSON.stringify({ type: 'move', x: 10, y: 20 })) ```
|
|
21
21
|
*
|
|
22
|
-
* The version of the OpenAPI document: 1.0.
|
|
22
|
+
* The version of the OpenAPI document: 1.0.1063
|
|
23
23
|
*
|
|
24
24
|
*
|
|
25
25
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -13,9 +13,9 @@ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r),
|
|
|
13
13
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
14
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
|
|
15
15
|
* Game Server API
|
|
16
|
-
* API for the Gamend Game Server. Provides HTTP REST API, real-time WebSocket channels, and WebRTC DataChannels for low-latency game data. Features authentication, users, lobbies, groups, parties, friends, chat, notifications, achievements, leaderboards, tournaments, matchmaking, payments, server scripting, and admin portal. ## **1. Authentication** This API uses JWT (JSON Web Tokens) with access and refresh tokens: ### **1.1 Getting Tokens** - **Email/Password**: POST to `/api/v1/login` with email and password - **Device (SDK)**: POST to `/api/v1/login` with a `device_id` string (creates/returns a device user) - **Discord OAuth**: Use `/api/v1/auth/discord` flow - **Google OAuth**: Use `/api/v1/auth/google` flow - **Facebook OAuth**: Use `/api/v1/auth/facebook` flow - **Apple Sign In**: Use `/auth/apple` browser flow or apple sdk flow - **Steam (OpenID)**: Use `/api/v1/auth/steam` flow Both methods return: - `access_token` - Short-lived (15 min), use for API requests - `refresh_token` - Long-lived (30 days), use to get new access tokens ### **1.2 Using Tokens** Include the access token in the Authorization header: ``` Authorization: Bearer <access_token> ``` ### **1.3 Refreshing Tokens** When your access token expires, use POST `/api/v1/refresh` with your refresh token to get a new access token. ## **2. Users** Users endpoints cover the user lifecycle and profile features. Key highlights: - **Registration and login** (email/password, device token for SDKs, and OAuth providers) - **Profile metadata** (JSON blob per user) and editable profile fields - **Account lifecycle**: password reset, email confirmation, and account deletion - **Sessions & tokens**: both browser sessions and JWT-based API tokens are supported ## **3. Friends** The Friends domain offers lightweight social features: - **Friend requests** (send / accept / reject / block flows) - **Friend listing & pagination**, with basic privacy controls - **Domain helpers** to manage and query friend relationships from API or UI contexts ## **4. Lobbies** Lobbies provide matchmaking / room management primitives. Highlights: - **Create / list / update / delete** lobbies with rich metadata (mode, region, tags) - **Host-managed or hostless** modes (hostless allowed internally, not creatable via public API) - **Membership management**: join, leave, kick users, and automatic host transfer - **Controls & protection**: max users, hidden/locked states, and optional password protection - **Hidden lobbies** are excluded from public listings; public listing endpoints are paginated ## **5. Notifications** Persistent user-to-user notifications that survive across sessions: - **Send notifications** to accepted friends with a title, optional content, and optional metadata - **List own notifications** with pagination (ordered oldest-first) - **Delete notifications** by ID (single or batch) - **Real-time delivery** via the user WebSocket channel (`\"notification\"` events) - **Offline delivery**: undeleted notifications are replayed on WebSocket reconnect ## **6. Groups** Groups provide persistent community management for players: - **Three group types**: `public` (anyone joins directly), `private` (users request to join, admins approve), `hidden` (invite-only, never listed) - **Membership roles**: `admin` and `member`, with promote/demote capabilities - **Join requests**: for private groups, users submit requests that admins approve or reject - **Invitations**: admins can invite users directly (blocked users are rejected) - **CRUD operations**: create, update, delete groups with metadata support - **Group chat**: integrated via the Chat API with `chat_type: \"group\"` ## **7. Parties** Ephemeral groups of users for short-lived sessions (e.g., matchmaking squads): - **Invite-only joining**: the party leader sends invites by user ID to friends or shared-group members - **Invite flow**: `POST /parties/invite` → recipient accepts via `POST /parties/invite/accept` or declines via `POST /parties/invite/decline`; leader can cancel via `POST /parties/invite/cancel` - **Invite visibility**: leader can list sent invites (`GET /parties/invitations/sent`); recipient can list received invites (`GET /parties/invitations`) - **Connection requirement**: invites can only be sent to users who are friends or share at least one group with the leader - **One party at a time**: a user can only be in one party; accepting an invite while already in a party is rejected - **Leader management**: the creator is the leader; leadership can be transferred - **Lobby integration**: parties can create or join lobbies as a group - **Party chat**: integrated via the Chat API with `chat_type: \"party\"` - **Real-time events** via the party WebSocket channel ## **8. Chat** Real-time messaging across multiple conversation types: - **Chat types**: `lobby` (within a lobby), `group` (within a group), `party` (within a party), `friend` (DMs between friends) - **Send messages** with content, optional metadata, and automatic access validation - **List messages** with pagination (newest first) - **Read tracking**: mark messages as read and get unread counts per conversation - **Real-time delivery** via PubSub and WebSocket channels - **Moderation hooks**: `before_chat_message` pipeline hook for filtering/blocking ## **9. Leaderboards** Server-managed ranked scoreboards: - **Multiple leaderboards**: create named leaderboards with configurable sort order - **Score submission**: submit scores with optional metadata - **Rankings**: retrieve paginated rankings with user details - **Reset support**: leaderboards can be reset periodically ## **10. Key-Value Storage** Per-user persistent key-value storage for game state, preferences, and settings: - **Get/set/delete** key-value pairs scoped to the authenticated user - **List keys** with optional prefix filtering - **Metadata support**: values can include arbitrary JSON metadata ## **11. Achievements** Track player accomplishments with progress-based or instant-unlock achievements: - **Achievement definitions**: admin-created with slug, title, description, icon, sort order, and optional progress target - **Progress tracking**: increment progress toward a target; auto-unlocks when progress reaches the target - **Instant unlock**: directly unlock achievements without progress tracking - **Hidden achievements**: details obscured (\"???\") until unlocked by the user - **Public listings**: paginated, optionally filtered; authenticated users see their own progress - **Admin management**: create, update, delete, grant, revoke, unlock, and increment achievements ## **12. Tournaments** Single-elimination bracket tournaments, server-structured and game-judged: - **Registration window → seeded draw → timed rounds → champions**; recurring tournaments (cron) create one occurrence per cycle sharing a slug; a nil starts_at keeps registration open until an admin draws manually - **Join/leave** as an entry leader (`POST`/`DELETE /tournaments/:id/join`); team composition is game policy - **Browse**: list/filter tournaments, standings, full bracket view, and the caller's current match (`GET /tournaments/:id/my-match`) - **Match verdicts are server-side** (game hooks) — no public resolve endpoint; clients get `tournament_match_ready` / `tournament_match_resolved` / `tournament_updated` / `tournament_finished` on the user channel - **Admin management** over HTTP: create/update/delete, cancel, draw now, finish, and force match verdicts under `/api/v1/admin/tournaments` ## **13. Matchmaking** Ticket-based queueing that turns waiting players into hidden, locked lobbies: - **Join over HTTP** (`POST /matchmaking/tickets` with a `match_params` string map); only tickets with identical params match together — encode mode/map/skill band as parameter values - **A match forms** when a group reaches `max_players`, or has at least `min_players` and the oldest ticket outwaited the timeout; the server creates a hidden lobby, seats everyone and locks it - **The result is a push, not a poll**: matched players receive `match_found` (`lobby_id`, `match_params`) on their user channel; disconnecting cancels your tickets - **Inspect**: `GET /matchmaking/tickets/me` for your ticket, `GET /matchmaking/stats` for queue depths - **Admin management** over HTTP: list/filter tickets, force-cancel, and stats under `/api/v1/admin/matchmaking` ## **14. Real-time: WebSocket Channels** The server provides real-time communication via Phoenix WebSocket channels. Connect to the WebSocket endpoint and join topic-based channels for live updates. ### **14.1 Connection** Connect to `wss://your-server.com/socket` with your JWT token as a parameter: ``` const socket = new Socket(\"wss://your-server.com/socket\", { params: { token: \"<access_token>\" } }) socket.connect() ``` ### **14.2 Available Channels** - **User channel** (`user:<user_id>`): notifications, friend events, achievement unlocks, party/group invites, tournament events, KV subscriptions - **Lobby channel** (`lobby:<lobby_id>`): lobby member joins/leaves, lobby updates, lobby chat - **Lobbies channel** (`lobbies`): global lobby list changes (created, updated, deleted) - **Group channel** (`group:<group_id>`): group member changes, group updates, group chat - **Groups channel** (`groups`): global group list changes - **Party channel** (`party:<party_id>`): party member changes, party updates, party chat ### **14.3 JS SDK Helper** The `GameRealtime` class (included in this SDK) wraps Phoenix.Socket with convenient channel helpers: ```javascript import { GameRealtime } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', accessToken) const userChannel = realtime.joinUserChannel(userId) userChannel.on('notification', payload => console.log(payload)) ``` Requires the `phoenix` npm package as a peer dependency: `npm install phoenix` ## **15. Real-time: WebRTC DataChannels** For low-latency game data, the server supports WebRTC DataChannels alongside WebSocket. The server acts as a WebRTC peer (not P2P between clients). ### **15.1 How It Works** 1. Client connects via WebSocket and joins the **User channel** 2. Client sends an SDP offer over the channel (`webrtc:offer` event) 3. Server responds with an SDP answer (`webrtc:answer` event) 4. ICE candidates are exchanged (`webrtc:ice` events) 5. Once connected, named DataChannels carry game data at low latency ### **15.2 Default DataChannels** - **`events`** (reliable, ordered): important game events (player actions, state changes) - **`state`** (unreliable, unordered): high-frequency position/state sync ### **15.3 JS SDK Helper** The `GameWebRTC` class (included in this SDK, browser-only) handles signaling automatically: ```javascript import { GameRealtime, GameWebRTC } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', token) const userChannel = realtime.joinUserChannel(userId) const webrtc = new GameWebRTC(userChannel, { onData: (label, data) => console.log(label, data) }) await webrtc.connect() webrtc.send('events', JSON.stringify({ type: 'move', x: 10, y: 20 })) ```
|
|
16
|
+
* API for the Gamend Game Server. Provides HTTP REST API, real-time WebSocket channels, and WebRTC DataChannels for low-latency game data. Features authentication, users, lobbies, groups, parties, friends, chat, notifications, quests, leaderboards, tournaments, matchmaking, payments, server scripting, and admin portal. ## **1. Authentication** This API uses JWT (JSON Web Tokens) with access and refresh tokens: ### **1.1 Getting Tokens** - **Email/Password**: POST to `/api/v1/login` with email and password - **Device (SDK)**: POST to `/api/v1/login` with a `device_id` string (creates/returns a device user) - **Discord OAuth**: Use `/api/v1/auth/discord` flow - **Google OAuth**: Use `/api/v1/auth/google` flow - **Facebook OAuth**: Use `/api/v1/auth/facebook` flow - **Apple Sign In**: Use `/auth/apple` browser flow or apple sdk flow - **Steam (OpenID)**: Use `/api/v1/auth/steam` flow Both methods return: - `access_token` - Short-lived (15 min), use for API requests - `refresh_token` - Long-lived (30 days), use to get new access tokens ### **1.2 Using Tokens** Include the access token in the Authorization header: ``` Authorization: Bearer <access_token> ``` ### **1.3 Refreshing Tokens** When your access token expires, use POST `/api/v1/refresh` with your refresh token to get a new access token. ## **2. Users** Users endpoints cover the user lifecycle and profile features. Key highlights: - **Registration and login** (email/password, device token for SDKs, and OAuth providers) - **Profile metadata** (JSON blob per user) and editable profile fields - **Account lifecycle**: password reset, email confirmation, and account deletion - **Sessions & tokens**: both browser sessions and JWT-based API tokens are supported ## **3. Friends** The Friends domain offers lightweight social features: - **Friend requests** (send / accept / reject / block flows) - **Friend listing & pagination**, with basic privacy controls - **Domain helpers** to manage and query friend relationships from API or UI contexts ## **4. Lobbies** Lobbies provide matchmaking / room management primitives. Highlights: - **Create / list / update / delete** lobbies with rich metadata (mode, region, tags) - **Host-managed or hostless** modes (hostless allowed internally, not creatable via public API) - **Membership management**: join, leave, kick users, and automatic host transfer - **Controls & protection**: max users, hidden/locked states, and optional password protection - **Hidden lobbies** are excluded from public listings; public listing endpoints are paginated ## **5. Notifications** Persistent user-to-user notifications that survive across sessions: - **Send notifications** to accepted friends with a title, optional content, and optional metadata - **List own notifications** with pagination (ordered oldest-first) - **Delete notifications** by ID (single or batch) - **Real-time delivery** via the user WebSocket channel (`\"notification\"` events) - **Offline delivery**: undeleted notifications are replayed on WebSocket reconnect - **Push delivery**: notifications also fan out to the recipient's registered mobile devices (see Push notifications) ## **5b. Push notifications** Mobile/web push delivery to registered devices (FCM for Android/Web, APNs-direct for iOS): - **Register device tokens** via `POST /me/push-tokens` (`token`, `platform`, optional `provider`/`device_id`); re-registering a `device_id` rotates its token in place - **List/remove own devices** via `GET /me/push-tokens` and `DELETE /me/push-tokens/:id` - **Server-authoritative sending** — no public send endpoint; pushes originate from server hooks (`GameServer.Push.send_to_user/2`) or the admin API - **Per-token routing**: each token's `provider` (\"fcm\" | \"apns\") selects the delivery backend; unconfigured backends log instead of sending (dev-friendly) - **Reliability**: delivery rides the durable job queue with retries; dead tokens reported by the provider are disabled automatically ## **6. Groups** Groups provide persistent community management for players: - **Three group types**: `public` (anyone joins directly), `private` (users request to join, admins approve), `hidden` (invite-only, never listed) - **Membership roles**: `admin` and `member`, with promote/demote capabilities - **Join requests**: for private groups, users submit requests that admins approve or reject - **Invitations**: admins can invite users directly (blocked users are rejected) - **CRUD operations**: create, update, delete groups with metadata support - **Group chat**: integrated via the Chat API with `chat_type: \"group\"` ## **7. Parties** Ephemeral groups of users for short-lived sessions (e.g., matchmaking squads): - **Invite-only joining**: the party leader sends invites by user ID to friends or shared-group members - **Invite flow**: `POST /parties/invite` → recipient accepts via `POST /parties/invite/accept` or declines via `POST /parties/invite/decline`; leader can cancel via `POST /parties/invite/cancel` - **Invite visibility**: leader can list sent invites (`GET /parties/invitations/sent`); recipient can list received invites (`GET /parties/invitations`) - **Connection requirement**: invites can only be sent to users who are friends or share at least one group with the leader - **One party at a time**: a user can only be in one party; accepting an invite while already in a party is rejected - **Leader management**: the creator is the leader; leadership can be transferred - **Lobby integration**: parties can create or join lobbies as a group - **Party chat**: integrated via the Chat API with `chat_type: \"party\"` - **Real-time events** via the party WebSocket channel ## **8. Chat** Real-time messaging across multiple conversation types: - **Chat types**: `lobby` (within a lobby), `group` (within a group), `party` (within a party), `friend` (DMs between friends) - **Send messages** with content, optional metadata, and automatic access validation - **List messages** with pagination (newest first) - **Read tracking**: mark messages as read and get unread counts per conversation - **Real-time delivery** via PubSub and WebSocket channels - **Moderation hooks**: `before_chat_message` pipeline hook for filtering/blocking ## **9. Leaderboards** Server-managed ranked scoreboards: - **Multiple leaderboards**: create named leaderboards with configurable sort order - **Score submission**: submit scores with optional metadata - **Rankings**: retrieve paginated rankings with user details - **Reset support**: leaderboards can be reset periodically ## **10. Key-Value Storage** Per-user persistent key-value storage for game state, preferences, and settings: - **Get/set/delete** key-value pairs scoped to the authenticated user - **List keys** with optional prefix filtering - **Metadata support**: values can include arbitrary JSON metadata ## **11. Quests / Progression** One event-driven progression engine covering achievements, daily/weekly quests, time-boxed event quests, and chains: - **Kinds**: `achievement` (permanent one-shot — the replacement for the old achievements system), `daily`/`weekly` (reset per UTC period), `event` (starts_at/ends_at window), `chain` (requires a prerequisite quest) - **Objectives**: each quest lists objectives `{event, target, params}`; server-side `report_event` advances every matching active quest — there is **no public endpoint to advance progress** (server-authoritative) - **Rewards**: currencies (Economy) and items (Inventory), paid **exactly once** per period via idempotent grants; `auto_claim` quests pay on completion, others via `POST /me/quests/:key/claim` - **My quests**: `GET /me/quests` returns active quests, per-period progress, and a claimable flag; hidden quests appear once completed - **Catalog**: `GET /quests` and per-user completions `GET /quests/user/:user_id` (gated by `LIST_QUESTS_ENABLED`) - **Admin management**: definitions CRUD plus per-user grant/reset/force-claim under `/api/v1/admin/quests` ## **12. Tournaments** Single-elimination bracket tournaments, server-structured and game-judged: - **Registration window → seeded draw → timed rounds → champions**; recurring tournaments (cron) create one occurrence per cycle sharing a slug; a nil starts_at keeps registration open until an admin draws manually - **Join/leave** as an entry leader (`POST`/`DELETE /tournaments/:id/join`); team composition is game policy - **Browse**: list/filter tournaments, standings, full bracket view, and the caller's current match (`GET /tournaments/:id/my-match`) - **Match verdicts are server-side** (game hooks) — no public resolve endpoint; clients get `tournament_match_ready` / `tournament_match_resolved` / `tournament_updated` / `tournament_finished` on the user channel - **Admin management** over HTTP: create/update/delete, cancel, draw now, finish, and force match verdicts under `/api/v1/admin/tournaments` ## **13. Matchmaking** Ticket-based queueing that turns waiting players into hidden, locked lobbies: - **Join over HTTP** (`POST /matchmaking/tickets` with a `match_params` string map); only tickets with identical params match together — encode mode/map/skill band as parameter values - **A match forms** when a group reaches `max_players`, or has at least `min_players` and the oldest ticket outwaited the timeout; the server creates a hidden lobby, seats everyone and locks it - **The result is a push, not a poll**: matched players receive `match_found` (`lobby_id`, `match_params`) on their user channel; disconnecting cancels your tickets - **Inspect**: `GET /matchmaking/tickets/me` for your ticket, `GET /matchmaking/stats` for queue depths - **Admin management** over HTTP: list/filter tickets, force-cancel, and stats under `/api/v1/admin/matchmaking` ## **14. Real-time: WebSocket Channels** The server provides real-time communication via Phoenix WebSocket channels. Connect to the WebSocket endpoint and join topic-based channels for live updates. ### **14.1 Connection** Connect to `wss://your-server.com/socket` with your JWT token as a parameter: ``` const socket = new Socket(\"wss://your-server.com/socket\", { params: { token: \"<access_token>\" } }) socket.connect() ``` ### **14.2 Available Channels** - **User channel** (`user:<user_id>`): notifications, friend events, quest progress/completions/claims, party/group invites, tournament events, KV subscriptions - **Lobby channel** (`lobby:<lobby_id>`): lobby member joins/leaves, lobby updates, lobby chat - **Lobbies channel** (`lobbies`): global lobby list changes (created, updated, deleted) - **Group channel** (`group:<group_id>`): group member changes, group updates, group chat - **Groups channel** (`groups`): global group list changes - **Party channel** (`party:<party_id>`): party member changes, party updates, party chat ### **14.3 JS SDK Helper** The `GameRealtime` class (included in this SDK) wraps Phoenix.Socket with convenient channel helpers: ```javascript import { GameRealtime } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', accessToken) const userChannel = realtime.joinUserChannel(userId) userChannel.on('notification', payload => console.log(payload)) ``` Requires the `phoenix` npm package as a peer dependency: `npm install phoenix` ## **15. Real-time: WebRTC DataChannels** For low-latency game data, the server supports WebRTC DataChannels alongside WebSocket. The server acts as a WebRTC peer (not P2P between clients). ### **15.1 How It Works** 1. Client connects via WebSocket and joins the **User channel** 2. Client sends an SDP offer over the channel (`webrtc:offer` event) 3. Server responds with an SDP answer (`webrtc:answer` event) 4. ICE candidates are exchanged (`webrtc:ice` events) 5. Once connected, named DataChannels carry game data at low latency ### **15.2 Default DataChannels** - **`events`** (reliable, ordered): important game events (player actions, state changes) - **`state`** (unreliable, unordered): high-frequency position/state sync ### **15.3 JS SDK Helper** The `GameWebRTC` class (included in this SDK, browser-only) handles signaling automatically: ```javascript import { GameRealtime, GameWebRTC } from '@ughuuu/game_server' const realtime = new GameRealtime('https://your-server.com', token) const userChannel = realtime.joinUserChannel(userId) const webrtc = new GameWebRTC(userChannel, { onData: (label, data) => console.log(label, data) }) await webrtc.connect() webrtc.send('events', JSON.stringify({ type: 'move', x: 10, y: 20 })) ```
|
|
17
17
|
*
|
|
18
|
-
* The version of the OpenAPI document: 1.0.
|
|
18
|
+
* The version of the OpenAPI document: 1.0.1063
|
|
19
19
|
*
|
|
20
20
|
*
|
|
21
21
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|