@xmobitea/gn-typescript-client 2.6.13-tsc → 2.6.14

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 (400) hide show
  1. package/AGENTS.md +37 -0
  2. package/README.MD +420 -1
  3. package/dist/gearn.js.client.js +71354 -0
  4. package/dist/gearn.js.client.min.js +2 -0
  5. package/dist/gearn.js.client.min.js.LICENSE.txt +14 -0
  6. package/dist/index.d.ts +30 -0
  7. package/dist/index.js +58386 -339
  8. package/dist/runtime/GNNetwork.d.ts +687 -3
  9. package/dist/runtime/GNNetworkAuthenticateApi.d.ts +327 -0
  10. package/dist/runtime/GNNetworkCharacterPlayerApi.d.ts +1026 -0
  11. package/dist/runtime/GNNetworkCloudScriptApi.d.ts +141 -0
  12. package/dist/runtime/GNNetworkContentApi.d.ts +243 -0
  13. package/dist/runtime/GNNetworkDashboardApi.d.ts +221 -0
  14. package/dist/runtime/GNNetworkGamePlayerApi.d.ts +1033 -0
  15. package/dist/runtime/GNNetworkGroupApi.d.ts +783 -0
  16. package/dist/runtime/GNNetworkInventoryApi.d.ts +673 -0
  17. package/dist/runtime/GNNetworkMasterPlayerApi.d.ts +1614 -6
  18. package/dist/runtime/GNNetworkMultiplayerApi.d.ts +234 -0
  19. package/dist/runtime/GNNetworkStoreInventoryApi.d.ts +309 -0
  20. package/dist/runtime/common/Action0.d.ts +30 -0
  21. package/dist/runtime/common/Action1.d.ts +32 -0
  22. package/dist/runtime/common/Action2.d.ts +21 -0
  23. package/dist/runtime/common/Action3.d.ts +16 -0
  24. package/dist/runtime/common/Action4.d.ts +17 -0
  25. package/dist/runtime/common/GNData.d.ts +368 -0
  26. package/dist/runtime/config/GNServerSettings.d.ts +442 -12
  27. package/dist/runtime/constant/Commands.d.ts +80 -0
  28. package/dist/runtime/constant/EventCode.d.ts +48 -0
  29. package/dist/runtime/constant/OperationCode.d.ts +74 -1
  30. package/dist/runtime/constant/ReturnCode.d.ts +72 -0
  31. package/dist/runtime/constant/enumType/ExecuteResponseStatus.d.ts +31 -0
  32. package/dist/runtime/constant/enumType/FriendStatus.d.ts +39 -0
  33. package/dist/runtime/constant/enumType/GoogleLoginType.d.ts +23 -0
  34. package/dist/runtime/constant/enumType/GroupStatus.d.ts +32 -0
  35. package/dist/runtime/constant/enumType/InvalidMemberType.d.ts +75 -0
  36. package/dist/runtime/constant/enumType/ItemType.d.ts +23 -0
  37. package/dist/runtime/constant/enumType/MatchStatus.d.ts +30 -0
  38. package/dist/runtime/constant/enumType/MatchmakingMemberStatus.d.ts +24 -0
  39. package/dist/runtime/constant/enumType/MatchmakingTicketStatus.d.ts +34 -0
  40. package/dist/runtime/constant/enumType/OwnerType.d.ts +40 -0
  41. package/dist/runtime/constant/enumType/PermissionDataItem.d.ts +22 -0
  42. package/dist/runtime/constant/enumType/PushPlatformType.d.ts +18 -0
  43. package/dist/runtime/constant/enumType/RequestRole.d.ts +32 -0
  44. package/dist/runtime/constant/enumType/RequestType.d.ts +70 -0
  45. package/dist/runtime/constant/enumType/StoreItemType.d.ts +21 -0
  46. package/dist/runtime/constant/enumType/StoreReceiveType.d.ts +30 -0
  47. package/dist/runtime/constant/errorCode/ErrorCode.d.ts +190 -8
  48. package/dist/runtime/constant/parameterCode/ParameterCode.d.ts +35 -5
  49. package/dist/runtime/entity/DataMember.d.ts +338 -0
  50. package/dist/runtime/entity/GNMetadata.d.ts +101 -0
  51. package/dist/runtime/entity/InvalidMember.d.ts +28 -0
  52. package/dist/runtime/entity/OperationEvent.d.ts +49 -0
  53. package/dist/runtime/entity/OperationRequest.d.ts +108 -0
  54. package/dist/runtime/entity/OperationResponse.d.ts +110 -0
  55. package/dist/runtime/entity/models/AuthenticateModels.d.ts +115 -0
  56. package/dist/runtime/entity/models/AuthenticateRequestModels.d.ts +131 -0
  57. package/dist/runtime/entity/models/AuthenticateResponseModels.d.ts +131 -0
  58. package/dist/runtime/entity/models/CharacterPlayerModels.d.ts +625 -1
  59. package/dist/runtime/entity/models/CharacterPlayerRequestModels.d.ts +972 -0
  60. package/dist/runtime/entity/models/CharacterPlayerResponseModels.d.ts +332 -0
  61. package/dist/runtime/entity/models/CloudScriptModels.d.ts +109 -0
  62. package/dist/runtime/entity/models/CloudScriptRequestModels.d.ts +107 -0
  63. package/dist/runtime/entity/models/CloudScriptResponseModels.d.ts +46 -0
  64. package/dist/runtime/entity/models/ContentModels.d.ts +124 -0
  65. package/dist/runtime/entity/models/ContentRequestModels.d.ts +152 -0
  66. package/dist/runtime/entity/models/ContentResponseModels.d.ts +58 -0
  67. package/dist/runtime/entity/models/DashboardModels.d.ts +371 -8
  68. package/dist/runtime/entity/models/DashboardRequestModels.d.ts +172 -0
  69. package/dist/runtime/entity/models/DashboardResponseModels.d.ts +170 -0
  70. package/dist/runtime/entity/models/GamePlayerModels.d.ts +644 -1
  71. package/dist/runtime/entity/models/GamePlayerRequestModels.d.ts +959 -0
  72. package/dist/runtime/entity/models/GamePlayerResponseModels.d.ts +333 -1
  73. package/dist/runtime/entity/models/GenericModels.d.ts +94 -0
  74. package/dist/runtime/entity/models/GroupModels.d.ts +484 -2
  75. package/dist/runtime/entity/models/GroupRequestModels.d.ts +737 -0
  76. package/dist/runtime/entity/models/GroupResponseModels.d.ts +254 -0
  77. package/dist/runtime/entity/models/InventoryModels.d.ts +415 -0
  78. package/dist/runtime/entity/models/InventoryRequestModels.d.ts +629 -0
  79. package/dist/runtime/entity/models/InventoryResponseModels.d.ts +218 -0
  80. package/dist/runtime/entity/models/MasterPlayerModels.d.ts +1065 -3
  81. package/dist/runtime/entity/models/MasterPlayerRequestModels.d.ts +1560 -6
  82. package/dist/runtime/entity/models/MasterPlayerResponseModels.d.ts +532 -1
  83. package/dist/runtime/entity/models/MultiplayerModels.d.ts +199 -0
  84. package/dist/runtime/entity/models/MultiplayerRequestModels.d.ts +196 -0
  85. package/dist/runtime/entity/models/MultiplayerResponseModels.d.ts +74 -0
  86. package/dist/runtime/entity/models/StoreInventoryModels.d.ts +262 -0
  87. package/dist/runtime/entity/models/StoreInventoryRequestModels.d.ts +268 -0
  88. package/dist/runtime/entity/models/StoreInventoryResponseModels.d.ts +98 -0
  89. package/dist/runtime/entity/request/CustomOperationRequest.d.ts +99 -0
  90. package/dist/runtime/entity/response/CustomOperationResponse.d.ts +118 -0
  91. package/dist/runtime/entity/response/GetAuthInfoResponse.d.ts +53 -0
  92. package/dist/runtime/entity/response/HealthCheckResponse.d.ts +56 -0
  93. package/dist/runtime/entity/response/UploadFileResponse.d.ts +19 -0
  94. package/dist/runtime/helper/CodeHelper.d.ts +122 -0
  95. package/dist/runtime/helper/ConverterService.d.ts +74 -0
  96. package/dist/runtime/helper/EnumUtility.d.ts +63 -0
  97. package/dist/runtime/helper/GNSupport.d.ts +64 -4
  98. package/dist/runtime/helper/GNUtils.d.ts +54 -0
  99. package/dist/runtime/helper/MessagePackConverterService.d.ts +48 -0
  100. package/dist/runtime/helper/OperationHelper.d.ts +51 -0
  101. package/dist/runtime/helper/StorageService.d.ts +48 -8
  102. package/dist/runtime/logger/GNDebug.d.ts +117 -0
  103. package/dist/runtime/networking/AuthenticateStatus.d.ts +64 -0
  104. package/dist/runtime/networking/IPeer.d.ts +83 -0
  105. package/dist/runtime/networking/NetworkingPeer.d.ts +256 -1
  106. package/dist/runtime/networking/OperationPending.d.ts +112 -0
  107. package/dist/runtime/networking/PeerBase.d.ts +231 -0
  108. package/dist/runtime/networking/handler/IServerEventHandler.d.ts +84 -0
  109. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.d.ts +69 -0
  110. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.d.ts +49 -0
  111. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.d.ts +50 -0
  112. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.d.ts +41 -0
  113. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.d.ts +47 -0
  114. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.d.ts +46 -0
  115. package/dist/runtime/networking/http/HttpPeer.d.ts +173 -0
  116. package/dist/runtime/networking/http/NetworkingHttpPeerBase.d.ts +87 -0
  117. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.d.ts +113 -0
  118. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.d.ts +145 -0
  119. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.d.ts +198 -0
  120. package/dist/runtime/networking/socket/SocketPeer.d.ts +155 -0
  121. package/dist/runtime/typescript/ServiceUpdate.d.ts +46 -0
  122. package/docs/AI_CHEATSHEET.md +211 -0
  123. package/docs/COOKBOOK.md +912 -0
  124. package/docs/RULES.md +307 -0
  125. package/docs/ai-manifest.json +725 -0
  126. package/docs/guides/AUTHENTICATE.md +246 -0
  127. package/docs/guides/CHARACTER_PLAYER.md +439 -0
  128. package/docs/guides/CLOUDSCRIPT.md +335 -0
  129. package/docs/guides/COCOS_CREATOR_INTEGRATION.md +150 -0
  130. package/docs/guides/CONTENT.md +291 -0
  131. package/docs/guides/DASHBOARD.md +262 -0
  132. package/docs/guides/GAME_PLAYER.md +473 -0
  133. package/docs/guides/GROUP.md +412 -0
  134. package/docs/guides/INVENTORY.md +375 -0
  135. package/docs/guides/MASTER_PLAYER.md +458 -0
  136. package/docs/guides/MULTIPLAYER.md +303 -0
  137. package/docs/guides/STORE_INVENTORY.md +313 -0
  138. package/docs/llms-full.txt +43 -0
  139. package/docs/reference/API_AUTHENTICATE.md +75 -0
  140. package/docs/reference/API_CHARACTER_PLAYER.md +226 -0
  141. package/docs/reference/API_CLOUDSCRIPT.md +82 -0
  142. package/docs/reference/API_CONTENT.md +88 -0
  143. package/docs/reference/API_DASHBOARD.md +82 -0
  144. package/docs/reference/API_GAME_PLAYER.md +223 -0
  145. package/docs/reference/API_GROUP.md +187 -0
  146. package/docs/reference/API_INDEX.md +57 -0
  147. package/docs/reference/API_INVENTORY.md +169 -0
  148. package/docs/reference/API_MASTER_PLAYER.md +323 -0
  149. package/docs/reference/API_MULTIPLAYER.md +97 -0
  150. package/docs/reference/API_STORE_INVENTORY.md +109 -0
  151. package/docs/reference/CONFIG.md +107 -0
  152. package/docs/reference/DTO_INDEX.md +2543 -0
  153. package/docs/reference/ENUMS.md +433 -0
  154. package/docs/reference/ERROR_HANDLING.md +159 -0
  155. package/docs/reference/EVENTS.md +188 -0
  156. package/docs/reference/PERMISSION_RULES.md +55 -0
  157. package/docs/reference/dto/AUTHENTICATE.md +619 -0
  158. package/docs/reference/dto/CHARACTER_PLAYER.md +3686 -0
  159. package/docs/reference/dto/CLOUDSCRIPT.md +400 -0
  160. package/docs/reference/dto/CONTENT.md +548 -0
  161. package/docs/reference/dto/DASHBOARD.md +1980 -0
  162. package/docs/reference/dto/GAME_PLAYER.md +3631 -0
  163. package/docs/reference/dto/GENERIC.md +151 -0
  164. package/docs/reference/dto/GROUP.md +2842 -0
  165. package/docs/reference/dto/INVENTORY.md +2385 -0
  166. package/docs/reference/dto/MASTER_PLAYER.md +6024 -0
  167. package/docs/reference/dto/MULTIPLAYER.md +850 -0
  168. package/docs/reference/dto/STORE_INVENTORY.md +1262 -0
  169. package/llms.txt +47 -0
  170. package/package.json +11 -2
  171. package/GNServerSettings.debug.json +0 -21
  172. package/dist/runtime/GNNetwork.js +0 -273
  173. package/dist/runtime/GNNetworkAuthenticateApi.js +0 -122
  174. package/dist/runtime/GNNetworkCharacterPlayerApi.js +0 -968
  175. package/dist/runtime/GNNetworkCloudScriptApi.js +0 -104
  176. package/dist/runtime/GNNetworkContentApi.js +0 -140
  177. package/dist/runtime/GNNetworkDashboardApi.js +0 -170
  178. package/dist/runtime/GNNetworkGamePlayerApi.js +0 -950
  179. package/dist/runtime/GNNetworkGroupApi.js +0 -734
  180. package/dist/runtime/GNNetworkInventoryApi.js +0 -626
  181. package/dist/runtime/GNNetworkMasterPlayerApi.js +0 -1550
  182. package/dist/runtime/GNNetworkMultiplayerApi.js +0 -194
  183. package/dist/runtime/GNNetworkStoreInventoryApi.js +0 -266
  184. package/dist/runtime/common/Action0.js +0 -1
  185. package/dist/runtime/common/Action1.js +0 -1
  186. package/dist/runtime/common/Action2.js +0 -1
  187. package/dist/runtime/common/Action3.js +0 -1
  188. package/dist/runtime/common/Action4.js +0 -1
  189. package/dist/runtime/common/GNData.js +0 -209
  190. package/dist/runtime/config/GNServerSettings.js +0 -156
  191. package/dist/runtime/constant/Commands.js +0 -20
  192. package/dist/runtime/constant/EventCode.js +0 -8
  193. package/dist/runtime/constant/OperationCode.js +0 -221
  194. package/dist/runtime/constant/ReturnCode.js +0 -14
  195. package/dist/runtime/constant/enumType/ExecuteResponseStatus.js +0 -8
  196. package/dist/runtime/constant/enumType/FriendStatus.js +0 -7
  197. package/dist/runtime/constant/enumType/GoogleLoginType.js +0 -5
  198. package/dist/runtime/constant/enumType/GroupStatus.js +0 -7
  199. package/dist/runtime/constant/enumType/InvalidMemberType.js +0 -18
  200. package/dist/runtime/constant/enumType/ItemType.js +0 -5
  201. package/dist/runtime/constant/enumType/MatchmakingMemberStatus.js +0 -6
  202. package/dist/runtime/constant/enumType/MatchmakingTicketStatus.js +0 -8
  203. package/dist/runtime/constant/enumType/OwnerType.js +0 -9
  204. package/dist/runtime/constant/enumType/PermissionDataItem.js +0 -5
  205. package/dist/runtime/constant/enumType/PushPlatformType.js +0 -5
  206. package/dist/runtime/constant/enumType/RequestRole.js +0 -6
  207. package/dist/runtime/constant/enumType/RequestType.js +0 -15
  208. package/dist/runtime/constant/enumType/StoreItemType.js +0 -5
  209. package/dist/runtime/constant/enumType/StoreReceiveType.js +0 -8
  210. package/dist/runtime/constant/errorCode/ErrorCode.js +0 -52
  211. package/dist/runtime/constant/parameterCode/ParameterCode.js +0 -617
  212. package/dist/runtime/entity/DataMember.js +0 -208
  213. package/dist/runtime/entity/GNMetadata.js +0 -11
  214. package/dist/runtime/entity/InvalidMember.js +0 -1
  215. package/dist/runtime/entity/OperationEvent.js +0 -24
  216. package/dist/runtime/entity/OperationRequest.js +0 -42
  217. package/dist/runtime/entity/OperationResponse.js +0 -73
  218. package/dist/runtime/entity/models/AuthenticateModels.js +0 -426
  219. package/dist/runtime/entity/models/AuthenticateRequestModels.js +0 -188
  220. package/dist/runtime/entity/models/AuthenticateResponseModels.js +0 -131
  221. package/dist/runtime/entity/models/CharacterPlayerModels.js +0 -1433
  222. package/dist/runtime/entity/models/CharacterPlayerRequestModels.js +0 -1386
  223. package/dist/runtime/entity/models/CharacterPlayerResponseModels.js +0 -376
  224. package/dist/runtime/entity/models/CloudScriptModels.js +0 -197
  225. package/dist/runtime/entity/models/CloudScriptRequestModels.js +0 -138
  226. package/dist/runtime/entity/models/CloudScriptResponseModels.js +0 -40
  227. package/dist/runtime/entity/models/ContentModels.js +0 -203
  228. package/dist/runtime/entity/models/ContentRequestModels.js +0 -190
  229. package/dist/runtime/entity/models/ContentResponseModels.js +0 -54
  230. package/dist/runtime/entity/models/DashboardModels.js +0 -3002
  231. package/dist/runtime/entity/models/DashboardRequestModels.js +0 -268
  232. package/dist/runtime/entity/models/DashboardResponseModels.js +0 -187
  233. package/dist/runtime/entity/models/GamePlayerModels.js +0 -1591
  234. package/dist/runtime/entity/models/GamePlayerRequestModels.js +0 -1360
  235. package/dist/runtime/entity/models/GamePlayerResponseModels.js +0 -369
  236. package/dist/runtime/entity/models/GenericModels.js +0 -177
  237. package/dist/runtime/entity/models/GroupModels.js +0 -1135
  238. package/dist/runtime/entity/models/GroupRequestModels.js +0 -1048
  239. package/dist/runtime/entity/models/GroupResponseModels.js +0 -285
  240. package/dist/runtime/entity/models/InventoryModels.js +0 -915
  241. package/dist/runtime/entity/models/InventoryRequestModels.js +0 -892
  242. package/dist/runtime/entity/models/InventoryResponseModels.js +0 -243
  243. package/dist/runtime/entity/models/MasterPlayerModels.js +0 -2573
  244. package/dist/runtime/entity/models/MasterPlayerRequestModels.js +0 -2228
  245. package/dist/runtime/entity/models/MasterPlayerResponseModels.js +0 -607
  246. package/dist/runtime/entity/models/MultiplayerModels.js +0 -404
  247. package/dist/runtime/entity/models/MultiplayerRequestModels.js +0 -268
  248. package/dist/runtime/entity/models/MultiplayerResponseModels.js +0 -75
  249. package/dist/runtime/entity/models/StoreInventoryModels.js +0 -797
  250. package/dist/runtime/entity/models/StoreInventoryRequestModels.js +0 -372
  251. package/dist/runtime/entity/models/StoreInventoryResponseModels.js +0 -103
  252. package/dist/runtime/entity/request/CustomOperationRequest.js +0 -24
  253. package/dist/runtime/entity/response/CustomOperationResponse.js +0 -29
  254. package/dist/runtime/entity/response/GetAuthInfoResponse.js +0 -2
  255. package/dist/runtime/entity/response/HealthCheckResponse.js +0 -2
  256. package/dist/runtime/entity/response/UploadFileResponse.js +0 -2
  257. package/dist/runtime/helper/CodeHelper.js +0 -63
  258. package/dist/runtime/helper/ConverterService.js +0 -275
  259. package/dist/runtime/helper/EnumUtility.js +0 -33
  260. package/dist/runtime/helper/GNSupport.js +0 -47
  261. package/dist/runtime/helper/GNUtils.js +0 -72
  262. package/dist/runtime/helper/MessagePackConverterService.js +0 -9
  263. package/dist/runtime/helper/OperationHelper.js +0 -24
  264. package/dist/runtime/helper/StorageService.js +0 -62
  265. package/dist/runtime/logger/GNDebug.js +0 -29
  266. package/dist/runtime/networking/AuthenticateStatus.js +0 -14
  267. package/dist/runtime/networking/IPeer.js +0 -1
  268. package/dist/runtime/networking/NetworkingPeer.js +0 -210
  269. package/dist/runtime/networking/OperationPending.js +0 -53
  270. package/dist/runtime/networking/PeerBase.js +0 -161
  271. package/dist/runtime/networking/handler/IServerEventHandler.js +0 -13
  272. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.js +0 -39
  273. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.js +0 -39
  274. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.js +0 -39
  275. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.js +0 -39
  276. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.js +0 -35
  277. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.js +0 -43
  278. package/dist/runtime/networking/http/HttpPeer.js +0 -123
  279. package/dist/runtime/networking/http/NetworkingHttpPeerBase.js +0 -9
  280. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.js +0 -179
  281. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.js +0 -130
  282. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.js +0 -165
  283. package/dist/runtime/networking/socket/SocketPeer.js +0 -115
  284. package/dist/runtime/typescript/ServiceUpdate.js +0 -22
  285. package/docs/COCOS_CREATOR_INTEGRATION.md +0 -116
  286. package/examples/cocos-creator/GearNExample.ts.txt +0 -176
  287. package/srcSwift/Package.swift +0 -32
  288. package/srcSwift/Sources/GearN/runtime/GNNetwork.swift +0 -530
  289. package/srcSwift/Sources/GearN/runtime/GNNetworkAuthenticateApi.swift +0 -178
  290. package/srcSwift/Sources/GearN/runtime/GNNetworkCharacterPlayerApi.swift +0 -1162
  291. package/srcSwift/Sources/GearN/runtime/GNNetworkCloudScriptApi.swift +0 -154
  292. package/srcSwift/Sources/GearN/runtime/GNNetworkContentApi.swift +0 -208
  293. package/srcSwift/Sources/GearN/runtime/GNNetworkDashboardApi.swift +0 -240
  294. package/srcSwift/Sources/GearN/runtime/GNNetworkGamePlayerApi.swift +0 -1369
  295. package/srcSwift/Sources/GearN/runtime/GNNetworkGroupApi.swift +0 -1100
  296. package/srcSwift/Sources/GearN/runtime/GNNetworkInventoryApi.swift +0 -937
  297. package/srcSwift/Sources/GearN/runtime/GNNetworkMasterPlayerApi.swift +0 -2323
  298. package/srcSwift/Sources/GearN/runtime/GNNetworkMultiplayerApi.swift +0 -298
  299. package/srcSwift/Sources/GearN/runtime/GNNetworkStoreInventoryApi.swift +0 -397
  300. package/srcSwift/Sources/GearN/runtime/common/Action0.swift +0 -3
  301. package/srcSwift/Sources/GearN/runtime/common/Action1.swift +0 -3
  302. package/srcSwift/Sources/GearN/runtime/common/Action2.swift +0 -3
  303. package/srcSwift/Sources/GearN/runtime/common/Action3.swift +0 -3
  304. package/srcSwift/Sources/GearN/runtime/common/Action4.swift +0 -3
  305. package/srcSwift/Sources/GearN/runtime/common/GNArray.swift +0 -204
  306. package/srcSwift/Sources/GearN/runtime/common/GNData.swift +0 -108
  307. package/srcSwift/Sources/GearN/runtime/common/GNHashtable.swift +0 -200
  308. package/srcSwift/Sources/GearN/runtime/config/GNServerSettings.swift +0 -95
  309. package/srcSwift/Sources/GearN/runtime/constant/Commands.swift +0 -28
  310. package/srcSwift/Sources/GearN/runtime/constant/EventCode.swift +0 -10
  311. package/srcSwift/Sources/GearN/runtime/constant/OperationCode.swift +0 -252
  312. package/srcSwift/Sources/GearN/runtime/constant/ReturnCode.swift +0 -19
  313. package/srcSwift/Sources/GearN/runtime/constant/enumType/ExecuteResponseStatus.swift +0 -9
  314. package/srcSwift/Sources/GearN/runtime/constant/enumType/FriendStatus.swift +0 -8
  315. package/srcSwift/Sources/GearN/runtime/constant/enumType/GoogleLoginType.swift +0 -6
  316. package/srcSwift/Sources/GearN/runtime/constant/enumType/GroupStatus.swift +0 -8
  317. package/srcSwift/Sources/GearN/runtime/constant/enumType/InvalidMemberType.swift +0 -19
  318. package/srcSwift/Sources/GearN/runtime/constant/enumType/ItemType.swift +0 -6
  319. package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingMemberStatus.swift +0 -7
  320. package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingTicketStatus.swift +0 -9
  321. package/srcSwift/Sources/GearN/runtime/constant/enumType/OwnerType.swift +0 -10
  322. package/srcSwift/Sources/GearN/runtime/constant/enumType/PermissionDataItem.swift +0 -6
  323. package/srcSwift/Sources/GearN/runtime/constant/enumType/PushPlatformType.swift +0 -6
  324. package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestRole.swift +0 -7
  325. package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestType.swift +0 -16
  326. package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreItemType.swift +0 -6
  327. package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreReceiveType.swift +0 -9
  328. package/srcSwift/Sources/GearN/runtime/constant/errorCode/ErrorCode.swift +0 -58
  329. package/srcSwift/Sources/GearN/runtime/constant/parameterCode/ParameterCode.swift +0 -672
  330. package/srcSwift/Sources/GearN/runtime/entity/DataMember.swift +0 -196
  331. package/srcSwift/Sources/GearN/runtime/entity/GNMetadata.swift +0 -9
  332. package/srcSwift/Sources/GearN/runtime/entity/InvalidMember.swift +0 -11
  333. package/srcSwift/Sources/GearN/runtime/entity/OperationEvent.swift +0 -38
  334. package/srcSwift/Sources/GearN/runtime/entity/OperationHelper.swift +0 -28
  335. package/srcSwift/Sources/GearN/runtime/entity/OperationRequest.swift +0 -62
  336. package/srcSwift/Sources/GearN/runtime/entity/OperationResponse.swift +0 -98
  337. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateModels.swift +0 -351
  338. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateRequestModels.swift +0 -81
  339. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateResponseModels.swift +0 -108
  340. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerModels.swift +0 -1045
  341. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerRequestModels.swift +0 -821
  342. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerResponseModels.swift +0 -588
  343. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptModels.swift +0 -187
  344. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptRequestModels.swift +0 -84
  345. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptResponseModels.swift +0 -59
  346. package/srcSwift/Sources/GearN/runtime/entity/models/ContentModels.swift +0 -195
  347. package/srcSwift/Sources/GearN/runtime/entity/models/ContentRequestModels.swift +0 -116
  348. package/srcSwift/Sources/GearN/runtime/entity/models/ContentResponseModels.swift +0 -81
  349. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardModels.swift +0 -426
  350. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardRequestModels.swift +0 -160
  351. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardResponseModels.swift +0 -82
  352. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerModels.swift +0 -1334
  353. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerRequestModels.swift +0 -643
  354. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerResponseModels.swift +0 -213
  355. package/srcSwift/Sources/GearN/runtime/entity/models/GenericModels.swift +0 -171
  356. package/srcSwift/Sources/GearN/runtime/entity/models/GroupModels.swift +0 -850
  357. package/srcSwift/Sources/GearN/runtime/entity/models/GroupRequestModels.swift +0 -485
  358. package/srcSwift/Sources/GearN/runtime/entity/models/GroupResponseModels.swift +0 -165
  359. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryModels.swift +0 -679
  360. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryRequestModels.swift +0 -413
  361. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryResponseModels.swift +0 -141
  362. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerModels.swift +0 -378
  363. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerRequestModels.swift +0 -147
  364. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerResponseModels.swift +0 -318
  365. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerModels.swift +0 -319
  366. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerRequestModels.swift +0 -125
  367. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerResponseModels.swift +0 -45
  368. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryModels.swift +0 -633
  369. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryRequestModels.swift +0 -173
  370. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryResponseModels.swift +0 -61
  371. package/srcSwift/Sources/GearN/runtime/entity/request/CustomOperationRequest.swift +0 -42
  372. package/srcSwift/Sources/GearN/runtime/entity/response/CustomOperationResponse.swift +0 -49
  373. package/srcSwift/Sources/GearN/runtime/entity/response/GetAuthInfoResponse.swift +0 -43
  374. package/srcSwift/Sources/GearN/runtime/entity/response/HealthCheckResponse.swift +0 -86
  375. package/srcSwift/Sources/GearN/runtime/entity/response/UploadFileResponse.swift +0 -15
  376. package/srcSwift/Sources/GearN/runtime/helper/CodeHelper.swift +0 -107
  377. package/srcSwift/Sources/GearN/runtime/helper/ConverterService.swift +0 -98
  378. package/srcSwift/Sources/GearN/runtime/helper/EnumUtility.swift +0 -34
  379. package/srcSwift/Sources/GearN/runtime/helper/GNSupport.swift +0 -41
  380. package/srcSwift/Sources/GearN/runtime/helper/GNUtils.swift +0 -66
  381. package/srcSwift/Sources/GearN/runtime/helper/MessagePackConverterService.swift +0 -21
  382. package/srcSwift/Sources/GearN/runtime/helper/StorageService.swift +0 -29
  383. package/srcSwift/Sources/GearN/runtime/logger/GNDebug.swift +0 -33
  384. package/srcSwift/Sources/GearN/runtime/networking/AuthenticateStatus.swift +0 -24
  385. package/srcSwift/Sources/GearN/runtime/networking/IPeer.swift +0 -8
  386. package/srcSwift/Sources/GearN/runtime/networking/NetworkingPeer.swift +0 -368
  387. package/srcSwift/Sources/GearN/runtime/networking/OperationPending.swift +0 -81
  388. package/srcSwift/Sources/GearN/runtime/networking/PeerBase.swift +0 -228
  389. package/srcSwift/Sources/GearN/runtime/networking/handler/IServerEventHandler.swift +0 -20
  390. package/srcSwift/Sources/GearN/runtime/networking/http/HttpPeer.swift +0 -226
  391. package/srcSwift/Sources/GearN/runtime/networking/http/HttpTypes.swift +0 -24
  392. package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingHttpPeerBase.swift +0 -13
  393. package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingPeerUrlSession.swift +0 -125
  394. package/srcSwift/Sources/GearN/runtime/networking/request/NetRequest.swift +0 -19
  395. package/srcSwift/Sources/GearN/runtime/networking/response/NetResponse.swift +0 -13
  396. package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingPeerSocketIOClient.swift +0 -244
  397. package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingSocketPeerBase.swift +0 -59
  398. package/srcSwift/Sources/GearN/runtime/networking/socket/SocketPeer.swift +0 -136
  399. package/tsconfig-build.cocos.json +0 -31
  400. package/webpack.config.cocos.mjs +0 -78
@@ -0,0 +1,725 @@
1
+ {
2
+ "schemaVersion": 3,
3
+ "package": {
4
+ "name": "@xmobitea/gn-typescript-client",
5
+ "entryPoint": "GNNetwork",
6
+ "installCommand": "npm install @xmobitea/gn-typescript-client",
7
+ "typesEntry": "dist/index.d.ts",
8
+ "runtimeEntry": "dist/index.js"
9
+ },
10
+ "docs": {
11
+ "readingOrderForAi": [
12
+ "docs/AI_CHEATSHEET.md",
13
+ "docs/RULES.md",
14
+ "docs/ai-manifest.json",
15
+ "docs/reference/API_INDEX.md",
16
+ "docs/reference/ERROR_HANDLING.md",
17
+ "docs/reference/CONFIG.md",
18
+ "docs/reference/EVENTS.md",
19
+ "docs/reference/ENUMS.md",
20
+ "docs/COOKBOOK.md"
21
+ ],
22
+ "entryPoints": {
23
+ "cheatsheet": "docs/AI_CHEATSHEET.md",
24
+ "rules": "docs/RULES.md",
25
+ "agentGuide": "AGENTS.md",
26
+ "llmstxtIndex": "llms.txt",
27
+ "fullBundle": "docs/llms-full.txt"
28
+ },
29
+ "reference": {
30
+ "apiIndex": "docs/reference/API_INDEX.md",
31
+ "dtoIndex": "docs/reference/DTO_INDEX.md",
32
+ "dtoDirectory": "docs/reference/dto",
33
+ "enums": "docs/reference/ENUMS.md",
34
+ "config": "docs/reference/CONFIG.md",
35
+ "events": "docs/reference/EVENTS.md",
36
+ "errorHandling": "docs/reference/ERROR_HANDLING.md",
37
+ "permissionRules": "docs/reference/PERMISSION_RULES.md"
38
+ },
39
+ "cookbook": "docs/COOKBOOK.md",
40
+ "guidesDirectory": "docs/guides",
41
+ "guidanceForAiConsumer": [
42
+ "đọc docs/AI_CHEATSHEET.md trước (one-page) để biết file nào cần mở tiếp",
43
+ "đọc docs/RULES.md cho rule cross-cutting (route, permission, self/other-self, socket, error)",
44
+ "tra method signature qua docs/reference/API_<GROUP>.md",
45
+ "tra DTO field qua docs/reference/dto/<DOMAIN>.md hoặc grep DTO_INDEX.md (2506 rows, đừng load full)",
46
+ "tra enum value numeric qua docs/reference/ENUMS.md",
47
+ "scenario end-to-end xem docs/COOKBOOK.md (16 scenarios)",
48
+ "chỉ fall back đọc dist/*.d.ts khi câu hỏi nằm ngoài scope docs",
49
+ "docs/llms-full.txt là generated bundle optional; không dùng làm source thắng khi mâu thuẫn với source docs"
50
+ ]
51
+ },
52
+ "globalRules": {
53
+ "preferAsyncAwait": true,
54
+ "requireInitBeforeAnyApiCall": true,
55
+ "initMethod": "GNNetwork.init(settings)",
56
+ "initStrategy": "once_per_app_session",
57
+ "repeatInitBehavior": "ignored",
58
+ "successCodeCheckOrder": [
59
+ "returnCode",
60
+ "errorCode"
61
+ ],
62
+ "successCodes": {
63
+ "returnCodeOk": 1,
64
+ "errorCodeOk": 1
65
+ },
66
+ "doNotAssumeSuccessIsZero": true,
67
+ "doNotReadSrcForNormalPackageUsage": true,
68
+ "responseFieldAccess": "public_fields_not_getters"
69
+ },
70
+ "returnCodeMeanings": {
71
+ "Ok": "success, sang tầng errorCode để check business",
72
+ "OperationTimeout": "timeout từ SDK hoặc backend; retry với backoff nếu operation idempotent",
73
+ "OperationNotAllow": "secretKey hợp lệ nhưng permission rules không cho phép operation trong target context; check route + flag self/other/server/admin",
74
+ "InternalServerError": "backend exception; có thể retry 1 lần rồi escalate",
75
+ "OperationInvalid": "operation code không tồn tại hoặc không hợp lệ với request type/role",
76
+ "InvalidRequestParameters": "request shape sai; đọc res.invalidMembers",
77
+ "OperationNotAuthorized": "caller chưa auth; refresh token hoặc re-login",
78
+ "MaxCCUReject": "vượt CCU limit; backoff retry",
79
+ "MaxRequestReject": "rate limit; exponential backoff",
80
+ "MaxSizeRequestReject": "payload vượt size; paginate hoặc split",
81
+ "SecretInvalid": "secretKey sai, thiếu, hoặc không khớp game; KHÔNG retry, fix config"
82
+ },
83
+ "routing": {
84
+ "principle": "trust_boundary",
85
+ "client": "code chạy trong app hoặc player client",
86
+ "server": "code chạy trong trusted backend như game server, internal service, worker, cron hoặc webhook backend",
87
+ "admin": "code chạy trong backoffice, dashboard, GM tool, migration tool hoặc vận hành dữ liệu",
88
+ "rules": [
89
+ "không chọn server hoặc admin chỉ vì target không thuộc user hiện tại",
90
+ "không dùng namespace server hoặc admin từ app client chỉ để vượt permission",
91
+ "không suy diễn route chỉ từ việc request có hay không có userId"
92
+ ]
93
+ },
94
+ "permissionRules": {
95
+ "authoritativeDoc": "docs/reference/PERMISSION_RULES.md",
96
+ "externalReference": "https://docs.gearn.net/permissionRules",
97
+ "note": "Backend GearN Server/dashboard là runtime source-of-truth per-operation. Trong repo, dùng docs/reference/PERMISSION_RULES.md và docs/reference/API_<GROUP>.md để lấy operation name và mapping flag; externalReference chỉ là mirror khi cần đối chiếu online.",
98
+ "selfOtherSelfOnlyApplyOnClientRoute": true,
99
+ "flags": {
100
+ "selfEnable": "cho phép thực thi trên chính tài nguyên thuộc user đã authenticate",
101
+ "otherSelfEnable": "cho phép thực thi trên tài nguyên không thuộc user đã authenticate",
102
+ "serverSelfEnable": "cho phép thực thi qua route server",
103
+ "adminSelfEnable": "cho phép thực thi qua route admin"
104
+ },
105
+ "routeToFlagMapping": [
106
+ { "callerNamespace": "GNNetwork.<group>.<method>()", "route": "client", "target": "self", "requiredFlag": "selfEnable" },
107
+ { "callerNamespace": "GNNetwork.<group>.<method>(otherId)", "route": "client", "target": "other-self", "requiredFlag": "otherSelfEnable" },
108
+ { "callerNamespace": "GNNetwork.<group>.server.<method>()", "route": "server", "target": "*", "requiredFlag": "serverSelfEnable" },
109
+ { "callerNamespace": "GNNetwork.<group>.admin.<method>()", "route": "admin", "target": "*", "requiredFlag": "adminSelfEnable" }
110
+ ],
111
+ "configOwnership": {
112
+ "configuredBy": "backend_admin_on_gearn_dashboard",
113
+ "configGranularity": "per secretKey x per operation x per flag",
114
+ "clientCanChange": false,
115
+ "recommendedActionOnOperationNotAllow": [
116
+ "dùng secretKey khác qua GNServerSettings.secretKey",
117
+ "truyền overrideSecretKey per-request",
118
+ "yêu cầu backend admin bật flag cho secret hiện tại trong GearN Dashboard"
119
+ ]
120
+ },
121
+ "selfSemantics": {
122
+ "masterPlayerAndGamePlayer": "target userId trùng userId đã authenticate thành công",
123
+ "characterPlayerInventoryGroup": "entity target thuộc ownership của GamePlayer có userId trùng userId đã authenticate",
124
+ "domainsWithoutClearOwnership": [
125
+ "ContentApi",
126
+ "StoreInventoryApi",
127
+ "MultiplayerApi",
128
+ "CloudScriptApi"
129
+ ]
130
+ },
131
+ "operationNotAllowChecklist": [
132
+ "xác định route đang gọi: client hay .server hay .admin",
133
+ "xác định target self hay other-self theo self-semantics của domain",
134
+ "tra routeToFlagMapping ra flag cần",
135
+ "check secretKey active có flag đó cho operation này không (xem backend dashboard hoặc hỏi admin)",
136
+ "nếu không có: dùng secret khác, overrideSecretKey, hoặc yêu cầu backend admin bật flag trong GearN Dashboard",
137
+ "KHÔNG retry - đây là config fix"
138
+ ],
139
+ "diagnoseWorkflow": "docs/COOKBOOK.md#scenario-16-diagnose-operationnotallow"
140
+ },
141
+ "authAndSocket": {
142
+ "flow": [
143
+ "login hoặc refresh token qua HTTP",
144
+ "sau khi SDK đã có authToken, nếu cần realtime thì gọi GNNetwork.connectSocket()",
145
+ "nếu socket connect khi token đã có trong cache, SDK sẽ tự auth socket",
146
+ "chỉ gọi GNNetwork.sendRequestAuthSocket() khi cần re-auth thủ công"
147
+ ],
148
+ "rules": [
149
+ "không gộp auth socket với auth HTTP",
150
+ "không bắt buộc gọi tay sendRequestAuthSocket sau mọi lần connectSocket",
151
+ "nếu socket connect trước khi token xuất hiện hoặc token vừa đổi và không muốn reconnect thì mới gọi sendRequestAuthSocket"
152
+ ]
153
+ },
154
+ "dashboardSpecialCase": {
155
+ "apiGroup": "DashboardApi",
156
+ "publicWrapperRequestRole": "Client",
157
+ "backendAuthBehavior": "sau loginByAdminAccountAsync thành công, backend middleware resolve secret context và quyền admin riêng từ authToken",
158
+ "emptyPublicNamespaces": [
159
+ "GNNetwork.dashboard.server",
160
+ "GNNetwork.dashboard.admin"
161
+ ]
162
+ },
163
+ "enums": {
164
+ "docPath": "docs/reference/ENUMS.md",
165
+ "list": [
166
+ { "name": "ReturnCode", "anchor": "returncode", "okValue": 1, "role": "transport" },
167
+ { "name": "ErrorCode", "anchor": "errorcode", "okValue": 1, "role": "domain" },
168
+ { "name": "RequestRole", "anchor": "requestrole" },
169
+ { "name": "RequestType", "anchor": "requesttype" },
170
+ { "name": "MessageType", "anchor": "messagetype" },
171
+ { "name": "PostType", "anchor": "posttype" },
172
+ { "name": "LogType", "anchor": "logtype" },
173
+ { "name": "FriendStatus", "anchor": "friendstatus" },
174
+ { "name": "GroupStatus", "anchor": "groupstatus" },
175
+ { "name": "GoogleLoginType", "anchor": "googlelogintype" },
176
+ { "name": "InvalidMemberType", "anchor": "invalidmembertype" },
177
+ { "name": "ItemType", "anchor": "itemtype" },
178
+ { "name": "OwnerType", "anchor": "ownertype" },
179
+ { "name": "PushPlatformType", "anchor": "pushplatformtype" },
180
+ { "name": "MatchmakingMemberStatus", "anchor": "matchmakingmemberstatus" },
181
+ { "name": "MatchmakingTicketStatus", "anchor": "matchmakingticketstatus" },
182
+ { "name": "MatchStatus", "anchor": "matchstatus" },
183
+ { "name": "ExecuteResponseStatus", "anchor": "executeresponsestatus" },
184
+ { "name": "StoreItemType", "anchor": "storeitemtype" },
185
+ { "name": "StoreReceiveType", "anchor": "storereceivetype" },
186
+ { "name": "PermissionDataItem", "anchor": "permissiondataitem" },
187
+ { "name": "FieldDataType", "anchor": "fielddatatype" }
188
+ ]
189
+ },
190
+ "events": {
191
+ "docPath": "docs/reference/EVENTS.md",
192
+ "subscribePattern": "<Handler>.onUpdate = (payload) => { … }",
193
+ "unsubscribePattern": "<Handler>.onUpdate = () => {}",
194
+ "prerequisite": "socket connected + authenticated",
195
+ "subscribeOrder": "subscribe trước khi gọi GNNetwork.connectSocket() để không bỏ lỡ event ngay sau handshake",
196
+ "list": [
197
+ {
198
+ "name": "OnGroupMessageUpdateEventHandler",
199
+ "payloadClass": "GroupMessageUpdate",
200
+ "anchor": "ongroupmessageupdateeventhandler",
201
+ "scope": "Group",
202
+ "payloadKeys": ["groupMessages", "groupId", "characterId?"]
203
+ },
204
+ {
205
+ "name": "OnGroupMemberUpdateEventHandler",
206
+ "payloadClass": "GroupMemberUpdate",
207
+ "anchor": "ongroupmemberupdateeventhandler",
208
+ "scope": "Group",
209
+ "payloadKeys": ["members", "groupId"]
210
+ },
211
+ {
212
+ "name": "OnGamePlayerFriendUpdateEventHandler",
213
+ "payloadClass": "GamePlayerFriendUpdate",
214
+ "anchor": "ongameplayerfriendupdateeventhandler",
215
+ "scope": "GamePlayer",
216
+ "payloadKeys": ["playerFriends", "characterId?"]
217
+ },
218
+ {
219
+ "name": "OnGamePlayerGroupUpdateEventHandler",
220
+ "payloadClass": "GamePlayerGroupUpdate",
221
+ "anchor": "ongameplayergroupupdateeventhandler",
222
+ "scope": "GamePlayer",
223
+ "payloadKeys": ["playerGroups", "characterId?"]
224
+ },
225
+ {
226
+ "name": "OnCharacterPlayerFriendUpdateEventHandler",
227
+ "payloadClass": "CharacterPlayerFriendUpdate",
228
+ "anchor": "oncharacterplayerfriendupdateeventhandler",
229
+ "scope": "CharacterPlayer",
230
+ "payloadKeys": ["playerFriends", "characterId"]
231
+ },
232
+ {
233
+ "name": "OnCharacterPlayerGroupUpdateEventHandler",
234
+ "payloadClass": "CharacterPlayerGroupUpdate",
235
+ "anchor": "oncharacterplayergroupupdateeventhandler",
236
+ "scope": "CharacterPlayer",
237
+ "payloadKeys": ["playerGroups", "characterId"]
238
+ }
239
+ ]
240
+ },
241
+ "configSchema": {
242
+ "docPath": "docs/reference/CONFIG.md",
243
+ "class": "GNServerSettingsOptions",
244
+ "ctorUsage": "const settings = new GNServerSettings(); settings.config({ serverAddress, serverPort, gameId, secretKey, ... }); GNNetwork.init(settings)",
245
+ "fields": [
246
+ { "name": "serverAddress", "type": "string", "default": "127.0.0.1" },
247
+ { "name": "serverPort", "type": "number", "default": 2202, "unit": "port" },
248
+ { "name": "serverSocketPort", "type": "number", "default": 2901, "unit": "port" },
249
+ { "name": "useSsl", "type": "boolean", "default": false },
250
+ { "name": "useSocket", "type": "boolean", "default": true },
251
+ { "name": "useHttp", "type": "boolean", "default": true },
252
+ { "name": "defaultTimeoutInSeconds", "type": "number", "default": 20, "unit": "seconds" },
253
+ { "name": "messageType", "type": "MessageType", "default": "MsgPack" },
254
+ { "name": "sendRate", "type": "number", "default": 20, "unit": "messages_per_second" },
255
+ { "name": "reconnectDelay", "type": "number", "default": 5000, "unit": "milliseconds" },
256
+ { "name": "pingInterval", "type": "number", "default": 20000, "unit": "milliseconds" },
257
+ { "name": "pingTimeout", "type": "number", "default": 20000, "unit": "milliseconds" },
258
+ { "name": "secretKey", "type": "string" },
259
+ { "name": "gameId", "type": "string" },
260
+ { "name": "logType", "type": "LogType", "default": "All" }
261
+ ],
262
+ "runtimeOnlySetters": [
263
+ { "name": "useReverseProxy", "setter": "settings.setUseReverseProxy(true)", "default": false }
264
+ ]
265
+ },
266
+ "errorHandling": {
267
+ "docPath": "docs/reference/ERROR_HANDLING.md",
268
+ "responseFieldAccess": "public_fields",
269
+ "responseFields": ["returnCode", "errorCode", "invalidMembers", "debugMessage", "responseData"],
270
+ "checkOrder": [
271
+ "if (res.returnCode !== ReturnCode.Ok) return;",
272
+ "if (res.errorCode !== ErrorCode.Ok) return;",
273
+ "useResult(res.responseData);"
274
+ ],
275
+ "okValue": 1,
276
+ "warning": "Typed response (mọi *Async() và callback form) dùng PUBLIC FIELDS, KHÔNG phải getter. Low-level OperationResponse (raw transport) mới dùng getReturnCode() etc."
277
+ },
278
+ "scenarios": {
279
+ "docPath": "docs/COOKBOOK.md",
280
+ "list": [
281
+ { "id": 1, "title": "Init SDK + bootstrap tối thiểu", "anchor": "scenario-1-init-sdk--bootstrap-tối-thiểu", "apis": ["GNNetwork.init"] },
282
+ { "id": 2, "title": "Login by account + retrieve profile", "anchor": "scenario-2-login-by-account--retrieve-profile", "apis": ["GNNetwork.authenticate.loginByAccountAsync"] },
283
+ { "id": 3, "title": "Refresh token và persist session", "anchor": "scenario-3-refresh-token-và-persist-session", "apis": ["GNNetwork.authenticate.refreshAuthTokenAsync"] },
284
+ { "id": 4, "title": "Login by social (Google/Apple/Facebook)", "anchor": "scenario-4-login-by-social-googleapplefacebook", "apis": ["GNNetwork.authenticate.loginByGoogleAsync", "GNNetwork.authenticate.loginByAppleAsync", "GNNetwork.authenticate.loginByFacebookAsync"] },
285
+ { "id": 5, "title": "Connect socket + handle reconnect", "anchor": "scenario-5-connect-socket--handle-reconnect", "apis": ["GNNetwork.connectSocket", "GNNetwork.subscriberOnConnectHandler"] },
286
+ { "id": 6, "title": "Subscribe friend updates", "anchor": "scenario-6-subscribe-friend-updates", "events": ["OnGamePlayerFriendUpdateEventHandler"] },
287
+ { "id": 7, "title": "Subscribe + send group message", "anchor": "scenario-7-subscribe--send-group-message", "events": ["OnGroupMessageUpdateEventHandler"], "apis": ["GNNetwork.group.sendGroupMessageAsync"] },
288
+ { "id": 8, "title": "Group member lifecycle + realtime update", "anchor": "scenario-8-group-member-lifecycle-join--leave--kick--realtime-update", "events": ["OnGroupMemberUpdateEventHandler"], "apis": ["GNNetwork.gamePlayer.joinGroupAsync", "GNNetwork.gamePlayer.leaveGroupAsync", "GNNetwork.group.server.removeMemberAsync"] },
289
+ { "id": 9, "title": "Matchmaking ticket flow", "anchor": "scenario-9-matchmaking-ticket-flow", "apis": ["GNNetwork.multiplayer.createMatchmakingTicketAsync", "GNNetwork.multiplayer.getMatchmakingTicketAsync", "GNNetwork.multiplayer.cancelMatchmakingTicketAsync"] },
290
+ { "id": 10, "title": "Inventory query + grant item (server role)", "anchor": "scenario-10-inventory-query--grant-item-server-role", "apis": ["GNNetwork.gamePlayer.getPlayerInventoryAsync", "GNNetwork.gamePlayer.server.createPlayerItemAsync"] },
291
+ { "id": 11, "title": "Store list → purchase → validate receipt", "anchor": "scenario-11-store-list-catalog--purchase--validate-receipt", "apis": ["GNNetwork.storeInventory.getStoreItemsWithTagAsync", "GNNetwork.storeInventory.buyStoreItemAsync", "GNNetwork.storeInventory.server.validateGooglePlayStoreReceiptAsync"] },
292
+ { "id": 12, "title": "CloudScript execute + customTags", "anchor": "scenario-12-cloudscript-execute-function--customtags", "apis": ["GNNetwork.cloudScript.executeFunctionAsync"] },
293
+ { "id": 13, "title": "Override authToken / secret", "anchor": "scenario-13-override-authtoken--secret-impersonate-cross-role" },
294
+ { "id": 14, "title": "Admin login qua DashboardApi", "anchor": "scenario-14-admin-login-qua-dashboardapi", "apis": ["GNNetwork.dashboard.loginByAdminAccountAsync"] },
295
+ { "id": 15, "title": "Cleanup & shutdown flow", "anchor": "scenario-15-cleanup--shutdown-flow", "apis": ["GNNetwork.disconnectSocket"] },
296
+ { "id": 16, "title": "Diagnose OperationNotAllow", "anchor": "scenario-16-diagnose-operationnotallow", "apis": ["GNNetwork.inventory.admin.setAmountAsync"] }
297
+ ]
298
+ },
299
+ "apiGroups": [
300
+ {
301
+ "name": "AuthenticateApi",
302
+ "guideDoc": "docs/guides/AUTHENTICATE.md",
303
+ "referenceDoc": "docs/reference/API_AUTHENTICATE.md",
304
+ "dtoDoc": "docs/reference/dto/AUTHENTICATE.md",
305
+ "apiDts": "dist/runtime/GNNetworkAuthenticateApi.d.ts",
306
+ "modelDts": [
307
+ "dist/runtime/entity/models/AuthenticateModels.d.ts",
308
+ "dist/runtime/entity/models/AuthenticateRequestModels.d.ts",
309
+ "dist/runtime/entity/models/AuthenticateResponseModels.d.ts"
310
+ ],
311
+ "transport": "http",
312
+ "methodCount": 18,
313
+ "routes": [
314
+ {
315
+ "namespace": "GNNetwork.authenticate",
316
+ "requestRole": "Client",
317
+ "useWhen": "login player, register account, refresh auth token"
318
+ }
319
+ ],
320
+ "emptyNamespaces": [
321
+ "GNNetwork.authenticate.server",
322
+ "GNNetwork.authenticate.admin"
323
+ ],
324
+ "permissionRuleDoc": "docs/reference/API_AUTHENTICATE.md",
325
+ "recommendedSecretPermissions": {
326
+ "client": "otherSelfEnable cho các method login/register (login luôn là acting-on-unauth-user)",
327
+ "server": "serverSelfEnable nếu backend cần issue token cho user cụ thể",
328
+ "admin": "adminSelfEnable nếu dashboard cần impersonate/provision tài khoản"
329
+ }
330
+ },
331
+ {
332
+ "name": "DashboardApi",
333
+ "guideDoc": "docs/guides/DASHBOARD.md",
334
+ "referenceDoc": "docs/reference/API_DASHBOARD.md",
335
+ "dtoDoc": "docs/reference/dto/DASHBOARD.md",
336
+ "apiDts": "dist/runtime/GNNetworkDashboardApi.d.ts",
337
+ "modelDts": [
338
+ "dist/runtime/entity/models/DashboardModels.d.ts",
339
+ "dist/runtime/entity/models/DashboardRequestModels.d.ts",
340
+ "dist/runtime/entity/models/DashboardResponseModels.d.ts"
341
+ ],
342
+ "transport": "http",
343
+ "methodCount": 26,
344
+ "routes": [
345
+ {
346
+ "namespace": "GNNetwork.dashboard",
347
+ "requestRole": "Client",
348
+ "useWhen": "dashboard, analytics, secret, maintenance, admin login",
349
+ "specialCase": "backend resolve admin context từ authToken sau login admin"
350
+ }
351
+ ],
352
+ "emptyNamespaces": [
353
+ "GNNetwork.dashboard.server",
354
+ "GNNetwork.dashboard.admin"
355
+ ],
356
+ "permissionRuleDoc": "docs/reference/API_DASHBOARD.md",
357
+ "recommendedSecretPermissions": {
358
+ "client": "secretKey bootstrap chỉ cần cho phép loginByAdminAccount; sau login backend tự resolve quyền admin từ authToken"
359
+ }
360
+ },
361
+ {
362
+ "name": "ContentApi",
363
+ "guideDoc": "docs/guides/CONTENT.md",
364
+ "referenceDoc": "docs/reference/API_CONTENT.md",
365
+ "dtoDoc": "docs/reference/dto/CONTENT.md",
366
+ "apiDts": "dist/runtime/GNNetworkContentApi.d.ts",
367
+ "modelDts": [
368
+ "dist/runtime/entity/models/ContentModels.d.ts",
369
+ "dist/runtime/entity/models/ContentRequestModels.d.ts",
370
+ "dist/runtime/entity/models/ContentResponseModels.d.ts"
371
+ ],
372
+ "transport": "http",
373
+ "methodCount": 21,
374
+ "routes": [
375
+ {
376
+ "namespace": "GNNetwork.content",
377
+ "requestRole": "Client",
378
+ "useWhen": "content config hoặc file metadata từ app hoặc player side"
379
+ },
380
+ {
381
+ "namespace": "GNNetwork.content.server",
382
+ "requestRole": "Server",
383
+ "useWhen": "trusted backend hoặc worker xử lý content hoặc file metadata"
384
+ },
385
+ {
386
+ "namespace": "GNNetwork.content.admin",
387
+ "requestRole": "Admin",
388
+ "useWhen": "dashboard hoặc backoffice quản trị content hoặc file metadata"
389
+ }
390
+ ],
391
+ "permissionRuleDoc": "docs/reference/API_CONTENT.md",
392
+ "recommendedSecretPermissions": {
393
+ "client": "selfEnable cho các method app-level query; otherSelfEnable nếu cần đọc content của user khác",
394
+ "server": "serverSelfEnable cho trusted backend upload/download metadata",
395
+ "admin": "adminSelfEnable cho dashboard quản trị content"
396
+ }
397
+ },
398
+ {
399
+ "name": "MultiplayerApi",
400
+ "guideDoc": "docs/guides/MULTIPLAYER.md",
401
+ "referenceDoc": "docs/reference/API_MULTIPLAYER.md",
402
+ "dtoDoc": "docs/reference/dto/MULTIPLAYER.md",
403
+ "apiDts": "dist/runtime/GNNetworkMultiplayerApi.d.ts",
404
+ "modelDts": [
405
+ "dist/runtime/entity/models/MultiplayerModels.d.ts",
406
+ "dist/runtime/entity/models/MultiplayerRequestModels.d.ts",
407
+ "dist/runtime/entity/models/MultiplayerResponseModels.d.ts"
408
+ ],
409
+ "transport": "http",
410
+ "methodCount": 30,
411
+ "routes": [
412
+ {
413
+ "namespace": "GNNetwork.multiplayer",
414
+ "requestRole": "Client",
415
+ "useWhen": "matchmaking ticket hoặc match query gắn với auth token hiện tại"
416
+ },
417
+ {
418
+ "namespace": "GNNetwork.multiplayer.server",
419
+ "requestRole": "Server",
420
+ "useWhen": "trusted backend thao tác ticket hoặc match của user cụ thể"
421
+ },
422
+ {
423
+ "namespace": "GNNetwork.multiplayer.admin",
424
+ "requestRole": "Admin",
425
+ "useWhen": "ops hoặc dashboard liệt kê và quản lý ticket hoặc match"
426
+ }
427
+ ],
428
+ "hardRules": [
429
+ "không dùng socket để tạo hoặc join hoặc cancel hoặc query matchmaking ticket",
430
+ "flow chuẩn là create hoặc join ticket rồi poll getMatchmakingTicket rồi mới getMatch"
431
+ ],
432
+ "permissionRuleDoc": "docs/reference/API_MULTIPLAYER.md",
433
+ "recommendedSecretPermissions": {
434
+ "client": "selfEnable cho create/cancel ticket của chính user; otherSelfEnable nếu cần query ticket user khác",
435
+ "server": "serverSelfEnable cho trusted backend điều phối match",
436
+ "admin": "adminSelfEnable cho dashboard liệt kê/quản lý ticket"
437
+ }
438
+ },
439
+ {
440
+ "name": "StoreInventoryApi",
441
+ "guideDoc": "docs/guides/STORE_INVENTORY.md",
442
+ "referenceDoc": "docs/reference/API_STORE_INVENTORY.md",
443
+ "dtoDoc": "docs/reference/dto/STORE_INVENTORY.md",
444
+ "apiDts": "dist/runtime/GNNetworkStoreInventoryApi.d.ts",
445
+ "modelDts": [
446
+ "dist/runtime/entity/models/StoreInventoryModels.d.ts",
447
+ "dist/runtime/entity/models/StoreInventoryRequestModels.d.ts",
448
+ "dist/runtime/entity/models/StoreInventoryResponseModels.d.ts"
449
+ ],
450
+ "transport": "http",
451
+ "methodCount": 42,
452
+ "routes": [
453
+ {
454
+ "namespace": "GNNetwork.storeInventory",
455
+ "requestRole": "Client",
456
+ "useWhen": "store catalog, buy, present, receipt validation cho flow app hoặc player"
457
+ },
458
+ {
459
+ "namespace": "GNNetwork.storeInventory.server",
460
+ "requestRole": "Server",
461
+ "useWhen": "trusted backend purchase fulfillment hoặc store workflow"
462
+ },
463
+ {
464
+ "namespace": "GNNetwork.storeInventory.admin",
465
+ "requestRole": "Admin",
466
+ "useWhen": "dashboard hoặc ops quản trị catalog hoặc log"
467
+ }
468
+ ],
469
+ "permissionRuleDoc": "docs/reference/API_STORE_INVENTORY.md",
470
+ "recommendedSecretPermissions": {
471
+ "client": "selfEnable cho buy/present/validate receipt của chính user",
472
+ "server": "serverSelfEnable cho backend fulfillment, webhook validate receipt",
473
+ "admin": "adminSelfEnable cho dashboard CRUD catalog, log, remove status"
474
+ }
475
+ },
476
+ {
477
+ "name": "InventoryApi",
478
+ "guideDoc": "docs/guides/INVENTORY.md",
479
+ "referenceDoc": "docs/reference/API_INVENTORY.md",
480
+ "dtoDoc": "docs/reference/dto/INVENTORY.md",
481
+ "apiDts": "dist/runtime/GNNetworkInventoryApi.d.ts",
482
+ "modelDts": [
483
+ "dist/runtime/entity/models/InventoryModels.d.ts",
484
+ "dist/runtime/entity/models/InventoryRequestModels.d.ts",
485
+ "dist/runtime/entity/models/InventoryResponseModels.d.ts"
486
+ ],
487
+ "transport": "http",
488
+ "methodCount": 102,
489
+ "routes": [
490
+ {
491
+ "namespace": "GNNetwork.inventory",
492
+ "requestRole": "Client",
493
+ "useWhen": "player app thao tác trên item thuộc session hoặc ownership hiện tại"
494
+ },
495
+ {
496
+ "namespace": "GNNetwork.inventory.server",
497
+ "requestRole": "Server",
498
+ "useWhen": "trusted backend xử lý item hoặc ownership hoặc statistics"
499
+ },
500
+ {
501
+ "namespace": "GNNetwork.inventory.admin",
502
+ "requestRole": "Admin",
503
+ "useWhen": "GM tool hoặc dashboard vận hành dữ liệu inventory"
504
+ }
505
+ ],
506
+ "permissionRuleDoc": "docs/reference/API_INVENTORY.md",
507
+ "recommendedSecretPermissions": {
508
+ "client": "selfEnable cho query/statistics item của chính user; otherSelfEnable nếu xem item user khác",
509
+ "server": "serverSelfEnable cho grant/transfer/remove item từ trusted backend",
510
+ "admin": "adminSelfEnable cho GM tool setAmount, setOwner, setRemoveStatus"
511
+ }
512
+ },
513
+ {
514
+ "name": "GroupApi",
515
+ "guideDoc": "docs/guides/GROUP.md",
516
+ "referenceDoc": "docs/reference/API_GROUP.md",
517
+ "dtoDoc": "docs/reference/dto/GROUP.md",
518
+ "apiDts": "dist/runtime/GNNetworkGroupApi.d.ts",
519
+ "modelDts": [
520
+ "dist/runtime/entity/models/GroupModels.d.ts",
521
+ "dist/runtime/entity/models/GroupRequestModels.d.ts",
522
+ "dist/runtime/entity/models/GroupResponseModels.d.ts"
523
+ ],
524
+ "transport": "http",
525
+ "methodCount": 120,
526
+ "routes": [
527
+ {
528
+ "namespace": "GNNetwork.group",
529
+ "requestRole": "Client",
530
+ "useWhen": "player app thao tác trên group đã tồn tại"
531
+ },
532
+ {
533
+ "namespace": "GNNetwork.group.server",
534
+ "requestRole": "Server",
535
+ "useWhen": "trusted backend xử lý group lifecycle hoặc member hoặc message"
536
+ },
537
+ {
538
+ "namespace": "GNNetwork.group.admin",
539
+ "requestRole": "Admin",
540
+ "useWhen": "dashboard hoặc GM tool vận hành dữ liệu group"
541
+ }
542
+ ],
543
+ "realtimeHandlers": [
544
+ "dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.d.ts",
545
+ "dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.d.ts"
546
+ ],
547
+ "permissionRuleDoc": "docs/reference/API_GROUP.md",
548
+ "recommendedSecretPermissions": {
549
+ "client": "selfEnable cho member của group đã join; otherSelfEnable cho query group khác",
550
+ "server": "serverSelfEnable cho backend manage lifecycle, currency, message",
551
+ "admin": "adminSelfEnable cho GM tool kick member, reset statistics, setRemoveStatus"
552
+ }
553
+ },
554
+ {
555
+ "name": "MasterPlayerApi",
556
+ "guideDoc": "docs/guides/MASTER_PLAYER.md",
557
+ "referenceDoc": "docs/reference/API_MASTER_PLAYER.md",
558
+ "dtoDoc": "docs/reference/dto/MASTER_PLAYER.md",
559
+ "apiDts": "dist/runtime/GNNetworkMasterPlayerApi.d.ts",
560
+ "modelDts": [
561
+ "dist/runtime/entity/models/MasterPlayerModels.d.ts",
562
+ "dist/runtime/entity/models/MasterPlayerRequestModels.d.ts",
563
+ "dist/runtime/entity/models/MasterPlayerResponseModels.d.ts"
564
+ ],
565
+ "transport": "http",
566
+ "methodCount": 256,
567
+ "routes": [
568
+ {
569
+ "namespace": "GNNetwork.masterPlayer",
570
+ "requestRole": "Client",
571
+ "useWhen": "player app thao tác trên account hoặc profile của chính user hiện tại",
572
+ "userIdBehavior": "có thể bỏ userId để target user hiện tại"
573
+ },
574
+ {
575
+ "namespace": "GNNetwork.masterPlayer.server",
576
+ "requestRole": "Server",
577
+ "useWhen": "trusted backend xử lý account hoặc profile của player cụ thể",
578
+ "userIdBehavior": "các flow self-target phải truyền userId rõ ràng"
579
+ },
580
+ {
581
+ "namespace": "GNNetwork.masterPlayer.admin",
582
+ "requestRole": "Admin",
583
+ "useWhen": "dashboard hoặc GM tool vận hành dữ liệu master player",
584
+ "userIdBehavior": "các flow self-target phải truyền userId rõ ràng"
585
+ }
586
+ ],
587
+ "permissionRuleDoc": "docs/reference/API_MASTER_PLAYER.md",
588
+ "recommendedSecretPermissions": {
589
+ "client": "selfEnable cho profile/identity/currency của chính user; otherSelfEnable cho search/leaderboard/xem user khác",
590
+ "server": "serverSelfEnable cho backend provisioning, link/unlink identity, change currency",
591
+ "admin": "adminSelfEnable cho GM tool ban, reset password, send push notification"
592
+ }
593
+ },
594
+ {
595
+ "name": "GamePlayerApi",
596
+ "guideDoc": "docs/guides/GAME_PLAYER.md",
597
+ "referenceDoc": "docs/reference/API_GAME_PLAYER.md",
598
+ "dtoDoc": "docs/reference/dto/GAME_PLAYER.md",
599
+ "apiDts": "dist/runtime/GNNetworkGamePlayerApi.d.ts",
600
+ "modelDts": [
601
+ "dist/runtime/entity/models/GamePlayerModels.d.ts",
602
+ "dist/runtime/entity/models/GamePlayerRequestModels.d.ts",
603
+ "dist/runtime/entity/models/GamePlayerResponseModels.d.ts"
604
+ ],
605
+ "transport": "http",
606
+ "methodCount": 156,
607
+ "routes": [
608
+ {
609
+ "namespace": "GNNetwork.gamePlayer",
610
+ "requestRole": "Client",
611
+ "useWhen": "player app thao tác trên gameplay profile của chính user hiện tại",
612
+ "userIdBehavior": "có thể bỏ userId để target user hiện tại"
613
+ },
614
+ {
615
+ "namespace": "GNNetwork.gamePlayer.server",
616
+ "requestRole": "Server",
617
+ "useWhen": "trusted backend xử lý lifecycle game player của user cụ thể",
618
+ "userIdBehavior": "các flow self-target phải truyền userId rõ ràng"
619
+ },
620
+ {
621
+ "namespace": "GNNetwork.gamePlayer.admin",
622
+ "requestRole": "Admin",
623
+ "useWhen": "dashboard hoặc GM tool vận hành dữ liệu game player",
624
+ "userIdBehavior": "các flow self-target phải truyền userId rõ ràng"
625
+ }
626
+ ],
627
+ "realtimeHandlers": [
628
+ "dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.d.ts",
629
+ "dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.d.ts"
630
+ ],
631
+ "permissionRuleDoc": "docs/reference/API_GAME_PLAYER.md",
632
+ "recommendedSecretPermissions": {
633
+ "client": "selfEnable cho gameplay profile/relation của chính user; otherSelfEnable cho friend/group query sang user khác",
634
+ "server": "serverSelfEnable cho backend create character, change currency, manage friend/group",
635
+ "admin": "adminSelfEnable cho GM tool"
636
+ }
637
+ },
638
+ {
639
+ "name": "CharacterPlayerApi",
640
+ "guideDoc": "docs/guides/CHARACTER_PLAYER.md",
641
+ "referenceDoc": "docs/reference/API_CHARACTER_PLAYER.md",
642
+ "dtoDoc": "docs/reference/dto/CHARACTER_PLAYER.md",
643
+ "apiDts": "dist/runtime/GNNetworkCharacterPlayerApi.d.ts",
644
+ "modelDts": [
645
+ "dist/runtime/entity/models/CharacterPlayerModels.d.ts",
646
+ "dist/runtime/entity/models/CharacterPlayerRequestModels.d.ts",
647
+ "dist/runtime/entity/models/CharacterPlayerResponseModels.d.ts"
648
+ ],
649
+ "transport": "http",
650
+ "methodCount": 159,
651
+ "routes": [
652
+ {
653
+ "namespace": "GNNetwork.characterPlayer",
654
+ "requestRole": "Client",
655
+ "useWhen": "player app thao tác trên character cụ thể đang thuộc ownership hợp lệ",
656
+ "targetBehavior": "gần như luôn phải truyền characterId rõ ràng"
657
+ },
658
+ {
659
+ "namespace": "GNNetwork.characterPlayer.server",
660
+ "requestRole": "Server",
661
+ "useWhen": "trusted backend xử lý lifecycle hoặc relation của character cụ thể",
662
+ "targetBehavior": "gần như luôn phải truyền characterId rõ ràng"
663
+ },
664
+ {
665
+ "namespace": "GNNetwork.characterPlayer.admin",
666
+ "requestRole": "Admin",
667
+ "useWhen": "dashboard hoặc GM tool vận hành dữ liệu character",
668
+ "targetBehavior": "gần như luôn phải truyền characterId rõ ràng"
669
+ }
670
+ ],
671
+ "realtimeHandlers": [
672
+ "dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.d.ts",
673
+ "dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.d.ts"
674
+ ],
675
+ "permissionRuleDoc": "docs/reference/API_CHARACTER_PLAYER.md",
676
+ "recommendedSecretPermissions": {
677
+ "client": "selfEnable cho character thuộc ownership user; otherSelfEnable cho view character khác",
678
+ "server": "serverSelfEnable cho backend create/remove character, manage friend/group ở cấp character",
679
+ "admin": "adminSelfEnable cho GM tool"
680
+ }
681
+ },
682
+ {
683
+ "name": "CloudScriptApi",
684
+ "guideDoc": "docs/guides/CLOUDSCRIPT.md",
685
+ "referenceDoc": "docs/reference/API_CLOUDSCRIPT.md",
686
+ "dtoDoc": "docs/reference/dto/CLOUDSCRIPT.md",
687
+ "apiDts": "dist/runtime/GNNetworkCloudScriptApi.d.ts",
688
+ "modelDts": [
689
+ "dist/runtime/entity/models/CloudScriptModels.d.ts",
690
+ "dist/runtime/entity/models/CloudScriptRequestModels.d.ts",
691
+ "dist/runtime/entity/models/CloudScriptResponseModels.d.ts"
692
+ ],
693
+ "transport": "http",
694
+ "methodCount": 15,
695
+ "routes": [
696
+ {
697
+ "namespace": "GNNetwork.cloudScript",
698
+ "requestRole": "Client",
699
+ "useWhen": "app public chỉ execute function nếu backend cho phép"
700
+ },
701
+ {
702
+ "namespace": "GNNetwork.cloudScript.server",
703
+ "requestRole": "Server",
704
+ "useWhen": "trusted backend execute hoặc publish theo workflow backend"
705
+ },
706
+ {
707
+ "namespace": "GNNetwork.cloudScript.admin",
708
+ "requestRole": "Admin",
709
+ "useWhen": "dashboard hoặc backoffice quản trị version và live status"
710
+ }
711
+ ],
712
+ "hardRules": [
713
+ "editFunctionAsync không sửa source code, chỉ flag enabled hoặc live của version",
714
+ "muốn đổi source code phải addFunctionAsync để tạo version mới",
715
+ "không có public delete function hoặc hard delete version"
716
+ ],
717
+ "permissionRuleDoc": "docs/reference/API_CLOUDSCRIPT.md",
718
+ "recommendedSecretPermissions": {
719
+ "client": "selfEnable cho executeFunction nếu backend cho phép app public execute",
720
+ "server": "serverSelfEnable cho backend execute/publish theo workflow trusted",
721
+ "admin": "adminSelfEnable cho dashboard addFunction/editFunction/publish version"
722
+ }
723
+ }
724
+ ]
725
+ }