@xmobitea/gn-typescript-client 2.6.13 → 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 (286) hide show
  1. package/AGENTS.md +37 -0
  2. package/README.MD +420 -1
  3. package/dist/gearn.js.client.js +25056 -1056
  4. package/dist/gearn.js.client.min.js +1 -1
  5. package/dist/index.d.ts +30 -0
  6. package/dist/index.js +24236 -212
  7. package/dist/runtime/GNNetwork.d.ts +687 -3
  8. package/dist/runtime/GNNetworkAuthenticateApi.d.ts +327 -0
  9. package/dist/runtime/GNNetworkCharacterPlayerApi.d.ts +1026 -0
  10. package/dist/runtime/GNNetworkCloudScriptApi.d.ts +141 -0
  11. package/dist/runtime/GNNetworkContentApi.d.ts +243 -0
  12. package/dist/runtime/GNNetworkDashboardApi.d.ts +221 -0
  13. package/dist/runtime/GNNetworkGamePlayerApi.d.ts +1033 -0
  14. package/dist/runtime/GNNetworkGroupApi.d.ts +783 -0
  15. package/dist/runtime/GNNetworkInventoryApi.d.ts +673 -0
  16. package/dist/runtime/GNNetworkMasterPlayerApi.d.ts +1614 -6
  17. package/dist/runtime/GNNetworkMultiplayerApi.d.ts +234 -0
  18. package/dist/runtime/GNNetworkStoreInventoryApi.d.ts +309 -0
  19. package/dist/runtime/common/Action0.d.ts +30 -0
  20. package/dist/runtime/common/Action1.d.ts +32 -0
  21. package/dist/runtime/common/Action2.d.ts +21 -0
  22. package/dist/runtime/common/Action3.d.ts +16 -0
  23. package/dist/runtime/common/Action4.d.ts +17 -0
  24. package/dist/runtime/common/GNData.d.ts +368 -0
  25. package/dist/runtime/config/GNServerSettings.d.ts +442 -12
  26. package/dist/runtime/constant/Commands.d.ts +80 -0
  27. package/dist/runtime/constant/EventCode.d.ts +48 -0
  28. package/dist/runtime/constant/OperationCode.d.ts +74 -1
  29. package/dist/runtime/constant/ReturnCode.d.ts +72 -0
  30. package/dist/runtime/constant/enumType/ExecuteResponseStatus.d.ts +31 -0
  31. package/dist/runtime/constant/enumType/FriendStatus.d.ts +39 -0
  32. package/dist/runtime/constant/enumType/GoogleLoginType.d.ts +23 -0
  33. package/dist/runtime/constant/enumType/GroupStatus.d.ts +32 -0
  34. package/dist/runtime/constant/enumType/InvalidMemberType.d.ts +75 -0
  35. package/dist/runtime/constant/enumType/ItemType.d.ts +23 -0
  36. package/dist/runtime/constant/enumType/MatchStatus.d.ts +30 -0
  37. package/dist/runtime/constant/enumType/MatchmakingMemberStatus.d.ts +24 -0
  38. package/dist/runtime/constant/enumType/MatchmakingTicketStatus.d.ts +34 -0
  39. package/dist/runtime/constant/enumType/OwnerType.d.ts +40 -0
  40. package/dist/runtime/constant/enumType/PermissionDataItem.d.ts +22 -0
  41. package/dist/runtime/constant/enumType/PushPlatformType.d.ts +18 -0
  42. package/dist/runtime/constant/enumType/RequestRole.d.ts +32 -0
  43. package/dist/runtime/constant/enumType/RequestType.d.ts +70 -0
  44. package/dist/runtime/constant/enumType/StoreItemType.d.ts +21 -0
  45. package/dist/runtime/constant/enumType/StoreReceiveType.d.ts +30 -0
  46. package/dist/runtime/constant/errorCode/ErrorCode.d.ts +190 -8
  47. package/dist/runtime/constant/parameterCode/ParameterCode.d.ts +35 -5
  48. package/dist/runtime/entity/DataMember.d.ts +338 -0
  49. package/dist/runtime/entity/GNMetadata.d.ts +101 -0
  50. package/dist/runtime/entity/InvalidMember.d.ts +28 -0
  51. package/dist/runtime/entity/OperationEvent.d.ts +49 -0
  52. package/dist/runtime/entity/OperationRequest.d.ts +108 -0
  53. package/dist/runtime/entity/OperationResponse.d.ts +110 -0
  54. package/dist/runtime/entity/models/AuthenticateModels.d.ts +115 -0
  55. package/dist/runtime/entity/models/AuthenticateRequestModels.d.ts +131 -0
  56. package/dist/runtime/entity/models/AuthenticateResponseModels.d.ts +131 -0
  57. package/dist/runtime/entity/models/CharacterPlayerModels.d.ts +625 -1
  58. package/dist/runtime/entity/models/CharacterPlayerRequestModels.d.ts +972 -0
  59. package/dist/runtime/entity/models/CharacterPlayerResponseModels.d.ts +332 -0
  60. package/dist/runtime/entity/models/CloudScriptModels.d.ts +109 -0
  61. package/dist/runtime/entity/models/CloudScriptRequestModels.d.ts +107 -0
  62. package/dist/runtime/entity/models/CloudScriptResponseModels.d.ts +46 -0
  63. package/dist/runtime/entity/models/ContentModels.d.ts +124 -0
  64. package/dist/runtime/entity/models/ContentRequestModels.d.ts +152 -0
  65. package/dist/runtime/entity/models/ContentResponseModels.d.ts +58 -0
  66. package/dist/runtime/entity/models/DashboardModels.d.ts +371 -8
  67. package/dist/runtime/entity/models/DashboardRequestModels.d.ts +172 -0
  68. package/dist/runtime/entity/models/DashboardResponseModels.d.ts +170 -0
  69. package/dist/runtime/entity/models/GamePlayerModels.d.ts +644 -1
  70. package/dist/runtime/entity/models/GamePlayerRequestModels.d.ts +959 -0
  71. package/dist/runtime/entity/models/GamePlayerResponseModels.d.ts +333 -1
  72. package/dist/runtime/entity/models/GenericModels.d.ts +94 -0
  73. package/dist/runtime/entity/models/GroupModels.d.ts +484 -2
  74. package/dist/runtime/entity/models/GroupRequestModels.d.ts +737 -0
  75. package/dist/runtime/entity/models/GroupResponseModels.d.ts +254 -0
  76. package/dist/runtime/entity/models/InventoryModels.d.ts +415 -0
  77. package/dist/runtime/entity/models/InventoryRequestModels.d.ts +629 -0
  78. package/dist/runtime/entity/models/InventoryResponseModels.d.ts +218 -0
  79. package/dist/runtime/entity/models/MasterPlayerModels.d.ts +1065 -3
  80. package/dist/runtime/entity/models/MasterPlayerRequestModels.d.ts +1560 -6
  81. package/dist/runtime/entity/models/MasterPlayerResponseModels.d.ts +532 -1
  82. package/dist/runtime/entity/models/MultiplayerModels.d.ts +199 -0
  83. package/dist/runtime/entity/models/MultiplayerRequestModels.d.ts +196 -0
  84. package/dist/runtime/entity/models/MultiplayerResponseModels.d.ts +74 -0
  85. package/dist/runtime/entity/models/StoreInventoryModels.d.ts +262 -0
  86. package/dist/runtime/entity/models/StoreInventoryRequestModels.d.ts +268 -0
  87. package/dist/runtime/entity/models/StoreInventoryResponseModels.d.ts +98 -0
  88. package/dist/runtime/entity/request/CustomOperationRequest.d.ts +99 -0
  89. package/dist/runtime/entity/response/CustomOperationResponse.d.ts +118 -0
  90. package/dist/runtime/entity/response/GetAuthInfoResponse.d.ts +53 -0
  91. package/dist/runtime/entity/response/HealthCheckResponse.d.ts +56 -0
  92. package/dist/runtime/entity/response/UploadFileResponse.d.ts +19 -0
  93. package/dist/runtime/helper/CodeHelper.d.ts +122 -0
  94. package/dist/runtime/helper/ConverterService.d.ts +74 -0
  95. package/dist/runtime/helper/EnumUtility.d.ts +63 -0
  96. package/dist/runtime/helper/GNSupport.d.ts +64 -4
  97. package/dist/runtime/helper/GNUtils.d.ts +54 -0
  98. package/dist/runtime/helper/MessagePackConverterService.d.ts +48 -0
  99. package/dist/runtime/helper/OperationHelper.d.ts +51 -0
  100. package/dist/runtime/helper/StorageService.d.ts +48 -8
  101. package/dist/runtime/logger/GNDebug.d.ts +117 -0
  102. package/dist/runtime/networking/AuthenticateStatus.d.ts +64 -0
  103. package/dist/runtime/networking/IPeer.d.ts +83 -0
  104. package/dist/runtime/networking/NetworkingPeer.d.ts +256 -1
  105. package/dist/runtime/networking/OperationPending.d.ts +112 -0
  106. package/dist/runtime/networking/PeerBase.d.ts +231 -0
  107. package/dist/runtime/networking/handler/IServerEventHandler.d.ts +84 -0
  108. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.d.ts +69 -0
  109. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.d.ts +49 -0
  110. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.d.ts +50 -0
  111. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.d.ts +41 -0
  112. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.d.ts +47 -0
  113. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.d.ts +46 -0
  114. package/dist/runtime/networking/http/HttpPeer.d.ts +173 -0
  115. package/dist/runtime/networking/http/NetworkingHttpPeerBase.d.ts +87 -0
  116. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.d.ts +113 -0
  117. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.d.ts +145 -0
  118. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.d.ts +198 -0
  119. package/dist/runtime/networking/socket/SocketPeer.d.ts +155 -0
  120. package/dist/runtime/typescript/ServiceUpdate.d.ts +46 -0
  121. package/docs/AI_CHEATSHEET.md +211 -0
  122. package/docs/COOKBOOK.md +912 -0
  123. package/docs/RULES.md +307 -0
  124. package/docs/ai-manifest.json +725 -0
  125. package/docs/guides/AUTHENTICATE.md +246 -0
  126. package/docs/guides/CHARACTER_PLAYER.md +439 -0
  127. package/docs/guides/CLOUDSCRIPT.md +335 -0
  128. package/docs/guides/COCOS_CREATOR_INTEGRATION.md +150 -0
  129. package/docs/guides/CONTENT.md +291 -0
  130. package/docs/guides/DASHBOARD.md +262 -0
  131. package/docs/guides/GAME_PLAYER.md +473 -0
  132. package/docs/guides/GROUP.md +412 -0
  133. package/docs/guides/INVENTORY.md +375 -0
  134. package/docs/guides/MASTER_PLAYER.md +458 -0
  135. package/docs/guides/MULTIPLAYER.md +303 -0
  136. package/docs/guides/STORE_INVENTORY.md +313 -0
  137. package/docs/llms-full.txt +43 -0
  138. package/docs/reference/API_AUTHENTICATE.md +75 -0
  139. package/docs/reference/API_CHARACTER_PLAYER.md +226 -0
  140. package/docs/reference/API_CLOUDSCRIPT.md +82 -0
  141. package/docs/reference/API_CONTENT.md +88 -0
  142. package/docs/reference/API_DASHBOARD.md +82 -0
  143. package/docs/reference/API_GAME_PLAYER.md +223 -0
  144. package/docs/reference/API_GROUP.md +187 -0
  145. package/docs/reference/API_INDEX.md +57 -0
  146. package/docs/reference/API_INVENTORY.md +169 -0
  147. package/docs/reference/API_MASTER_PLAYER.md +323 -0
  148. package/docs/reference/API_MULTIPLAYER.md +97 -0
  149. package/docs/reference/API_STORE_INVENTORY.md +109 -0
  150. package/docs/reference/CONFIG.md +107 -0
  151. package/docs/reference/DTO_INDEX.md +2543 -0
  152. package/docs/reference/ENUMS.md +433 -0
  153. package/docs/reference/ERROR_HANDLING.md +159 -0
  154. package/docs/reference/EVENTS.md +188 -0
  155. package/docs/reference/PERMISSION_RULES.md +55 -0
  156. package/docs/reference/dto/AUTHENTICATE.md +619 -0
  157. package/docs/reference/dto/CHARACTER_PLAYER.md +3686 -0
  158. package/docs/reference/dto/CLOUDSCRIPT.md +400 -0
  159. package/docs/reference/dto/CONTENT.md +548 -0
  160. package/docs/reference/dto/DASHBOARD.md +1980 -0
  161. package/docs/reference/dto/GAME_PLAYER.md +3631 -0
  162. package/docs/reference/dto/GENERIC.md +151 -0
  163. package/docs/reference/dto/GROUP.md +2842 -0
  164. package/docs/reference/dto/INVENTORY.md +2385 -0
  165. package/docs/reference/dto/MASTER_PLAYER.md +6024 -0
  166. package/docs/reference/dto/MULTIPLAYER.md +850 -0
  167. package/docs/reference/dto/STORE_INVENTORY.md +1262 -0
  168. package/llms.txt +47 -0
  169. package/package.json +12 -3
  170. package/GNServerSettings.debug.json +0 -21
  171. package/docs/COCOS_CREATOR_INTEGRATION.md +0 -116
  172. package/examples/cocos-creator/GearNExample.ts.txt +0 -176
  173. package/srcSwift/Package.swift +0 -32
  174. package/srcSwift/Sources/GearN/runtime/GNNetwork.swift +0 -530
  175. package/srcSwift/Sources/GearN/runtime/GNNetworkAuthenticateApi.swift +0 -178
  176. package/srcSwift/Sources/GearN/runtime/GNNetworkCharacterPlayerApi.swift +0 -1162
  177. package/srcSwift/Sources/GearN/runtime/GNNetworkCloudScriptApi.swift +0 -154
  178. package/srcSwift/Sources/GearN/runtime/GNNetworkContentApi.swift +0 -208
  179. package/srcSwift/Sources/GearN/runtime/GNNetworkDashboardApi.swift +0 -240
  180. package/srcSwift/Sources/GearN/runtime/GNNetworkGamePlayerApi.swift +0 -1369
  181. package/srcSwift/Sources/GearN/runtime/GNNetworkGroupApi.swift +0 -1100
  182. package/srcSwift/Sources/GearN/runtime/GNNetworkInventoryApi.swift +0 -937
  183. package/srcSwift/Sources/GearN/runtime/GNNetworkMasterPlayerApi.swift +0 -2323
  184. package/srcSwift/Sources/GearN/runtime/GNNetworkMultiplayerApi.swift +0 -298
  185. package/srcSwift/Sources/GearN/runtime/GNNetworkStoreInventoryApi.swift +0 -397
  186. package/srcSwift/Sources/GearN/runtime/common/Action0.swift +0 -3
  187. package/srcSwift/Sources/GearN/runtime/common/Action1.swift +0 -3
  188. package/srcSwift/Sources/GearN/runtime/common/Action2.swift +0 -3
  189. package/srcSwift/Sources/GearN/runtime/common/Action3.swift +0 -3
  190. package/srcSwift/Sources/GearN/runtime/common/Action4.swift +0 -3
  191. package/srcSwift/Sources/GearN/runtime/common/GNArray.swift +0 -204
  192. package/srcSwift/Sources/GearN/runtime/common/GNData.swift +0 -108
  193. package/srcSwift/Sources/GearN/runtime/common/GNHashtable.swift +0 -200
  194. package/srcSwift/Sources/GearN/runtime/config/GNServerSettings.swift +0 -95
  195. package/srcSwift/Sources/GearN/runtime/constant/Commands.swift +0 -28
  196. package/srcSwift/Sources/GearN/runtime/constant/EventCode.swift +0 -10
  197. package/srcSwift/Sources/GearN/runtime/constant/OperationCode.swift +0 -252
  198. package/srcSwift/Sources/GearN/runtime/constant/ReturnCode.swift +0 -19
  199. package/srcSwift/Sources/GearN/runtime/constant/enumType/ExecuteResponseStatus.swift +0 -9
  200. package/srcSwift/Sources/GearN/runtime/constant/enumType/FriendStatus.swift +0 -8
  201. package/srcSwift/Sources/GearN/runtime/constant/enumType/GoogleLoginType.swift +0 -6
  202. package/srcSwift/Sources/GearN/runtime/constant/enumType/GroupStatus.swift +0 -8
  203. package/srcSwift/Sources/GearN/runtime/constant/enumType/InvalidMemberType.swift +0 -19
  204. package/srcSwift/Sources/GearN/runtime/constant/enumType/ItemType.swift +0 -6
  205. package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingMemberStatus.swift +0 -7
  206. package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingTicketStatus.swift +0 -9
  207. package/srcSwift/Sources/GearN/runtime/constant/enumType/OwnerType.swift +0 -10
  208. package/srcSwift/Sources/GearN/runtime/constant/enumType/PermissionDataItem.swift +0 -6
  209. package/srcSwift/Sources/GearN/runtime/constant/enumType/PushPlatformType.swift +0 -6
  210. package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestRole.swift +0 -7
  211. package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestType.swift +0 -16
  212. package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreItemType.swift +0 -6
  213. package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreReceiveType.swift +0 -9
  214. package/srcSwift/Sources/GearN/runtime/constant/errorCode/ErrorCode.swift +0 -58
  215. package/srcSwift/Sources/GearN/runtime/constant/parameterCode/ParameterCode.swift +0 -672
  216. package/srcSwift/Sources/GearN/runtime/entity/DataMember.swift +0 -196
  217. package/srcSwift/Sources/GearN/runtime/entity/GNMetadata.swift +0 -9
  218. package/srcSwift/Sources/GearN/runtime/entity/InvalidMember.swift +0 -11
  219. package/srcSwift/Sources/GearN/runtime/entity/OperationEvent.swift +0 -38
  220. package/srcSwift/Sources/GearN/runtime/entity/OperationHelper.swift +0 -28
  221. package/srcSwift/Sources/GearN/runtime/entity/OperationRequest.swift +0 -62
  222. package/srcSwift/Sources/GearN/runtime/entity/OperationResponse.swift +0 -98
  223. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateModels.swift +0 -351
  224. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateRequestModels.swift +0 -81
  225. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateResponseModels.swift +0 -108
  226. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerModels.swift +0 -1045
  227. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerRequestModels.swift +0 -821
  228. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerResponseModels.swift +0 -588
  229. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptModels.swift +0 -187
  230. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptRequestModels.swift +0 -84
  231. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptResponseModels.swift +0 -59
  232. package/srcSwift/Sources/GearN/runtime/entity/models/ContentModels.swift +0 -195
  233. package/srcSwift/Sources/GearN/runtime/entity/models/ContentRequestModels.swift +0 -116
  234. package/srcSwift/Sources/GearN/runtime/entity/models/ContentResponseModels.swift +0 -81
  235. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardModels.swift +0 -426
  236. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardRequestModels.swift +0 -160
  237. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardResponseModels.swift +0 -82
  238. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerModels.swift +0 -1334
  239. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerRequestModels.swift +0 -643
  240. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerResponseModels.swift +0 -213
  241. package/srcSwift/Sources/GearN/runtime/entity/models/GenericModels.swift +0 -171
  242. package/srcSwift/Sources/GearN/runtime/entity/models/GroupModels.swift +0 -850
  243. package/srcSwift/Sources/GearN/runtime/entity/models/GroupRequestModels.swift +0 -485
  244. package/srcSwift/Sources/GearN/runtime/entity/models/GroupResponseModels.swift +0 -165
  245. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryModels.swift +0 -679
  246. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryRequestModels.swift +0 -413
  247. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryResponseModels.swift +0 -141
  248. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerModels.swift +0 -378
  249. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerRequestModels.swift +0 -147
  250. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerResponseModels.swift +0 -318
  251. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerModels.swift +0 -319
  252. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerRequestModels.swift +0 -125
  253. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerResponseModels.swift +0 -45
  254. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryModels.swift +0 -633
  255. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryRequestModels.swift +0 -173
  256. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryResponseModels.swift +0 -61
  257. package/srcSwift/Sources/GearN/runtime/entity/request/CustomOperationRequest.swift +0 -42
  258. package/srcSwift/Sources/GearN/runtime/entity/response/CustomOperationResponse.swift +0 -49
  259. package/srcSwift/Sources/GearN/runtime/entity/response/GetAuthInfoResponse.swift +0 -43
  260. package/srcSwift/Sources/GearN/runtime/entity/response/HealthCheckResponse.swift +0 -86
  261. package/srcSwift/Sources/GearN/runtime/entity/response/UploadFileResponse.swift +0 -15
  262. package/srcSwift/Sources/GearN/runtime/helper/CodeHelper.swift +0 -107
  263. package/srcSwift/Sources/GearN/runtime/helper/ConverterService.swift +0 -98
  264. package/srcSwift/Sources/GearN/runtime/helper/EnumUtility.swift +0 -34
  265. package/srcSwift/Sources/GearN/runtime/helper/GNSupport.swift +0 -41
  266. package/srcSwift/Sources/GearN/runtime/helper/GNUtils.swift +0 -66
  267. package/srcSwift/Sources/GearN/runtime/helper/MessagePackConverterService.swift +0 -21
  268. package/srcSwift/Sources/GearN/runtime/helper/StorageService.swift +0 -29
  269. package/srcSwift/Sources/GearN/runtime/logger/GNDebug.swift +0 -33
  270. package/srcSwift/Sources/GearN/runtime/networking/AuthenticateStatus.swift +0 -24
  271. package/srcSwift/Sources/GearN/runtime/networking/IPeer.swift +0 -8
  272. package/srcSwift/Sources/GearN/runtime/networking/NetworkingPeer.swift +0 -368
  273. package/srcSwift/Sources/GearN/runtime/networking/OperationPending.swift +0 -81
  274. package/srcSwift/Sources/GearN/runtime/networking/PeerBase.swift +0 -228
  275. package/srcSwift/Sources/GearN/runtime/networking/handler/IServerEventHandler.swift +0 -20
  276. package/srcSwift/Sources/GearN/runtime/networking/http/HttpPeer.swift +0 -226
  277. package/srcSwift/Sources/GearN/runtime/networking/http/HttpTypes.swift +0 -24
  278. package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingHttpPeerBase.swift +0 -13
  279. package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingPeerUrlSession.swift +0 -125
  280. package/srcSwift/Sources/GearN/runtime/networking/request/NetRequest.swift +0 -19
  281. package/srcSwift/Sources/GearN/runtime/networking/response/NetResponse.swift +0 -13
  282. package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingPeerSocketIOClient.swift +0 -244
  283. package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingSocketPeerBase.swift +0 -59
  284. package/srcSwift/Sources/GearN/runtime/networking/socket/SocketPeer.swift +0 -136
  285. package/tsconfig-build.cocos.json +0 -31
  286. 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
+ }