@xmobitea/gn-typescript-client 2.6.10 → 2.6.11-tsc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/index.js +337 -34189
  2. package/dist/runtime/GNNetwork.d.ts +3 -0
  3. package/dist/runtime/GNNetwork.js +260 -0
  4. package/dist/runtime/GNNetworkAuthenticateApi.js +122 -0
  5. package/dist/runtime/GNNetworkCharacterPlayerApi.js +968 -0
  6. package/dist/runtime/GNNetworkCloudScriptApi.js +104 -0
  7. package/dist/runtime/GNNetworkContentApi.js +140 -0
  8. package/dist/runtime/GNNetworkDashboardApi.js +170 -0
  9. package/dist/runtime/GNNetworkGamePlayerApi.js +950 -0
  10. package/dist/runtime/GNNetworkGroupApi.js +734 -0
  11. package/dist/runtime/GNNetworkInventoryApi.js +626 -0
  12. package/dist/runtime/GNNetworkMasterPlayerApi.js +1550 -0
  13. package/dist/runtime/GNNetworkMultiplayerApi.js +194 -0
  14. package/dist/runtime/GNNetworkStoreInventoryApi.js +266 -0
  15. package/dist/runtime/common/Action0.js +1 -0
  16. package/dist/runtime/common/Action1.js +1 -0
  17. package/dist/runtime/common/Action2.js +1 -0
  18. package/dist/runtime/common/Action3.js +1 -0
  19. package/dist/runtime/common/Action4.js +1 -0
  20. package/dist/runtime/common/GNData.js +211 -0
  21. package/dist/runtime/config/GNServerSettings.js +156 -0
  22. package/dist/runtime/constant/Commands.js +20 -0
  23. package/dist/runtime/constant/EventCode.js +8 -0
  24. package/dist/runtime/constant/OperationCode.js +221 -0
  25. package/dist/runtime/constant/ReturnCode.js +14 -0
  26. package/dist/runtime/constant/enumType/ExecuteResponseStatus.js +8 -0
  27. package/dist/runtime/constant/enumType/FriendStatus.js +7 -0
  28. package/dist/runtime/constant/enumType/GoogleLoginType.js +5 -0
  29. package/dist/runtime/constant/enumType/GroupStatus.js +7 -0
  30. package/dist/runtime/constant/enumType/InvalidMemberType.js +18 -0
  31. package/dist/runtime/constant/enumType/ItemType.js +5 -0
  32. package/dist/runtime/constant/enumType/MatchmakingMemberStatus.js +6 -0
  33. package/dist/runtime/constant/enumType/MatchmakingTicketStatus.js +8 -0
  34. package/dist/runtime/constant/enumType/OwnerType.js +9 -0
  35. package/dist/runtime/constant/enumType/PermissionDataItem.js +5 -0
  36. package/dist/runtime/constant/enumType/PushPlatformType.js +5 -0
  37. package/dist/runtime/constant/enumType/RequestRole.js +6 -0
  38. package/dist/runtime/constant/enumType/RequestType.js +15 -0
  39. package/dist/runtime/constant/enumType/StoreItemType.js +5 -0
  40. package/dist/runtime/constant/enumType/StoreReceiveType.js +8 -0
  41. package/dist/runtime/constant/errorCode/ErrorCode.js +52 -0
  42. package/dist/runtime/constant/parameterCode/ParameterCode.js +617 -0
  43. package/dist/runtime/entity/DataMember.js +208 -0
  44. package/dist/runtime/entity/GNMetadata.js +11 -0
  45. package/dist/runtime/entity/InvalidMember.js +1 -0
  46. package/dist/runtime/entity/OperationEvent.js +24 -0
  47. package/dist/runtime/entity/OperationHelper.js +24 -0
  48. package/dist/runtime/entity/OperationRequest.js +42 -0
  49. package/dist/runtime/entity/OperationResponse.js +73 -0
  50. package/dist/runtime/entity/models/AuthenticateModels.js +426 -0
  51. package/dist/runtime/entity/models/AuthenticateRequestModels.js +188 -0
  52. package/dist/runtime/entity/models/AuthenticateResponseModels.js +131 -0
  53. package/dist/runtime/entity/models/CharacterPlayerModels.js +1433 -0
  54. package/dist/runtime/entity/models/CharacterPlayerRequestModels.js +1386 -0
  55. package/dist/runtime/entity/models/CharacterPlayerResponseModels.js +376 -0
  56. package/dist/runtime/entity/models/CloudScriptModels.js +197 -0
  57. package/dist/runtime/entity/models/CloudScriptRequestModels.js +138 -0
  58. package/dist/runtime/entity/models/CloudScriptResponseModels.js +40 -0
  59. package/dist/runtime/entity/models/ContentModels.js +203 -0
  60. package/dist/runtime/entity/models/ContentRequestModels.js +190 -0
  61. package/dist/runtime/entity/models/ContentResponseModels.js +54 -0
  62. package/dist/runtime/entity/models/DashboardModels.js +3002 -0
  63. package/dist/runtime/entity/models/DashboardRequestModels.js +268 -0
  64. package/dist/runtime/entity/models/DashboardResponseModels.js +187 -0
  65. package/dist/runtime/entity/models/GamePlayerModels.js +1591 -0
  66. package/dist/runtime/entity/models/GamePlayerRequestModels.js +1360 -0
  67. package/dist/runtime/entity/models/GamePlayerResponseModels.js +369 -0
  68. package/dist/runtime/entity/models/GenericModels.js +177 -0
  69. package/dist/runtime/entity/models/GroupModels.js +1135 -0
  70. package/dist/runtime/entity/models/GroupRequestModels.js +1048 -0
  71. package/dist/runtime/entity/models/GroupResponseModels.js +285 -0
  72. package/dist/runtime/entity/models/InventoryModels.js +915 -0
  73. package/dist/runtime/entity/models/InventoryRequestModels.js +892 -0
  74. package/dist/runtime/entity/models/InventoryResponseModels.js +243 -0
  75. package/dist/runtime/entity/models/MasterPlayerModels.js +2573 -0
  76. package/dist/runtime/entity/models/MasterPlayerRequestModels.js +2228 -0
  77. package/dist/runtime/entity/models/MasterPlayerResponseModels.js +607 -0
  78. package/dist/runtime/entity/models/MultiplayerModels.js +404 -0
  79. package/dist/runtime/entity/models/MultiplayerRequestModels.js +268 -0
  80. package/dist/runtime/entity/models/MultiplayerResponseModels.js +75 -0
  81. package/dist/runtime/entity/models/StoreInventoryModels.js +797 -0
  82. package/dist/runtime/entity/models/StoreInventoryRequestModels.js +372 -0
  83. package/dist/runtime/entity/models/StoreInventoryResponseModels.js +103 -0
  84. package/dist/runtime/entity/request/CustomOperationRequest.js +24 -0
  85. package/dist/runtime/entity/response/CustomOperationResponse.js +29 -0
  86. package/dist/runtime/entity/response/GetAuthInfoResponse.js +2 -0
  87. package/dist/runtime/entity/response/HealthCheckResponse.d.ts +21 -0
  88. package/dist/runtime/entity/response/HealthCheckResponse.js +2 -0
  89. package/dist/runtime/entity/response/UploadFileResponse.js +2 -0
  90. package/dist/runtime/helper/CodeHelper.js +63 -0
  91. package/dist/runtime/helper/ConverterService.js +275 -0
  92. package/dist/runtime/helper/EnumUtility.js +33 -0
  93. package/dist/runtime/helper/GNSupport.js +8 -0
  94. package/dist/runtime/helper/GNUtils.js +72 -0
  95. package/dist/runtime/helper/MessagePackConverterService.js +9 -0
  96. package/dist/runtime/logger/GNDebug.js +29 -0
  97. package/dist/runtime/networking/AuthenticateStatus.js +14 -0
  98. package/dist/runtime/networking/IPeer.js +1 -0
  99. package/dist/runtime/networking/NetworkingPeer.d.ts +3 -0
  100. package/dist/runtime/networking/NetworkingPeer.js +208 -0
  101. package/dist/runtime/networking/OperationPending.js +53 -0
  102. package/dist/runtime/networking/PeerBase.js +161 -0
  103. package/dist/runtime/networking/handler/IServerEventHandler.js +13 -0
  104. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.js +39 -0
  105. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.js +39 -0
  106. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.js +39 -0
  107. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.js +39 -0
  108. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.js +35 -0
  109. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.js +43 -0
  110. package/dist/runtime/networking/http/HttpPeer.js +123 -0
  111. package/dist/runtime/networking/http/NetworkingHttpPeerBase.js +9 -0
  112. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.js +179 -0
  113. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.js +130 -0
  114. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.js +165 -0
  115. package/dist/runtime/networking/socket/SocketPeer.js +115 -0
  116. package/dist/runtime/typescript/ServiceUpdate.js +12 -0
  117. package/package.json +1 -1
  118. package/dist/gearn.js.client.js +0 -46911
  119. package/dist/gearn.js.client.min.js +0 -2
  120. package/dist/gearn.js.client.min.js.LICENSE.txt +0 -14
@@ -0,0 +1,275 @@
1
+ import { GNFieldDataType, getGNObjectMetadata } from "./../entity/DataMember";
2
+ import { GNArray, GNData, GNHashtable } from "./../common/GNData";
3
+ class DataMemberFieldInfoTypeMapper {
4
+ getGNEnhancedObjectFieldMetadata(cls) {
5
+ let declaredFields;
6
+ if (this.declaredFieldsMap.has(cls)) {
7
+ declaredFields = this.declaredFieldsMap.get(cls);
8
+ }
9
+ else {
10
+ let gnObjectMetadata = getGNObjectMetadata(cls);
11
+ declaredFields = gnObjectMetadata != null ? gnObjectMetadata.fields : [];
12
+ this.declaredFieldsMap.set(cls, declaredFields);
13
+ }
14
+ return declaredFields;
15
+ }
16
+ constructor() {
17
+ this.declaredFieldsMap = new Map();
18
+ }
19
+ }
20
+ class DeserializeConverter {
21
+ deserializeObject(gnHashtable, cls) {
22
+ if (gnHashtable == null)
23
+ return null;
24
+ let declaredFields = this.dataMemberFieldInfoMapper.getGNEnhancedObjectFieldMetadata(cls);
25
+ let answer = new cls();
26
+ declaredFields.forEach(declaredField => {
27
+ let value = gnHashtable.getObject(declaredField.code);
28
+ let typeOfValue = typeof value;
29
+ if (declaredField.gnFieldType == GNFieldDataType.String) {
30
+ if (value == null)
31
+ answer[declaredField.name] = declaredField.defaultValue;
32
+ else if (typeOfValue == "string")
33
+ answer[declaredField.name] = value;
34
+ }
35
+ else if (declaredField.gnFieldType == GNFieldDataType.Boolean) {
36
+ if (value == null)
37
+ answer[declaredField.name] = declaredField.defaultValue;
38
+ else if (typeOfValue == "boolean")
39
+ answer[declaredField.name] = value;
40
+ }
41
+ else if (declaredField.gnFieldType == GNFieldDataType.GNHashtable) {
42
+ if (value == null) {
43
+ if (declaredField.defaultValue != null) {
44
+ if (declaredField.cls == GNHashtable)
45
+ answer[declaredField.name] = declaredField.defaultValue;
46
+ else if (typeof declaredField.cls == "object")
47
+ answer[declaredField.name] = declaredField.defaultValue.toData();
48
+ else
49
+ answer[declaredField.name] = this.deserializeObject(declaredField.defaultValue, declaredField.cls);
50
+ }
51
+ }
52
+ else {
53
+ if (declaredField.cls == GNHashtable)
54
+ answer[declaredField.name] = value;
55
+ else if (typeof declaredField.cls == "object")
56
+ answer[declaredField.name] = value.toData();
57
+ else
58
+ answer[declaredField.name] = this.deserializeObject(value, declaredField.cls);
59
+ }
60
+ }
61
+ else if (declaredField.gnFieldType == GNFieldDataType.GNArray) {
62
+ if (value == null) {
63
+ if (declaredField.defaultValue != null) {
64
+ if (declaredField.cls == GNArray)
65
+ answer[declaredField.name] = declaredField.defaultValue;
66
+ else if (typeof declaredField.cls == "object")
67
+ answer[declaredField.name] = declaredField.defaultValue.toData();
68
+ else
69
+ answer[declaredField.name] = this.deserializeArray(declaredField.defaultValue, declaredField.cls);
70
+ }
71
+ }
72
+ else {
73
+ if (declaredField.cls == GNArray)
74
+ answer[declaredField.name] = value;
75
+ else if (typeof declaredField.cls == "object")
76
+ answer[declaredField.name] = value.toData();
77
+ else
78
+ answer[declaredField.name] = this.deserializeArray(value, declaredField.cls);
79
+ }
80
+ }
81
+ else if (declaredField.gnFieldType == GNFieldDataType.Number) {
82
+ if (value == null)
83
+ answer[declaredField.name] = declaredField.defaultValue;
84
+ else if (typeOfValue == "number")
85
+ answer[declaredField.name] = value;
86
+ }
87
+ else {
88
+ if (value == null) {
89
+ if (declaredField.defaultValue != null) {
90
+ if (declaredField.cls == Number)
91
+ answer[declaredField.name] = declaredField.defaultValue;
92
+ else if (declaredField.cls == String)
93
+ answer[declaredField.name] = declaredField.defaultValue;
94
+ else if (declaredField.cls == Boolean)
95
+ answer[declaredField.name] = declaredField.defaultValue;
96
+ else if (declaredField.cls == GNHashtable)
97
+ answer[declaredField.name] = this.deserializeObject(declaredField.defaultValue, declaredField.cls);
98
+ else if (declaredField.cls == GNArray)
99
+ answer[declaredField.name] = this.deserializeArray(declaredField.defaultValue, declaredField.cls);
100
+ else
101
+ answer[declaredField.name] = declaredField.defaultValue;
102
+ }
103
+ }
104
+ else {
105
+ if (declaredField.cls == Number)
106
+ answer[declaredField.name] = value;
107
+ else if (declaredField.cls == String)
108
+ answer[declaredField.name] = value;
109
+ else if (declaredField.cls == Boolean)
110
+ answer[declaredField.name] = value;
111
+ else if (declaredField.cls == GNHashtable)
112
+ answer[declaredField.name] = this.deserializeObject(value, declaredField.cls);
113
+ else if (declaredField.cls == GNArray)
114
+ answer[declaredField.name] = this.deserializeArray(value, declaredField.cls);
115
+ else
116
+ answer[declaredField.name] = value;
117
+ }
118
+ }
119
+ });
120
+ return answer;
121
+ }
122
+ deserializeArray(gnArray, cls) {
123
+ if (gnArray == null)
124
+ return null;
125
+ let answer = [];
126
+ for (let i = 0; i < gnArray.count(); i++) {
127
+ let value = gnArray.getObject(i);
128
+ if (value == null)
129
+ answer.push(null);
130
+ else {
131
+ let typeOfValue = typeof value;
132
+ if (typeOfValue == "number")
133
+ answer.push(value);
134
+ else if (typeOfValue == "string")
135
+ answer.push(value);
136
+ else if (typeOfValue == "boolean")
137
+ answer.push(value);
138
+ else if (cls == GNArray)
139
+ answer.push(value);
140
+ else if (cls == GNData)
141
+ answer.push(value);
142
+ else if (typeOfValue == "object") {
143
+ if (Array.isArray(value)) {
144
+ answer.push(this.deserializeArray(gnArray.getGNArray(i), cls));
145
+ }
146
+ else {
147
+ answer.push(this.deserializeObject(gnArray.getGNHashtable(i), cls));
148
+ }
149
+ }
150
+ }
151
+ }
152
+ return answer;
153
+ }
154
+ constructor(dataMemberFieldInfoMapper) {
155
+ this.dataMemberFieldInfoMapper = dataMemberFieldInfoMapper;
156
+ }
157
+ }
158
+ class SerializeConverter {
159
+ serializeObject(obj, cls) {
160
+ if (obj == null)
161
+ return null;
162
+ let fieldInfos = this.dataMemberFieldInfoMapper.getGNEnhancedObjectFieldMetadata(cls);
163
+ let answer = new GNHashtable();
164
+ fieldInfos.forEach((field) => {
165
+ let dataMemberAnno = field;
166
+ let value = obj[dataMemberAnno.name];
167
+ if (value == null) {
168
+ if (!dataMemberAnno.isOptional)
169
+ answer.add(dataMemberAnno.code, null);
170
+ }
171
+ else {
172
+ let typeOfValue = typeof value;
173
+ if (dataMemberAnno.gnFieldType == GNFieldDataType.String) {
174
+ if (typeOfValue == "string")
175
+ answer.add(dataMemberAnno.code, value);
176
+ }
177
+ else if (dataMemberAnno.gnFieldType == GNFieldDataType.Boolean) {
178
+ if (typeOfValue == "boolean")
179
+ answer.add(dataMemberAnno.code, value);
180
+ }
181
+ else if (dataMemberAnno.gnFieldType == GNFieldDataType.GNHashtable) {
182
+ if (value instanceof GNHashtable)
183
+ answer.add(dataMemberAnno.code, value);
184
+ else if (typeOfValue === "object") {
185
+ if (!Array.isArray(value))
186
+ answer.add(dataMemberAnno.code, this.serializeObject(value, dataMemberAnno.cls));
187
+ }
188
+ }
189
+ else if (dataMemberAnno.gnFieldType == GNFieldDataType.GNArray) {
190
+ if (value instanceof GNArray)
191
+ answer.add(dataMemberAnno.code, value);
192
+ else if (typeOfValue === "object") {
193
+ if (Array.isArray(value))
194
+ answer.add(dataMemberAnno.code, this.serializeArray(value, dataMemberAnno.cls));
195
+ }
196
+ }
197
+ else if (dataMemberAnno.gnFieldType == GNFieldDataType.Number) {
198
+ if (typeOfValue == "number")
199
+ answer.add(dataMemberAnno.code, value);
200
+ }
201
+ else {
202
+ if (typeOfValue == "string")
203
+ answer.add(dataMemberAnno.code, value);
204
+ else if (typeOfValue == "boolean")
205
+ answer.add(dataMemberAnno.code, value);
206
+ else if (typeOfValue == "number")
207
+ answer.add(dataMemberAnno.code, value);
208
+ else if (value instanceof GNData)
209
+ answer.add(dataMemberAnno.code, value);
210
+ else if (typeOfValue == "object") {
211
+ if (Array.isArray(value))
212
+ answer.add(dataMemberAnno.code, this.serializeArray(value, dataMemberAnno.cls));
213
+ else
214
+ answer.add(dataMemberAnno.code, GNHashtable.builder().addAll(value).build());
215
+ }
216
+ else
217
+ answer.add(dataMemberAnno.code, this.serializeObject(value, dataMemberAnno.cls));
218
+ }
219
+ }
220
+ });
221
+ return answer;
222
+ }
223
+ serializeArray(objLst, cls) {
224
+ if (objLst == null)
225
+ return null;
226
+ let answer = new GNArray();
227
+ for (let i = 0; i < objLst.length; i++) {
228
+ let obj = objLst[i];
229
+ if (obj == null)
230
+ answer.add(null);
231
+ else {
232
+ let typeOfValue = typeof obj;
233
+ if (typeOfValue === "string")
234
+ answer.add(obj);
235
+ else if (typeOfValue === "boolean")
236
+ answer.add(obj);
237
+ else if (typeOfValue === "number")
238
+ answer.add(obj);
239
+ else if (obj instanceof GNData)
240
+ answer.add(obj);
241
+ else {
242
+ if (typeOfValue === "object") {
243
+ if (Array.isArray(obj))
244
+ answer.add(this.serializeArray(obj, cls));
245
+ else
246
+ answer.add(this.serializeObject(obj, cls));
247
+ }
248
+ }
249
+ }
250
+ }
251
+ return answer;
252
+ }
253
+ constructor(dataMemberFieldInfoMapper) {
254
+ this.dataMemberFieldInfoMapper = dataMemberFieldInfoMapper;
255
+ }
256
+ }
257
+ export class ConverterService {
258
+ static deserializeObject(gnHashtable, cls) {
259
+ return ConverterService.deserializeConverter.deserializeObject(gnHashtable, cls);
260
+ }
261
+ static deserializeArray(gnArray, cls) {
262
+ return ConverterService.deserializeConverter.deserializeArray(gnArray, cls);
263
+ }
264
+ static serializeObject(obj, cls) {
265
+ return ConverterService.serializeConverter.serializeObject(obj, cls);
266
+ }
267
+ static serializeArray(objLst, cls) {
268
+ return ConverterService.serializeConverter.serializeArray(objLst, cls);
269
+ }
270
+ static init() {
271
+ let dataMemberFieldInfoMapper = new DataMemberFieldInfoTypeMapper();
272
+ ConverterService.serializeConverter = new SerializeConverter(dataMemberFieldInfoMapper);
273
+ ConverterService.deserializeConverter = new DeserializeConverter(dataMemberFieldInfoMapper);
274
+ }
275
+ }
@@ -0,0 +1,33 @@
1
+ export class EnumUtility {
2
+ static getEnumKeys(enumType) {
3
+ let keys = this.enumKeyCache.get(enumType);
4
+ if (!keys) {
5
+ keys = Object.keys(enumType).filter(key => isNaN(Number(key)));
6
+ this.enumKeyCache.set(enumType, keys);
7
+ }
8
+ return keys;
9
+ }
10
+ static parse(enumType, value, ignoreCase) {
11
+ if (!ignoreCase) {
12
+ if (value in enumType) {
13
+ return enumType[value];
14
+ }
15
+ }
16
+ else {
17
+ let normalizedValue = value.toUpperCase();
18
+ let enumKeys = this.getEnumKeys(enumType);
19
+ for (const key of enumKeys) {
20
+ if (key.toUpperCase() === normalizedValue) {
21
+ return enumType[key];
22
+ }
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ static toString(enumType, value) {
28
+ let enumKeys = this.getEnumKeys(enumType);
29
+ const key = enumKeys.find(k => enumType[k] === value);
30
+ return key !== null && key !== void 0 ? key : null;
31
+ }
32
+ }
33
+ EnumUtility.enumKeyCache = new Map();
@@ -0,0 +1,8 @@
1
+ export class GNSupport {
2
+ static init() {
3
+ this._isBrowser = (typeof window !== "undefined");
4
+ }
5
+ static isBrowser() {
6
+ return this._isBrowser;
7
+ }
8
+ }
@@ -0,0 +1,72 @@
1
+ export class GNUtils {
2
+ static toDatasDictionary(datas) {
3
+ if (datas == null)
4
+ return null;
5
+ let answer = new Map();
6
+ for (let i = 0; i < datas.length; i++) {
7
+ let data = datas[i];
8
+ answer.set(data.key, data);
9
+ }
10
+ return answer;
11
+ }
12
+ static toTagsDictionary(tags) {
13
+ if (tags == null)
14
+ return null;
15
+ let answer = new Map();
16
+ for (let i = 0; i < tags.length; i++) {
17
+ let tag = tags[i];
18
+ answer.set(tag.key, tag);
19
+ }
20
+ return answer;
21
+ }
22
+ static toCurrenciesDictionary(currencies) {
23
+ if (currencies == null)
24
+ return null;
25
+ let answer = new Map();
26
+ for (let i = 0; i < currencies.length; i++) {
27
+ let currency = currencies[i];
28
+ answer.set(currency.key, currency);
29
+ }
30
+ return answer;
31
+ }
32
+ static toStatisticsDictionary(statistics) {
33
+ if (statistics == null)
34
+ return null;
35
+ let answer = new Map();
36
+ for (let i = 0; i < statistics.length; i++) {
37
+ let statistic = statistics[i];
38
+ answer.set(statistic.key, statistic);
39
+ }
40
+ return answer;
41
+ }
42
+ static toInventoriesDictionary(inventories) {
43
+ if (inventories == null)
44
+ return null;
45
+ let answer = new Map();
46
+ for (let i = 0; i < inventories.length; i++) {
47
+ let inventory = inventories[i];
48
+ answer.set(inventory.itemId, inventory);
49
+ }
50
+ return answer;
51
+ }
52
+ static toGroupDictionary(groups) {
53
+ if (groups == null)
54
+ return null;
55
+ let answer = new Map();
56
+ for (let i = 0; i < groups.length; i++) {
57
+ let group = groups[i];
58
+ answer.set(group.groupId, group);
59
+ }
60
+ return answer;
61
+ }
62
+ static toFriendDictionary(friends) {
63
+ if (friends == null)
64
+ return null;
65
+ let answer = new Map();
66
+ for (let i = 0; i < friends.length; i++) {
67
+ let friend = friends[i];
68
+ answer.set(friend.friendId, friend);
69
+ }
70
+ return answer;
71
+ }
72
+ }
@@ -0,0 +1,9 @@
1
+ import { encode, decode } from "@msgpack/msgpack";
2
+ export class MessagePackConverterService {
3
+ static serialize(tObj) {
4
+ return encode(tObj);
5
+ }
6
+ static deserialize(data) {
7
+ return decode(data);
8
+ }
9
+ }
@@ -0,0 +1,29 @@
1
+ export var LogType;
2
+ (function (LogType) {
3
+ LogType[LogType["Off"] = 0] = "Off";
4
+ LogType[LogType["Exception"] = 1] = "Exception";
5
+ LogType[LogType["Error"] = 2] = "Error";
6
+ LogType[LogType["Warning"] = 3] = "Warning";
7
+ LogType[LogType["All"] = 4] = "All";
8
+ })(LogType || (LogType = {}));
9
+ export class GNDebug {
10
+ static setLogType(logType) {
11
+ this._logType = logType;
12
+ }
13
+ static log(message) {
14
+ if (this._logType >= LogType.All)
15
+ console.log(message);
16
+ }
17
+ static logException(exception) {
18
+ if (this._logType >= LogType.Exception)
19
+ console.error(exception);
20
+ }
21
+ static logWarning(message) {
22
+ if (this._logType >= LogType.Warning)
23
+ console.warn(message);
24
+ }
25
+ static logError(message) {
26
+ if (this._logType >= LogType.Error)
27
+ console.error(message);
28
+ }
29
+ }
@@ -0,0 +1,14 @@
1
+ export class AuthenticateStatus {
2
+ getAuthToken() {
3
+ return this.authToken;
4
+ }
5
+ setAuthToken(authToken) {
6
+ this.authToken = authToken;
7
+ }
8
+ getUserId() {
9
+ return this.userId;
10
+ }
11
+ setUserId(userId) {
12
+ this.userId = userId;
13
+ }
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -10,9 +10,11 @@ import { RequestType } from "./../constant/enumType/RequestType";
10
10
  import { RequestRole } from "./../constant/enumType/RequestRole";
11
11
  import { GetAuthInfoResponse } from "./../entity/response/GetAuthInfoResponse";
12
12
  import { UploadFileResponse } from "./../entity/response/UploadFileResponse";
13
+ import { HealthCheckResponse } from "../entity/response/HealthCheckResponse";
13
14
  export declare class NetworkingPeer {
14
15
  static readonly SYNC_TS: string;
15
16
  static readonly GET_AUTH_INFO: string;
17
+ static readonly HEALTH_CHECK: string;
16
18
  static readonly UPLOAD_FILE: string;
17
19
  static readonly DOWNLOAD_FILE: string;
18
20
  static readonly API_JSON: string;
@@ -42,5 +44,6 @@ export declare class NetworkingPeer {
42
44
  subscriberServerEventHandler(serverEventHandler: IServerEventHandler): void;
43
45
  syncTs(onResponse?: Action1<number>): void;
44
46
  getAuthInfo(authToken: string, onResponse: Action1<GetAuthInfoResponse>): void;
47
+ healthCheck(onResponse: Action1<HealthCheckResponse>): void;
45
48
  uploadFile(fileId: string, content: Uint8Array, filename: string, mimetype: string, onResponse: Action1<UploadFileResponse>): void;
46
49
  }
@@ -0,0 +1,208 @@
1
+ import { Commands } from "./../constant/Commands";
2
+ import { GNHashtable } from "./../common/GNData";
3
+ import { GNNetwork } from "./../GNNetwork";
4
+ import { HttpPeer } from "./http/HttpPeer";
5
+ import { SocketPeer } from "./socket/SocketPeer";
6
+ import { AuthenticateStatus } from "./AuthenticateStatus";
7
+ import { RequestRole } from "./../constant/enumType/RequestRole";
8
+ import { ParameterCode } from "./../constant/parameterCode/ParameterCode";
9
+ export class NetworkingPeer {
10
+ getPing() {
11
+ let count = 0;
12
+ let totalPing = 0;
13
+ if (this.httpPeer.isUsing()) {
14
+ count++;
15
+ totalPing += this.httpPeer.ping;
16
+ }
17
+ if (this.socketPeer.isUsing()) {
18
+ count++;
19
+ totalPing += this.socketPeer.ping;
20
+ }
21
+ return totalPing / count;
22
+ }
23
+ getClientId() {
24
+ return this.socketPeer.getClientId();
25
+ }
26
+ setServerTimeMilliseconds(currentServerMilliseconds) {
27
+ this.lastCurrentServerMilliseconds = currentServerMilliseconds;
28
+ this.lastGetCurrentMilliseconds = Date.now() / 1000;
29
+ }
30
+ getServerTimestamp() {
31
+ return this.lastCurrentServerMilliseconds + ((Date.now() / 1000 - this.lastGetCurrentMilliseconds) * 1000);
32
+ }
33
+ initPeer() {
34
+ this.setServerTimeMilliseconds(new Date().getUTCMilliseconds());
35
+ let gnServerSettings = GNNetwork.getGNServerSettings();
36
+ if (gnServerSettings == null)
37
+ throw new Error("Null GN Server Settings, please find it now");
38
+ this.authenticateStatus = new AuthenticateStatus();
39
+ this.httpPeer = new HttpPeer();
40
+ this.httpPeer.initPeer();
41
+ this.socketPeer = new SocketPeer();
42
+ this.socketPeer.initPeer();
43
+ }
44
+ service() {
45
+ if (this.httpPeer != null)
46
+ this.httpPeer.service();
47
+ if (this.socketPeer != null)
48
+ this.socketPeer.service();
49
+ }
50
+ sendViaSocket(requestType, role, request, onResponse = null, authToken = null, secretKey = null, customTags = null) {
51
+ if (authToken == null)
52
+ authToken = this.authenticateStatus.getAuthToken();
53
+ if (secretKey == null) {
54
+ if (role == RequestRole.Admin)
55
+ secretKey = GNNetwork.getGNServerSettings().getAdminSecretKey();
56
+ else if (role == RequestRole.Server)
57
+ secretKey = GNNetwork.getGNServerSettings().getServerSecretKey();
58
+ else if (role == RequestRole.Client)
59
+ secretKey = GNNetwork.getGNServerSettings().getClientSecretKey();
60
+ }
61
+ this.socketPeer.enqueue(requestType, role, request, onResponse, authToken, secretKey, customTags, this.gameId);
62
+ }
63
+ sendViaHttp(requestType, role, request, onResponse = null, authToken = null, secretKey = null, customTags = null) {
64
+ if (authToken == null)
65
+ authToken = this.authenticateStatus.getAuthToken();
66
+ if (secretKey == null) {
67
+ if (role == RequestRole.Admin)
68
+ secretKey = GNNetwork.getGNServerSettings().getAdminSecretKey();
69
+ else if (role == RequestRole.Server)
70
+ secretKey = GNNetwork.getGNServerSettings().getServerSecretKey();
71
+ else if (role == RequestRole.Client)
72
+ secretKey = GNNetwork.getGNServerSettings().getClientSecretKey();
73
+ }
74
+ this.httpPeer.enqueue(requestType, role, request, onResponse, authToken, secretKey, customTags, this.gameId);
75
+ }
76
+ sendRequestAuthSocket() {
77
+ this.socketPeer.sendRequestAuthSocket();
78
+ }
79
+ connectSocket(_onSocketConnect) {
80
+ this.socketPeer.connect(_onSocketConnect);
81
+ }
82
+ disconnectSocket(_onSocketDisconnect) {
83
+ this.socketPeer.disconnect(_onSocketDisconnect);
84
+ }
85
+ setOnEventHandler(_onEventHandler) {
86
+ this.socketPeer.setOnEventHandler(_onEventHandler);
87
+ }
88
+ setOnConnectHandler(_onConnectHandler) {
89
+ this.socketPeer.setOnConnectHandler(_onConnectHandler);
90
+ }
91
+ setOnDisconnectHandler(_onDisconnectHandler) {
92
+ this.socketPeer.setOnDisconnectHandler(_onDisconnectHandler);
93
+ }
94
+ removeOnConnectHandler(_onConnectHandler) {
95
+ this.socketPeer.removeOnConnectHandler(_onConnectHandler);
96
+ }
97
+ removeOnDisconnectHandler(_onDisconnectHandler) {
98
+ this.socketPeer.removeOnDisconnectHandler(_onDisconnectHandler);
99
+ }
100
+ subscriberServerEventHandler(serverEventHandler) {
101
+ this.socketPeer.subscriberAServerEventHandler(serverEventHandler);
102
+ }
103
+ syncTs(onResponse = null) {
104
+ let thiz = this;
105
+ this.httpPeer.getRequest(NetworkingPeer.SYNC_TS, (httpAppResponse) => {
106
+ if (!httpAppResponse.hasError()) {
107
+ if (httpAppResponse.statusCode == 200) {
108
+ let returnDatas = JSON.parse(httpAppResponse.text);
109
+ let gnHashtable = GNHashtable.builder()
110
+ .addAll(returnDatas)
111
+ .build();
112
+ let newServerTimestamp = gnHashtable.getNumber(ParameterCode.Ts, new Date().getUTCMilliseconds());
113
+ thiz.setServerTimeMilliseconds(newServerTimestamp);
114
+ }
115
+ }
116
+ if (onResponse != null)
117
+ onResponse(thiz.getServerTimestamp());
118
+ });
119
+ }
120
+ getAuthInfo(authToken, onResponse) {
121
+ this.httpPeer.getRequest(NetworkingPeer.GET_AUTH_INFO + "?authToken=" + authToken, (httpAppResponse) => {
122
+ if (!httpAppResponse.hasError()) {
123
+ if (httpAppResponse.statusCode == 200) {
124
+ let returnDatas = JSON.parse(httpAppResponse.text);
125
+ if (returnDatas.error) {
126
+ if (onResponse != null)
127
+ onResponse({
128
+ error: returnDatas.error,
129
+ });
130
+ }
131
+ else {
132
+ if (onResponse != null) {
133
+ let response = {
134
+ error: null,
135
+ data: returnDatas.data,
136
+ };
137
+ response.data.otherDatas = GNHashtable.builder()
138
+ .addAll(returnDatas.data.otherDatas)
139
+ .build();
140
+ onResponse(response);
141
+ }
142
+ }
143
+ return;
144
+ }
145
+ }
146
+ if (onResponse != null)
147
+ onResponse({
148
+ error: httpAppResponse.error,
149
+ });
150
+ });
151
+ }
152
+ healthCheck(onResponse) {
153
+ this.httpPeer.getRequest(NetworkingPeer.HEALTH_CHECK, (httpAppResponse) => {
154
+ if (!httpAppResponse.hasError()) {
155
+ if (httpAppResponse.statusCode == 200) {
156
+ let returnDatas = JSON.parse(httpAppResponse.text);
157
+ if (returnDatas.error) {
158
+ if (onResponse != null)
159
+ onResponse({
160
+ error: returnDatas.error,
161
+ });
162
+ }
163
+ else {
164
+ if (onResponse != null) {
165
+ let response = {
166
+ error: null,
167
+ data: returnDatas.data,
168
+ };
169
+ onResponse(response);
170
+ }
171
+ }
172
+ return;
173
+ }
174
+ }
175
+ if (onResponse != null)
176
+ onResponse({
177
+ error: httpAppResponse.error,
178
+ });
179
+ });
180
+ }
181
+ uploadFile(fileId, content, filename, mimetype, onResponse) {
182
+ this.httpPeer.uploadFile(fileId, content, filename, mimetype, (httpAppResponse) => {
183
+ var _a;
184
+ if (!httpAppResponse.hasError()) {
185
+ if (httpAppResponse.statusCode == 200) {
186
+ if (onResponse != null) {
187
+ let response = {
188
+ error: null,
189
+ };
190
+ onResponse(response);
191
+ }
192
+ return;
193
+ }
194
+ }
195
+ if (onResponse != null)
196
+ onResponse({
197
+ error: (_a = httpAppResponse.error) !== null && _a !== void 0 ? _a : "Unknown Error",
198
+ });
199
+ });
200
+ }
201
+ }
202
+ NetworkingPeer.SYNC_TS = "ts";
203
+ NetworkingPeer.GET_AUTH_INFO = "getAuthInfo";
204
+ NetworkingPeer.HEALTH_CHECK = "healthcheck";
205
+ NetworkingPeer.UPLOAD_FILE = "upload";
206
+ NetworkingPeer.DOWNLOAD_FILE = "download";
207
+ NetworkingPeer.API_JSON = "api/" + Commands.RequestCmd_Json;
208
+ NetworkingPeer.API_MSG_PACK = "api/" + Commands.RequestCmd_MsgPack;