crowdypy 0.10.0.dev1__tar.gz → 0.11.0.dev1__tar.gz

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 (513) hide show
  1. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/MIGRATION.md +25 -0
  2. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/PKG-INFO +8 -1
  3. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/README.md +7 -0
  4. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/docs/compatibility.md +1 -1
  5. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/docs/parity-matrix.md +21 -4
  6. crowdypy-0.11.0.dev1/operations/channels/BanChannelMember.graphql +16 -0
  7. crowdypy-0.11.0.dev1/operations/channels/UnbanChannelMember.graphql +3 -0
  8. crowdypy-0.11.0.dev1/operations/teams/BanTeamMember.graphql +16 -0
  9. crowdypy-0.11.0.dev1/operations/teams/UnbanTeamMember.graphql +3 -0
  10. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/pyproject.toml +9 -9
  11. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/schema.gql +199 -108
  12. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/__init__.py +24 -0
  13. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_generated/enums.py +1 -1
  14. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_generated/inputs.py +1 -1
  15. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_generated/operations.py +38 -2
  16. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/channels.py +25 -0
  17. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/teams.py +25 -0
  18. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_version.py +1 -1
  19. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/channels.py +25 -0
  20. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/teams.py +25 -0
  21. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/errors.py +34 -0
  22. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/exec_gateway.py +59 -5
  23. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/schemas.v1.json +2 -2
  24. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/fixtures/player-host.v1.json +2 -2
  25. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/test_social_domains.py +23 -0
  26. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_exec_gateway.py +82 -0
  27. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_refusals.py +34 -0
  28. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tools/parity/classifications.toml +3 -0
  29. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/uv.lock +1 -1
  30. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/CMakeLists.txt +1 -1
  31. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/PROVENANCE.md +1 -1
  32. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/exec.hpp +18 -2
  33. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/groups.hpp +86 -0
  34. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/generated/enums.hpp +2 -2
  35. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/generated/operations.hpp +94 -2
  36. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/errors.hpp +27 -0
  37. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/package.json +6 -6
  38. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/domains/exec.cpp +34 -0
  39. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/error_extensions.hpp +1 -0
  40. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdy-studio-diagnostics.v1.json +2 -2
  41. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdyjs-studio-layout.v1.json +2 -2
  42. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/.gitattributes +0 -0
  43. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/.gitignore +0 -0
  44. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/.gitleaks.toml +0 -0
  45. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/AGENTS.md +0 -0
  46. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/CMakeLists.txt +0 -0
  47. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/LICENSE +0 -0
  48. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/SECURITY.md +0 -0
  49. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/benchmarks/README.md +0 -0
  50. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/benchmarks/bench_replication.py +0 -0
  51. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/docs/e2e-coverage.md +0 -0
  52. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/licenses/OpenSSL-LICENSE.txt +0 -0
  53. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/common.hpp +0 -0
  54. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/module.cpp +0 -0
  55. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/replication.hpp +0 -0
  56. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/replication_binding.cpp +0 -0
  57. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/session_binding.cpp +0 -0
  58. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/voice_binding.cpp +0 -0
  59. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/native/wire_binding.cpp +0 -0
  60. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/Actor.graphql +0 -0
  61. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/Actors.graphql +0 -0
  62. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/BatchLookupActors.graphql +0 -0
  63. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/CreateActor.graphql +0 -0
  64. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/DeleteActor.graphql +0 -0
  65. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/UpdateActor.graphql +0 -0
  66. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/actors/UpdateActorState.graphql +0 -0
  67. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/AppAccessTiers.graphql +0 -0
  68. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/AppFeatures.graphql +0 -0
  69. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/AppGrantMemberCandidates.graphql +0 -0
  70. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/AppUserAccessByApp.graphql +0 -0
  71. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/ArchiveAccessTier.graphql +0 -0
  72. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/ClaimFreeAppAccess.graphql +0 -0
  73. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/CreateAccessTier.graphql +0 -0
  74. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/DefineAppFeature.graphql +0 -0
  75. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/GrantAppAccess.graphql +0 -0
  76. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/GrantMyAppAccess.graphql +0 -0
  77. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/GrantTierFeature.graphql +0 -0
  78. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/MyAppAccess.graphql +0 -0
  79. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/RevokeAppAccess.graphql +0 -0
  80. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/RevokeTierFeature.graphql +0 -0
  81. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/RuntimePermissions.graphql +0 -0
  82. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/SuspendAppAccess.graphql +0 -0
  83. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/TierFeatures.graphql +0 -0
  84. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/appAccess/UpdateAccessTier.graphql +0 -0
  85. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/App.graphql +0 -0
  86. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/AppBySlug.graphql +0 -0
  87. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/AppDiscovery.graphql +0 -0
  88. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/AppsForOrg.graphql +0 -0
  89. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/ArchiveApp.graphql +0 -0
  90. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/CodeAdmissions.graphql +0 -0
  91. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/CreateApp.graphql +0 -0
  92. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/MarketplaceApps.graphql +0 -0
  93. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/MyApps.graphql +0 -0
  94. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/PlaceableDatacenters.graphql +0 -0
  95. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/apps/UpdateApp.graphql +0 -0
  96. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/auth/Logout.graphql +0 -0
  97. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/auth/LogoutAllDevices.graphql +0 -0
  98. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/avatars/Avatars.graphql +0 -0
  99. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/billing/AppBudget.graphql +0 -0
  100. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/billing/AppBudgets.graphql +0 -0
  101. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/billing/SetAppBudget.graphql +0 -0
  102. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/billing/WalletBalance.graphql +0 -0
  103. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/billing/WalletTransactions.graphql +0 -0
  104. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/AddChannelMember.graphql +0 -0
  105. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/Channel.graphql +0 -0
  106. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/ChannelMembers.graphql +0 -0
  107. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/ChannelPolicy.graphql +0 -0
  108. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/ChannelRoles.graphql +0 -0
  109. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/Channels.graphql +0 -0
  110. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/CreateChannel.graphql +0 -0
  111. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/CreateChannelRole.graphql +0 -0
  112. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/DeleteChannel.graphql +0 -0
  113. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/DeleteChannelRole.graphql +0 -0
  114. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/JoinChannel.graphql +0 -0
  115. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/LeaveChannel.graphql +0 -0
  116. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/MyChannels.graphql +0 -0
  117. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/RemoveChannelMember.graphql +0 -0
  118. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/RequestToJoinChannel.graphql +0 -0
  119. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/SetChannelMemberRoles.graphql +0 -0
  120. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/SetChannelPolicy.graphql +0 -0
  121. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/UpdateChannel.graphql +0 -0
  122. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/channels/UpdateChannelRole.graphql +0 -0
  123. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/GetChunk.graphql +0 -0
  124. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/GetChunkLods.graphql +0 -0
  125. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/GetChunksByDistance.graphql +0 -0
  126. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/GetVoxelList.graphql +0 -0
  127. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/UpdateChunk.graphql +0 -0
  128. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/UpdateChunkLods.graphql +0 -0
  129. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/chunks/UpdateChunkState.graphql +0 -0
  130. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/crowdyStudio/CrowdyStudio.graphql +0 -0
  131. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/exec/Exec.graphql +0 -0
  132. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/gameApps/GameApps.graphql +0 -0
  133. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/grids/CreateGridChannel.graphql +0 -0
  134. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/grids/GridChannels.graphql +0 -0
  135. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/grids/MintGridToken.graphql +0 -0
  136. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/host/Host.graphql +0 -0
  137. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/inputLog/InputLogMessages.graphql +0 -0
  138. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/inputLog/InputLogSessions.graphql +0 -0
  139. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/marketplace/Marketplace.graphql +0 -0
  140. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/CreateOrgRole.graphql +0 -0
  141. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/CreateOrgToken.graphql +0 -0
  142. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/CreateOrganization.graphql +0 -0
  143. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/DeleteOrgRole.graphql +0 -0
  144. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/InviteOrgMember.graphql +0 -0
  145. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/MemberRoles.graphql +0 -0
  146. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/MyOrganizations.graphql +0 -0
  147. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/OrgMembers.graphql +0 -0
  148. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/OrgPermissions.graphql +0 -0
  149. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/OrgRoles.graphql +0 -0
  150. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/OrgTokens.graphql +0 -0
  151. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/Organization.graphql +0 -0
  152. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/OrganizationBySlug.graphql +0 -0
  153. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/RemoveOrgMember.graphql +0 -0
  154. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/RevokeOrgToken.graphql +0 -0
  155. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/UpdateOrgMemberRoles.graphql +0 -0
  156. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/UpdateOrgRole.graphql +0 -0
  157. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/organizations/UpdateOrgToken.graphql +0 -0
  158. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/payments/CapturePaypalCheckout.graphql +0 -0
  159. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/payments/CreateCheckout.graphql +0 -0
  160. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/payments/MyCheckouts.graphql +0 -0
  161. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/platform/PlatformConfig.graphql +0 -0
  162. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/playerWallet/PlayerWallet.graphql +0 -0
  163. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/quotas/DeleteQuota.graphql +0 -0
  164. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/quotas/EffectiveQuota.graphql +0 -0
  165. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/quotas/QuotasForApp.graphql +0 -0
  166. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/quotas/QuotasForOrg.graphql +0 -0
  167. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/quotas/SetQuota.graphql +0 -0
  168. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/serverStatus/ActiveGraphQLServers.graphql +0 -0
  169. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/serverStatus/GameClientBootstrap.graphql +0 -0
  170. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/serverStatus/GraphqlServers.graphql +0 -0
  171. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/serverStatus/ServerWithLeastClients.graphql +0 -0
  172. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/serverStatus/VersionInfo.graphql +0 -0
  173. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/sharedEnvironment/SharedEnvironment.graphql +0 -0
  174. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/state/DeleteUserAppState.graphql +0 -0
  175. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/state/UpdateUserAppState.graphql +0 -0
  176. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/state/UserAppState.graphql +0 -0
  177. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/state/UserAppStates.graphql +0 -0
  178. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/AddTeamMember.graphql +0 -0
  179. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/CreateTeam.graphql +0 -0
  180. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/CreateTeamRole.graphql +0 -0
  181. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/DeleteTeam.graphql +0 -0
  182. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/DeleteTeamRole.graphql +0 -0
  183. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/JoinTeam.graphql +0 -0
  184. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/LeaveTeam.graphql +0 -0
  185. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/MyTeams.graphql +0 -0
  186. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/RemoveTeamMember.graphql +0 -0
  187. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/RequestToJoinTeam.graphql +0 -0
  188. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/SetTeamMemberRoles.graphql +0 -0
  189. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/SetTeamPolicy.graphql +0 -0
  190. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/Team.graphql +0 -0
  191. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/TeamMembers.graphql +0 -0
  192. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/TeamPolicy.graphql +0 -0
  193. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/TeamRoles.graphql +0 -0
  194. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/Teams.graphql +0 -0
  195. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/UpdateTeam.graphql +0 -0
  196. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teams/UpdateTeamRole.graphql +0 -0
  197. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/teleport/TeleportRequest.graphql +0 -0
  198. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/usage/AppGraphqlOperations.graphql +0 -0
  199. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/usage/AppUsageSummary.graphql +0 -0
  200. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/usage/PlayerPulse.graphql +0 -0
  201. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/DeleteMyAccount.graphql +0 -0
  202. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/FreePlayWindow.graphql +0 -0
  203. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/Me.graphql +0 -0
  204. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/PlayerProfile.graphql +0 -0
  205. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/UpdateGamertag.graphql +0 -0
  206. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/UpdateUserState.graphql +0 -0
  207. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/users/User.graphql +0 -0
  208. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/voxels/ListVoxelUpdatesByDistance.graphql +0 -0
  209. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/voxels/ListVoxels.graphql +0 -0
  210. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/voxels/RollbackVoxelUpdates.graphql +0 -0
  211. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/voxels/UpdateVoxel.graphql +0 -0
  212. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/operations/voxels/VoxelUpdateHistory.graphql +0 -0
  213. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/_pins.py +0 -0
  214. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/assert_default_origin.py +0 -0
  215. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/build_openssl.sh +0 -0
  216. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/check_content_policy.py +0 -0
  217. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/check_pin_tiers.py +0 -0
  218. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/cibw_before_all_linux.sh +0 -0
  219. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/resolve-release-tier.sh +0 -0
  220. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/resolve-release-tier.test.sh +0 -0
  221. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/resolve_pypi_version.py +0 -0
  222. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/stamp_version.py +0 -0
  223. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/ci/verify_artifacts.py +0 -0
  224. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/codegen.py +0 -0
  225. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/schema_drift.py +0 -0
  226. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/schema_sync.py +0 -0
  227. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/unasync.py +0 -0
  228. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/scripts/vendor_crowdycpp.py +0 -0
  229. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_concurrency.py +0 -0
  230. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_default_origin.py +0 -0
  231. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_generated/__init__.py +0 -0
  232. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_grid.py +0 -0
  233. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_native.pyi +0 -0
  234. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_operation.py +0 -0
  235. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/__init__.py +0 -0
  236. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/client.py +0 -0
  237. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/__init__.py +0 -0
  238. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/_base.py +0 -0
  239. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/actors.py +0 -0
  240. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/admin.py +0 -0
  241. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/app_access.py +0 -0
  242. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/apps.py +0 -0
  243. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/auth.py +0 -0
  244. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/avatars.py +0 -0
  245. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/billing.py +0 -0
  246. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/chunks.py +0 -0
  247. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio.py +0 -0
  248. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio_agent.py +0 -0
  249. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio_github.py +0 -0
  250. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/discovery.py +0 -0
  251. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/exec.py +0 -0
  252. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/game_apps.py +0 -0
  253. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/grids.py +0 -0
  254. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/host.py +0 -0
  255. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/input_log.py +0 -0
  256. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/marketplace.py +0 -0
  257. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/organizations.py +0 -0
  258. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/payments.py +0 -0
  259. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/platform.py +0 -0
  260. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/player_wallet.py +0 -0
  261. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/portal.py +0 -0
  262. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/quotas.py +0 -0
  263. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/server_status.py +0 -0
  264. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/shared_environment.py +0 -0
  265. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/state.py +0 -0
  266. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/teleport.py +0 -0
  267. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/udp.py +0 -0
  268. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/usage.py +0 -0
  269. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/users.py +0 -0
  270. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/domains/voxels.py +0 -0
  271. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/graphql.py +0 -0
  272. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/grid_scope.py +0 -0
  273. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/kit/__init__.py +0 -0
  274. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/kit/actions.py +0 -0
  275. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/kit/kit.py +0 -0
  276. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/kit/social.py +0 -0
  277. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/kit/wire.py +0 -0
  278. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/rediscover.py +0 -0
  279. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/stores.py +0 -0
  280. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/_sync/world.py +0 -0
  281. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/auth_state.py +0 -0
  282. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/client.py +0 -0
  283. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/codecs.py +0 -0
  284. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/datacenter_redirect.py +0 -0
  285. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/__init__.py +0 -0
  286. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/_base.py +0 -0
  287. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/actors.py +0 -0
  288. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/admin.py +0 -0
  289. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/app_access.py +0 -0
  290. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/apps.py +0 -0
  291. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/auth.py +0 -0
  292. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/avatars.py +0 -0
  293. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/billing.py +0 -0
  294. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/chunks.py +0 -0
  295. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/crowdy_studio.py +0 -0
  296. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/crowdy_studio_agent.py +0 -0
  297. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/crowdy_studio_github.py +0 -0
  298. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/discovery.py +0 -0
  299. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/exec.py +0 -0
  300. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/game_apps.py +0 -0
  301. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/grids.py +0 -0
  302. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/host.py +0 -0
  303. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/input_log.py +0 -0
  304. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/marketplace.py +0 -0
  305. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/organizations.py +0 -0
  306. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/payments.py +0 -0
  307. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/platform.py +0 -0
  308. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/player_wallet.py +0 -0
  309. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/portal.py +0 -0
  310. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/quotas.py +0 -0
  311. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/server_status.py +0 -0
  312. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/shared_environment.py +0 -0
  313. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/state.py +0 -0
  314. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/teleport.py +0 -0
  315. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/udp.py +0 -0
  316. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/usage.py +0 -0
  317. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/users.py +0 -0
  318. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/domains/voxels.py +0 -0
  319. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/enums.py +0 -0
  320. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/estate.py +0 -0
  321. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/graphql.py +0 -0
  322. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/grid_scope.py +0 -0
  323. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/inputs.py +0 -0
  324. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/kit/__init__.py +0 -0
  325. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/kit/actions.py +0 -0
  326. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/kit/kit.py +0 -0
  327. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/kit/social.py +0 -0
  328. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/kit/wire.py +0 -0
  329. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/lb_cookie.py +0 -0
  330. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/media.py +0 -0
  331. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/pkce.py +0 -0
  332. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/__init__.py +0 -0
  333. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/agent_errors.py +0 -0
  334. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/agent_types.py +0 -0
  335. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/json_schema.py +0 -0
  336. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/schemas.py +0 -0
  337. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/player_host/types.py +0 -0
  338. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/py.typed +0 -0
  339. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/rediscover.py +0 -0
  340. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/replication.py +0 -0
  341. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/session.py +0 -0
  342. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/stores.py +0 -0
  343. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/__init__.py +0 -0
  344. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/client_tick_interval.py +0 -0
  345. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/controller.py +0 -0
  346. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/diagnostics.py +0 -0
  347. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/github_new_repo.py +0 -0
  348. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/layout.py +0 -0
  349. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/models.py +0 -0
  350. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/studio/starter_projects.py +0 -0
  351. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/subscriptions.py +0 -0
  352. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/sync.py +0 -0
  353. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/utils.py +0 -0
  354. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/wire.py +0 -0
  355. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/src/crowdypy/world.py +0 -0
  356. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/conftest.py +0 -0
  357. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/__init__.py +0 -0
  358. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/conftest.py +0 -0
  359. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_identity.py +0 -0
  360. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_input_log.py +0 -0
  361. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_open_grid_exec_gateway.py +0 -0
  362. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_ranged_channel.py +0 -0
  363. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_replication.py +0 -0
  364. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_studio.py +0 -0
  365. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_world.py +0 -0
  366. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/e2e/test_e2e_world_data.py +0 -0
  367. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/fixtures/README.md +0 -0
  368. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/fixtures/binary-wire-fixtures.json +0 -0
  369. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/fixtures/exec-client-frames.json +0 -0
  370. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/fixtures/voice-frames.json +0 -0
  371. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/__init__.py +0 -0
  372. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/__init__.py +0 -0
  373. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/test_crowdycpp_roots.py +0 -0
  374. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/test_input_log_reads.py +0 -0
  375. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/test_org_domains.py +0 -0
  376. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/test_studio_exec_domains.py +0 -0
  377. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/domains/test_world_domains.py +0 -0
  378. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_check_pin_tiers.py +0 -0
  379. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_core.py +0 -0
  380. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_durable_stores.py +0 -0
  381. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_estate_moves.py +0 -0
  382. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_fixture_provenance.py +0 -0
  383. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_grid_scope.py +0 -0
  384. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_kit.py +0 -0
  385. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_lazy_exports.py +0 -0
  386. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_player_host.py +0 -0
  387. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_release_versions.py +0 -0
  388. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_replication.py +0 -0
  389. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_sdk_audience.py +0 -0
  390. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_studio_controller.py +0 -0
  391. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_studio_diagnostics.py +0 -0
  392. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_studio_layout.py +0 -0
  393. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_subscriptions.py +0 -0
  394. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_transport.py +0 -0
  395. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_udp_api.py +0 -0
  396. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_voice_frames.py +0 -0
  397. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_wire.py +0 -0
  398. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tests/unit/test_world_session.py +0 -0
  399. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tools/e2e/provision.py +0 -0
  400. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tools/fixtures/player_host.mjs +0 -0
  401. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/tools/parity/parity.py +0 -0
  402. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/LICENSE +0 -0
  403. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/cmake/CheckPublicHeaders.cmake +0 -0
  404. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/cmake/CrowdyCPPConfig.cmake.in +0 -0
  405. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/cmake/CrowdyFindOpus.cmake +0 -0
  406. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/cmake/studio_layout_fixture.hpp.in +0 -0
  407. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/client.hpp +0 -0
  408. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/base64.hpp +0 -0
  409. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/bytes.hpp +0 -0
  410. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/clock.hpp +0 -0
  411. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/crypto.hpp +0 -0
  412. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/logger.hpp +0 -0
  413. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/result.hpp +0 -0
  414. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/spsc.hpp +0 -0
  415. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/uuid.hpp +0 -0
  416. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/crowdy.hpp +0 -0
  417. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/default_origin.hpp +0 -0
  418. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/admin.hpp +0 -0
  419. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/auth.hpp +0 -0
  420. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio.hpp +0 -0
  421. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_agent.hpp +0 -0
  422. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_github.hpp +0 -0
  423. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/discovery.hpp +0 -0
  424. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/domain_base.hpp +0 -0
  425. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/game_apps.hpp +0 -0
  426. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/grids.hpp +0 -0
  427. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/marketplace.hpp +0 -0
  428. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/player_wallet.hpp +0 -0
  429. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/portal.hpp +0 -0
  430. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/realtime_control.hpp +0 -0
  431. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/server_status.hpp +0 -0
  432. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/types.hpp +0 -0
  433. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/users.hpp +0 -0
  434. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/world_data.hpp +0 -0
  435. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/async_scope.hpp +0 -0
  436. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/auth_state.hpp +0 -0
  437. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/cancel.hpp +0 -0
  438. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/datacenter_redirect.hpp +0 -0
  439. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/dispatcher.hpp +0 -0
  440. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/estate.hpp +0 -0
  441. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/graphql_client.hpp +0 -0
  442. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/http.hpp +0 -0
  443. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/json.hpp +0 -0
  444. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/rediscover.hpp +0 -0
  445. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/subscription_client.hpp +0 -0
  446. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/websocket.hpp +0 -0
  447. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/actions.hpp +0 -0
  448. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/kit.hpp +0 -0
  449. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/social.hpp +0 -0
  450. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/wire.hpp +0 -0
  451. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/opus.hpp +0 -0
  452. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/video_frames.hpp +0 -0
  453. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/voice_frames.hpp +0 -0
  454. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/adapter.hpp +0 -0
  455. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/player_host.hpp +0 -0
  456. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/schemas.hpp +0 -0
  457. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/types.hpp +0 -0
  458. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/connection.hpp +0 -0
  459. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/session_provider.hpp +0 -0
  460. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/types.hpp +0 -0
  461. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/udp_socket.hpp +0 -0
  462. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/chunk_store.hpp +0 -0
  463. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/codec.hpp +0 -0
  464. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/durable.hpp +0 -0
  465. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/keys.hpp +0 -0
  466. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/stores.hpp +0 -0
  467. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/world_session.hpp +0 -0
  468. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/controller.hpp +0 -0
  469. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/diagnostics.hpp +0 -0
  470. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/editor.hpp +0 -0
  471. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github.hpp +0 -0
  472. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github_layout.hpp +0 -0
  473. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/integration.hpp +0 -0
  474. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/layout.hpp +0 -0
  475. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/models.hpp +0 -0
  476. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/runtime.hpp +0 -0
  477. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/wire/codec.hpp +0 -0
  478. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/wire/protocol.hpp +0 -0
  479. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/include/crowdy/world.hpp +0 -0
  480. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/client.cpp +0 -0
  481. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/base64.cpp +0 -0
  482. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/clock.cpp +0 -0
  483. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/crypto_default_unavailable.cpp +0 -0
  484. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/crypto_openssl.cpp +0 -0
  485. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/crypto_unavailable.cpp +0 -0
  486. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/logger.cpp +0 -0
  487. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/core/uuid.cpp +0 -0
  488. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/async_transport.cpp +0 -0
  489. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/auth_state.cpp +0 -0
  490. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/errors.cpp +0 -0
  491. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/graphql_client.cpp +0 -0
  492. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/http_curl.cpp +0 -0
  493. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/http_none.cpp +0 -0
  494. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/json.cpp +0 -0
  495. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/subscription_client.cpp +0 -0
  496. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/websocket_curl.cpp +0 -0
  497. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/graphql/websocket_none.cpp +0 -0
  498. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/media/opus.cpp +0 -0
  499. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/player_host/schemas.cpp +0 -0
  500. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/player_host/types.cpp +0 -0
  501. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/replication/connection.cpp +0 -0
  502. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/replication/socket_errors.hpp +0 -0
  503. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/replication/udp_socket.cpp +0 -0
  504. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/session/world_session.cpp +0 -0
  505. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/studio/diagnostics.cpp +0 -0
  506. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/studio/editor.cpp +0 -0
  507. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/src/studio/integration.cpp +0 -0
  508. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/LICENSE +0 -0
  509. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.c +0 -0
  510. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.h +0 -0
  511. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-client-frames.json +0 -0
  512. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-gateway-cases.json +0 -0
  513. {crowdypy-0.10.0.dev1 → crowdypy-0.11.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/voice-frames.json +0 -0
@@ -3,6 +3,31 @@
3
3
  CrowdyPy is pre-1.0. Within a minor line, patch releases keep source compatibility; each
4
4
  new minor may change the API. Read the section for every minor you skip.
5
5
 
6
+ ## 0.11.0
7
+
8
+ CrowdyJS 18.10.0 and CrowdyCPP 0.63.0. Additive.
9
+
10
+ - **Access that ends ends for good.** ck-exec 0.16 closes a session with code `4403` (now
11
+ `EXEC_CLOSE_ACCESS_ENDED`) and the reason when what it rests on ends: the player's access
12
+ (suspended, revoked, an expired grant), their session (signed out, everywhere too, or the app's
13
+ authorization withdrawn), or the account (blocked). `ExecConnection` and `AsyncExecConnection`
14
+ treat it as final: `on_access_ended(listener)` is called once with the reason, the call in flight
15
+ fails `Denied`, and the connection does not reconnect. Until 0.10.0 it redialed, and the redial
16
+ was refused (HTTP 401 "access ended") after one retry. Tell the player; connect again only once
17
+ they hold access again.
18
+ - **Channel and team bans.** `client.channels.ban(group_id, user_id, reason=None)` /
19
+ `unban(group_id, user_id)` and the same on `client.teams`, with the group's `manage_members`
20
+ permission (never the group's owner, never yourself). A banned user is removed, stops receiving
21
+ the channel, and joining, requesting to join and being added are refused with
22
+ `GROUP_MEMBER_BANNED` until the ban is lifted; leaving or being removed does not lift it.
23
+ - **Two refusal readers.** `account_blocked_of(error)` returns `CrowdyAccountBlocked(blocked_until)`
24
+ for `ACCOUNT_BLOCKED` (a platform operator blocked the account: every request and sign-in is
25
+ refused; `blocked_until` is set for a timed block), and `group_member_banned_of(error)` is `True`
26
+ for `GROUP_MEMBER_BANNED`. Neither is fixed by retrying. `ACCOUNT_BLOCKED_CODE` and
27
+ `GROUP_MEMBER_BANNED_CODE` name the codes.
28
+ - `blockAccount`, `unblockAccount` and `accountBlock` are super-admin operations and are not
29
+ wrapped (`docs/parity-matrix.md`).
30
+
6
31
  ## 0.10.0
7
32
 
8
33
  CrowdyJS 18.9.0 and CrowdyCPP 0.62.0. Additive, with one floor: every sessions read selects
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crowdypy
3
- Version: 0.10.0.dev1
3
+ Version: 0.11.0.dev1
4
4
  Summary: Official Python SDK for Crowded Kingdoms: typed GraphQL clients and a native UDP replication core
5
5
  Keywords: crowded-kingdoms,multiplayer,replication,graphql,sdk,udp
6
6
  Author: Crowded Kingdoms
@@ -51,6 +51,13 @@ CrowdyPy follows the [CrowdyJS](https://github.com/CrowdedKingdoms/CrowdyJS) API
51
51
  client, bound with [nanobind](https://github.com/wjakob/nanobind) and shipped inside the
52
52
  wheel. Python never touches a datagram.
53
53
 
54
+ **v0.11.0: access that ends ends for good, and channel and team bans (CrowdyJS 18.10.0, CrowdyCPP
55
+ 0.63.0).** A host's `4403` close (ck-exec 0.16: the player was suspended, revoked, signed out or
56
+ blocked) is final: `ExecConnection.on_access_ended` hears the reason, the call in flight fails
57
+ `Denied`, and the connection does not redial. `client.channels.ban` / `unban` and
58
+ `client.teams.ban` / `unban` manage bans, and `account_blocked_of` / `group_member_banned_of` read
59
+ the two refusals. See [MIGRATION.md](MIGRATION.md).
60
+
54
61
  **v0.10.0: the input log says what it lost (CrowdyJS 18.9.0, CrowdyCPP 0.62.0).** Every session
55
62
  from `client.input_log.sessions` carries `missingRecords`, the inputs the replication server
56
63
  accepted that never reached the log, which needs the Game API release after v2.40.2. Its
@@ -11,6 +11,13 @@ CrowdyPy follows the [CrowdyJS](https://github.com/CrowdedKingdoms/CrowdyJS) API
11
11
  client, bound with [nanobind](https://github.com/wjakob/nanobind) and shipped inside the
12
12
  wheel. Python never touches a datagram.
13
13
 
14
+ **v0.11.0: access that ends ends for good, and channel and team bans (CrowdyJS 18.10.0, CrowdyCPP
15
+ 0.63.0).** A host's `4403` close (ck-exec 0.16: the player was suspended, revoked, signed out or
16
+ blocked) is final: `ExecConnection.on_access_ended` hears the reason, the call in flight fails
17
+ `Denied`, and the connection does not redial. `client.channels.ban` / `unban` and
18
+ `client.teams.ban` / `unban` manage bans, and `account_blocked_of` / `group_member_banned_of` read
19
+ the two refusals. See [MIGRATION.md](MIGRATION.md).
20
+
14
21
  **v0.10.0: the input log says what it lost (CrowdyJS 18.9.0, CrowdyCPP 0.62.0).** Every session
15
22
  from `client.input_log.sessions` carries `missingRecords`, the inputs the replication server
16
23
  accepted that never reached the log, which needs the Game API release after v2.40.2. Its
@@ -5,7 +5,7 @@ are in `pyproject.toml` (`[project].version`, `[tool.crowdypy.crowdyjs]`,
5
5
  `[tool.crowdypy.crowdycpp]`); `tests/unit/test_release_versions.py` refuses this page when
6
6
  its version disagrees.
7
7
 
8
- - CrowdyPy `0.10.0`
8
+ - CrowdyPy `0.11.0`
9
9
  - API surface: CrowdyJS (the pinned version and commit in `pyproject.toml`); the generated
10
10
  `docs/parity-matrix.md` lists every covered method, every native equivalent and every
11
11
  browser exclusion with its reason. The gate is strict: there are no portable gaps, and a
@@ -4,17 +4,17 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
4
4
 
5
5
  ## Target
6
6
 
7
- - CrowdyJS: `18.9.0` at `cee1997127549e372c57baab2f0e12f1f423f31a`
8
- - CrowdyCPP (native core): `0.62.0` at `3845e797d06e788f5a7c0d8e1e3fd6d501c75693`
7
+ - CrowdyJS: `18.10.0` at `b3e2de96ae738d272488ca06ab6de2c792aef14f`
8
+ - CrowdyCPP (native core): `0.63.0` at `8682d39ab9cd368996eb35b76e6dfb10b43b7d62`
9
9
  - schema.gql identical to CrowdyJS's: yes
10
10
  - Gate mode: strict portable parity (every portable gap is release-blocking)
11
11
 
12
12
  ## Summary
13
13
 
14
- - Covered: 1066
14
+ - Covered: 1080
15
15
  - Portable gap: 0
16
16
  - Native equivalent: 42
17
- - Browser exclusion: 110
17
+ - Browser exclusion: 113
18
18
  - Deprecated roots: 2
19
19
  - Unclassified: 0
20
20
 
@@ -33,8 +33,11 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
33
33
  | `mutation.assignGridOwnership` | covered |
34
34
  | `mutation.assignGroupToGrid` | covered |
35
35
  | `mutation.authorizeApp` | covered |
36
+ | `mutation.banChannelMember` | covered |
37
+ | `mutation.banTeamMember` | covered |
36
38
  | `mutation.beginGamePublish` | browser exclusion — publishes and administers browser game bundles on the Crowdy Games web host; a Python client has no bundle to publish |
37
39
  | `mutation.beginPlayerCardSetup` | covered |
40
+ | `mutation.blockAccount` | browser exclusion — super-admin or operator only; the SDK wraps nothing for platform roles (tooling calls it directly) |
38
41
  | `mutation.cancelSharedSubscription` | covered |
39
42
  | `mutation.capturePaypalCheckout` | covered |
40
43
  | `mutation.changePassword` | covered |
@@ -220,6 +223,9 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
220
223
  | `mutation.teleportRequest` | covered |
221
224
  | `mutation.transferGridOwnership` | covered |
222
225
  | `mutation.transferPlayerCodeListing` | covered |
226
+ | `mutation.unbanChannelMember` | covered |
227
+ | `mutation.unbanTeamMember` | covered |
228
+ | `mutation.unblockAccount` | browser exclusion — super-admin or operator only; the SDK wraps nothing for platform roles (tooling calls it directly) |
223
229
  | `mutation.unlinkIdentity` | covered |
224
230
  | `mutation.unsuspendAppAccess` | covered |
225
231
  | `mutation.updateAccessTier` | covered |
@@ -244,6 +250,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
244
250
  | `mutation.updateUserState` | covered |
245
251
  | `mutation.updateUserType` | browser exclusion — super-admin or operator only; the SDK wraps nothing for platform roles (tooling calls it directly) |
246
252
  | `mutation.updateVoxel` | covered |
253
+ | `query.accountBlock` | browser exclusion — super-admin or operator only; the SDK wraps nothing for platform roles (tooling calls it directly) |
247
254
  | `query.activeGraphQLServers` | covered |
248
255
  | `query.actor` | covered |
249
256
  | `query.actors` | covered |
@@ -618,6 +625,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
618
625
  | `ChannelInbox.onMessage` | covered |
619
626
  | `ChannelInbox.send` | covered |
620
627
  | `ChannelsAPI.addMember` | covered |
628
+ | `ChannelsAPI.ban` | covered |
621
629
  | `ChannelsAPI.create` | covered |
622
630
  | `ChannelsAPI.createRole` | covered |
623
631
  | `ChannelsAPI.deleteRole` | covered |
@@ -634,6 +642,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
634
642
  | `ChannelsAPI.roles` | covered |
635
643
  | `ChannelsAPI.setMemberRoles` | covered |
636
644
  | `ChannelsAPI.setPolicy` | covered |
645
+ | `ChannelsAPI.unban` | covered |
637
646
  | `ChannelsAPI.update` | covered |
638
647
  | `ChannelsAPI.updateRole` | covered |
639
648
  | `ChunkStore.ensureAround` | covered |
@@ -795,6 +804,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
795
804
  | `ExecConnection.close` | covered |
796
805
  | `ExecConnection.connect` | covered |
797
806
  | `ExecConnection.host` | covered |
807
+ | `ExecConnection.onAccessEnded` | covered |
798
808
  | `ExecConnection.onReconnect` | covered |
799
809
  | `ExecConnection.open` | covered |
800
810
  | `ExecConnection.ping` | covered |
@@ -1007,6 +1017,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1007
1017
  | `StudioLayoutController.subscribe` | covered |
1008
1018
  | `StudioLayoutController.toggle` | covered |
1009
1019
  | `TeamsAPI.addMember` | covered |
1020
+ | `TeamsAPI.ban` | covered |
1010
1021
  | `TeamsAPI.create` | covered |
1011
1022
  | `TeamsAPI.createRole` | covered |
1012
1023
  | `TeamsAPI.deleteRole` | covered |
@@ -1023,6 +1034,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1023
1034
  | `TeamsAPI.roles` | covered |
1024
1035
  | `TeamsAPI.setMemberRoles` | covered |
1025
1036
  | `TeamsAPI.setPolicy` | covered |
1037
+ | `TeamsAPI.unban` | covered |
1026
1038
  | `TeamsAPI.update` | covered |
1027
1039
  | `TeamsAPI.updateRole` | covered |
1028
1040
  | `TeleportAPI.request` | covered |
@@ -1080,6 +1092,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1080
1092
  | `ACCESS_NOT_GRANTED_CODE` | covered |
1081
1093
  | `ACCESS_REVOKED_CODE` | covered |
1082
1094
  | `ACCESS_SUSPENDED_CODE` | covered |
1095
+ | `ACCOUNT_BLOCKED_CODE` | covered |
1083
1096
  | `ACTOR_EXISTS_CODE` | covered |
1084
1097
  | `APP_PAUSED_CODE` | covered |
1085
1098
  | `APP_UNAVAILABLE_CODE` | covered |
@@ -1119,6 +1132,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1119
1132
  | `EXEC_CLIENT_ABI_IMPORTS` | covered |
1120
1133
  | `EXEC_CLIENT_ABI_VERSION` | covered |
1121
1134
  | `EXEC_CLIENT_HOST_CALLS` | browser exclusion — page-side broker for player WASM in the browser glue Web Worker (worker lifecycle, host-call allowlists, rate caps, watchdogs) |
1135
+ | `EXEC_CLOSE_ACCESS_ENDED` | covered |
1122
1136
  | `EXEC_STATUSES` | covered |
1123
1137
  | `ExecModScope` | covered |
1124
1138
  | `FLAG_GROUNDED` | covered |
@@ -1130,6 +1144,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1130
1144
  | `GLUE_INVOKE_REPLY_MAX_BYTES` | browser exclusion — glue that instantiates player WASM inside the browser Web Worker (CLIENT ABI imports, ck_fuel, watchdog) |
1131
1145
  | `GLUE_LOG_MAX_BYTES` | browser exclusion — glue that instantiates player WASM inside the browser Web Worker (CLIENT ABI imports, ck_fuel, watchdog) |
1132
1146
  | `GLUE_STATE_MAX_BYTES` | browser exclusion — glue that instantiates player WASM inside the browser Web Worker (CLIENT ABI imports, ck_fuel, watchdog) |
1147
+ | `GROUP_MEMBER_BANNED_CODE` | covered |
1133
1148
  | `GameKitClient` | covered |
1134
1149
  | `GlueRuntime` | browser exclusion — glue that instantiates player WASM inside the browser Web Worker (CLIENT ABI imports, ck_fuel, watchdog) |
1135
1150
  | `GraphQLTransport` | native equivalent — pass an httpx.AsyncClient / httpx.Client as http_client= (transport, proxies, HTTP/2, timeouts) |
@@ -1173,6 +1188,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1173
1188
  | `WRONG_DATACENTER_CODE` | covered |
1174
1189
  | `WireMessageType` | native equivalent — the same codec, CrowdyCPP's, through crowdypy.wire: crowdypy.wire.MessageType |
1175
1190
  | `accessRefusalOf` | covered |
1191
+ | `accountBlockedOf` | covered |
1176
1192
  | `actorExistsOf` | covered |
1177
1193
  | `appPausedOf` | covered |
1178
1194
  | `armGlueRequest` | browser exclusion — SharedArrayBuffer + Atomics bridge between the page and the glue Web Worker |
@@ -1205,6 +1221,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1205
1221
  | `generateState` | covered |
1206
1222
  | `glueDecoder` | browser exclusion — SharedArrayBuffer + Atomics bridge between the page and the glue Web Worker |
1207
1223
  | `glueEncoder` | browser exclusion — SharedArrayBuffer + Atomics bridge between the page and the glue Web Worker |
1224
+ | `groupMemberBannedOf` | covered |
1208
1225
  | `isAlreadyRegisteredError` | covered |
1209
1226
  | `isAppPaused` | covered |
1210
1227
  | `isHostedSignInRequiredError` | covered |
@@ -0,0 +1,16 @@
1
+ mutation BanChannelMember($groupId: BigInt!, $userId: BigInt!, $reason: String) {
2
+ banChannelMember(groupId: $groupId, userId: $userId, reason: $reason) {
3
+ groupMemberId
4
+ groupId
5
+ userId
6
+ status
7
+ createdAt
8
+ roles {
9
+ groupRoleId
10
+ roleName
11
+ rank
12
+ isSystem
13
+ permissions
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,3 @@
1
+ mutation UnbanChannelMember($groupId: BigInt!, $userId: BigInt!) {
2
+ unbanChannelMember(groupId: $groupId, userId: $userId)
3
+ }
@@ -0,0 +1,16 @@
1
+ mutation BanTeamMember($groupId: BigInt!, $userId: BigInt!, $reason: String) {
2
+ banTeamMember(groupId: $groupId, userId: $userId, reason: $reason) {
3
+ groupMemberId
4
+ groupId
5
+ userId
6
+ status
7
+ createdAt
8
+ roles {
9
+ groupRoleId
10
+ roleName
11
+ rank
12
+ isSystem
13
+ permissions
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,3 @@
1
+ mutation UnbanTeamMember($groupId: BigInt!, $userId: BigInt!) {
2
+ unbanTeamMember(groupId: $groupId, userId: $userId)
3
+ }
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
4
4
 
5
5
  [project]
6
6
  name = "crowdypy"
7
- version = "0.10.0.dev1"
7
+ version = "0.11.0.dev1"
8
8
  description = "Official Python SDK for Crowded Kingdoms: typed GraphQL clients and a native UDP replication core"
9
9
  readme = "README.md"
10
10
  license = "MIT AND Apache-2.0"
@@ -119,20 +119,20 @@ environment = { OPENSSL_ROOT_DIR = "C:/vcpkg/installed/x64-windows-static-md" }
119
119
  # --------------------------------------------------------------------------------------
120
120
 
121
121
  [tool.crowdypy.crowdyjs]
122
- version = "18.9.0"
123
- commit = "cee1997127549e372c57baab2f0e12f1f423f31a"
122
+ version = "18.10.0"
123
+ commit = "b3e2de96ae738d272488ca06ab6de2c792aef14f"
124
124
 
125
125
  [tool.crowdypy.crowdycpp]
126
- version = "0.62.0"
127
- tag = "dev/v0.62.0"
128
- commit = "3845e797d06e788f5a7c0d8e1e3fd6d501c75693"
129
- tree-sha256 = "8a8226aa148e1c56ff620812ebaadb1fad757ebd5b801489cb1ec59e9cfe2695"
126
+ version = "0.63.0"
127
+ tag = "dev/v0.63.0"
128
+ commit = "8682d39ab9cd368996eb35b76e6dfb10b43b7d62"
129
+ tree-sha256 = "318b0db6138c877a666261fe71d1fc8bb2a644f333f3c927487f435371856c87"
130
130
 
131
131
  # schema.gql and operations/ are CrowdyJS's, copied from the commit pinned above by
132
132
  # scripts/schema_sync.py, which records these hashes and re-derives them in CI.
133
133
  [tool.crowdypy.graphql]
134
- schema-sha256 = "4b19bc84aa340365f6a256dc10544ce9141d18437048867607c8a2d0e74a66de"
135
- operations-sha256 = "013595fe2109633245b5c39446e884fad0ecb7d2fda3c2849c6087a5e6336f6c"
134
+ schema-sha256 = "3cdc1b7196de4a006ab595401e7ff09b6549a79e346d43356e2162653e59c43e"
135
+ operations-sha256 = "37b1e06dc4e997bb42506968c50698a184934581a6d94d9471a29d2ce74ff3d3"
136
136
 
137
137
  # The SDL the docs site publishes. scripts/schema_drift.py compares the snapshot against it
138
138
  # on a schedule; nothing on the per-commit path reads the network.
@@ -198,6 +198,132 @@ type GraphQLServer {
198
198
  updatedAt: DateTime!
199
199
  }
200
200
 
201
+ """
202
+ A platform-wide block on an account, set by a super-admin. While it holds, every sign-in and every authenticated request is refused with ACCOUNT_BLOCKED, on CK and on Crowd Altar, and every session, realtime connection and ck-exec socket the account had was ended when it was set. The last block stays readable after it is lifted or lapses.
203
+ """
204
+ type AccountBlock {
205
+ """The account."""
206
+ userId: BigInt!
207
+ """Whether the block holds now."""
208
+ blocked: Boolean!
209
+ """When the last block was set; null if the account was never blocked."""
210
+ blockedAt: DateTime
211
+ """When it lapses (or was lifted); null while it lasts until lifted."""
212
+ blockedUntil: DateTime
213
+ """Why, as the super-admin wrote it."""
214
+ reason: String
215
+ """The super-admin who set it."""
216
+ blockedBy: BigInt
217
+ }
218
+
219
+ """
220
+ A free or purchasable access tier for an app, bundling a price and the set of runtime permission keys that granted users receive.
221
+ """
222
+ type AppAccessTier {
223
+ """Unique numeric id of the tier (primary key)."""
224
+ tierId: BigInt!
225
+ """Numeric id of the app this tier belongs to."""
226
+ appId: BigInt!
227
+ """Display name of the tier (e.g. "Free", "Pro")."""
228
+ name: String!
229
+ """
230
+ Sort order for displaying tiers (ascending); lower values appear first.
231
+ """
232
+ tierOrder: Float!
233
+ """True if the tier has no purchase cost."""
234
+ isFree: Boolean!
235
+ """
236
+ True if this is the app default tier (used for open-by-default / self-service grants). At most one default per app is expected.
237
+ """
238
+ isDefault: Boolean!
239
+ """
240
+ Price in the smallest currency unit (cents) for paid tiers; null for free tiers.
241
+ """
242
+ priceCents: BigInt
243
+ """ISO 4217 currency code for priceCents (e.g. "usd"); defaults to "usd"."""
244
+ currency: String
245
+ """
246
+ Billing cadence for recurring tiers (e.g. "month", "year"); null for one-time or free tiers.
247
+ """
248
+ billingPeriod: String
249
+ """Optional marketing description of what the tier includes."""
250
+ description: String
251
+ """
252
+ Runtime permission keys granted to users on this tier (a subset of runtimePermissions), e.g. "access", "teleport", "update_voxel_data", "use_voice_chat", "use_video_chat" (webcam; not granted by default).
253
+ """
254
+ permissionKeys: [String!]!
255
+ """
256
+ Tier lifecycle: "active" or "archived" (soft-deleted via archiveAccessTier). Defaults to "active".
257
+ """
258
+ status: String!
259
+ """Timestamp when the tier was created."""
260
+ createdAt: DateTime!
261
+ """Timestamp when the tier was last updated."""
262
+ updatedAt: DateTime!
263
+ }
264
+
265
+ """
266
+ A user's entitlement to a specific app: whether (and via which tier) they may access it. At most one row per (app, user).
267
+ """
268
+ type AppUserAccess {
269
+ """Unique numeric id of this access record (primary key)."""
270
+ appUserAccessId: BigInt!
271
+ """Numeric id of the app this access applies to."""
272
+ appId: BigInt!
273
+ """Numeric id of the user this access belongs to."""
274
+ userId: BigInt!
275
+ """
276
+ Numeric id of the access tier granting this access; null if access was granted without a specific tier.
277
+ """
278
+ tierId: BigInt
279
+ """
280
+ Entitlement lifecycle: "active" (currently entitled) or "revoked" (access removed). Only active, non-expired rows grant runtime access. Defaults to "active".
281
+ """
282
+ status: String!
283
+ """
284
+ Who granted this access: the granting admin's numeric user id (as a string), or "system" for automatic/free-tier grants.
285
+ """
286
+ grantedBy: String!
287
+ """
288
+ External billing subscription id (e.g. Stripe/PayPal) backing a paid grant; null for free or manual grants.
289
+ """
290
+ subscriptionId: String
291
+ """
292
+ Optional expiry timestamp; access is treated as inactive once it has passed. Null means the grant does not expire.
293
+ """
294
+ expiresAt: DateTime
295
+ """
296
+ A timed suspension: while this time is in the future the player holds no access (a gameplay token is refused with ACCESS_SUSPENDED and realtime sessions end), and access returns by itself once it passes. Null when the player is not suspended. Set with suspendAppAccess, cleared with unsuspendAppAccess.
297
+ """
298
+ suspendedUntil: DateTime
299
+ """Timestamp when the access record was first created."""
300
+ createdAt: DateTime!
301
+ """
302
+ Timestamp when the access record was last updated (e.g. re-granted or revoked).
303
+ """
304
+ updatedAt: DateTime!
305
+ """
306
+ The user this access record belongs to. Null if the user could not be loaded.
307
+ """
308
+ user: User
309
+ """
310
+ The access tier granted by this record. Null if no tier is associated (tierId is null) or the tier could not be loaded.
311
+ """
312
+ tier: AppAccessTier
313
+ }
314
+
315
+ """
316
+ Org member eligible for app access grants. Scoped to the app org; requires manage_access_tiers.
317
+ """
318
+ type AppGrantMemberCandidate {
319
+ """Numeric id of the candidate user (use with grantAppAccess)."""
320
+ userId: BigInt!
321
+ """Email of the candidate, if known."""
322
+ email: String
323
+ """Gamertag / display handle of the candidate, if set."""
324
+ gamertag: String
325
+ }
326
+
201
327
  """The signed-in identity behind a bearer token."""
202
328
  type ActorType {
203
329
  """
@@ -551,114 +677,6 @@ type AvatarDTO {
551
677
  createdAt: DateTime!
552
678
  }
553
679
 
554
- """
555
- A free or purchasable access tier for an app, bundling a price and the set of runtime permission keys that granted users receive.
556
- """
557
- type AppAccessTier {
558
- """Unique numeric id of the tier (primary key)."""
559
- tierId: BigInt!
560
- """Numeric id of the app this tier belongs to."""
561
- appId: BigInt!
562
- """Display name of the tier (e.g. "Free", "Pro")."""
563
- name: String!
564
- """
565
- Sort order for displaying tiers (ascending); lower values appear first.
566
- """
567
- tierOrder: Float!
568
- """True if the tier has no purchase cost."""
569
- isFree: Boolean!
570
- """
571
- True if this is the app default tier (used for open-by-default / self-service grants). At most one default per app is expected.
572
- """
573
- isDefault: Boolean!
574
- """
575
- Price in the smallest currency unit (cents) for paid tiers; null for free tiers.
576
- """
577
- priceCents: BigInt
578
- """ISO 4217 currency code for priceCents (e.g. "usd"); defaults to "usd"."""
579
- currency: String
580
- """
581
- Billing cadence for recurring tiers (e.g. "month", "year"); null for one-time or free tiers.
582
- """
583
- billingPeriod: String
584
- """Optional marketing description of what the tier includes."""
585
- description: String
586
- """
587
- Runtime permission keys granted to users on this tier (a subset of runtimePermissions), e.g. "access", "teleport", "update_voxel_data", "use_voice_chat", "use_video_chat" (webcam; not granted by default).
588
- """
589
- permissionKeys: [String!]!
590
- """
591
- Tier lifecycle: "active" or "archived" (soft-deleted via archiveAccessTier). Defaults to "active".
592
- """
593
- status: String!
594
- """Timestamp when the tier was created."""
595
- createdAt: DateTime!
596
- """Timestamp when the tier was last updated."""
597
- updatedAt: DateTime!
598
- }
599
-
600
- """
601
- A user's entitlement to a specific app: whether (and via which tier) they may access it. At most one row per (app, user).
602
- """
603
- type AppUserAccess {
604
- """Unique numeric id of this access record (primary key)."""
605
- appUserAccessId: BigInt!
606
- """Numeric id of the app this access applies to."""
607
- appId: BigInt!
608
- """Numeric id of the user this access belongs to."""
609
- userId: BigInt!
610
- """
611
- Numeric id of the access tier granting this access; null if access was granted without a specific tier.
612
- """
613
- tierId: BigInt
614
- """
615
- Entitlement lifecycle: "active" (currently entitled) or "revoked" (access removed). Only active, non-expired rows grant runtime access. Defaults to "active".
616
- """
617
- status: String!
618
- """
619
- Who granted this access: the granting admin's numeric user id (as a string), or "system" for automatic/free-tier grants.
620
- """
621
- grantedBy: String!
622
- """
623
- External billing subscription id (e.g. Stripe/PayPal) backing a paid grant; null for free or manual grants.
624
- """
625
- subscriptionId: String
626
- """
627
- Optional expiry timestamp; access is treated as inactive once it has passed. Null means the grant does not expire.
628
- """
629
- expiresAt: DateTime
630
- """
631
- A timed suspension: while this time is in the future the player holds no access (a gameplay token is refused with ACCESS_SUSPENDED and realtime sessions end), and access returns by itself once it passes. Null when the player is not suspended. Set with suspendAppAccess, cleared with unsuspendAppAccess.
632
- """
633
- suspendedUntil: DateTime
634
- """Timestamp when the access record was first created."""
635
- createdAt: DateTime!
636
- """
637
- Timestamp when the access record was last updated (e.g. re-granted or revoked).
638
- """
639
- updatedAt: DateTime!
640
- """
641
- The user this access record belongs to. Null if the user could not be loaded.
642
- """
643
- user: User
644
- """
645
- The access tier granted by this record. Null if no tier is associated (tierId is null) or the tier could not be loaded.
646
- """
647
- tier: AppAccessTier
648
- }
649
-
650
- """
651
- Org member eligible for app access grants. Scoped to the app org; requires manage_access_tiers.
652
- """
653
- type AppGrantMemberCandidate {
654
- """Numeric id of the candidate user (use with grantAppAccess)."""
655
- userId: BigInt!
656
- """Email of the candidate, if known."""
657
- email: String
658
- """Gamertag / display handle of the candidate, if set."""
659
- gamertag: String
660
- }
661
-
662
680
  type TeleportResponse {
663
681
  """
664
682
  True when the teleport is authorized/accepted; false otherwise (inspect errorCode for the reason).
@@ -6605,6 +6623,13 @@ type Query {
6605
6623
  query: String
6606
6624
  ): UsersConnection! @requiresPermission(scope: "super_admin", permission: "is_super_admin")
6607
6625
  """
6626
+ ADMIN: the target account's platform-wide block: whether it holds now, and the last one set (who, when, why, until). Requires a super-admin bearer game token.
6627
+ """
6628
+ accountBlock(
6629
+ """Target user id (BigInt as a decimal string)."""
6630
+ userId: BigInt!
6631
+ ): AccountBlock! @requiresPermission(scope: "super_admin", permission: "is_super_admin")
6632
+ """
6608
6633
  Lists the avatars owned by `userId`. Requires a valid game token. Owner-aware: when the caller is NOT the owner, each avatar’s `privateState` is stripped (returned null); `publicState` is always included. State blobs are base64-encoded binary.
6609
6634
  """
6610
6635
  userAvatars(
@@ -8383,6 +8408,28 @@ type Mutation {
8383
8408
  userId: BigInt!
8384
8409
  ): Boolean! @requiresPermission(scope: "super_admin", permission: "is_super_admin")
8385
8410
  """
8411
+ ADMIN/DESTRUCTIVE: blocks an account platform-wide. Every session and app token it holds is revoked, its realtime sessions and ck-exec sockets (developer sessions too) end in every datacenter, its mods stop, and every later sign-in and request, on CK and on Crowd Altar, is refused with ACCOUNT_BLOCKED until `until` (or until unblockAccount when absent). Not yourself, not a super-admin. Requires a super-admin bearer game token.
8412
+ """
8413
+ blockAccount(
8414
+ """Target user id (BigInt as a decimal string)."""
8415
+ userId: BigInt!
8416
+ """
8417
+ Why (1 to 500 characters). Kept on the account; shown to super-admins, not to the account.
8418
+ """
8419
+ reason: String!
8420
+ """
8421
+ When the block lapses by itself (ISO-8601, in the future). Absent: until unblockAccount.
8422
+ """
8423
+ until: DateTime
8424
+ ): AccountBlock! @requiresPermission(scope: "super_admin", permission: "is_super_admin")
8425
+ """
8426
+ ADMIN: lifts an account block now. Nothing is restored; the account signs in again. The last block stays readable through accountBlock. Requires a super-admin bearer game token.
8427
+ """
8428
+ unblockAccount(
8429
+ """Target user id (BigInt as a decimal string)."""
8430
+ userId: BigInt!
8431
+ ): AccountBlock! @requiresPermission(scope: "super_admin", permission: "is_super_admin")
8432
+ """
8386
8433
  DESTRUCTIVE self-service: soft-deletes the authenticated caller's OWN account — anonymizes PII and revokes all sessions; wallet, voxel, and donation history stay intact via FK. Acts only on the caller (no target argument). Requires a valid game token.
8387
8434
  """
8388
8435
  deleteMyAccount: Boolean!
@@ -9568,6 +9615,28 @@ type Mutation {
9568
9615
  userId: BigInt!
9569
9616
  ): Boolean! @requiresPermission(scope: "group", permission: "manage_members", scopeArg: "groupId")
9570
9617
  """
9618
+ Ban a user from a team: their membership (or a new row, for someone not yet in it) becomes 'banned' and their roles go, and joining, requesting to join and being added are refused with GROUP_MEMBER_BANNED until unbanTeamMember. Leaving or removing does not lift a ban. Requires the 'manage_members' team permission (app admins bypass). Never the team's owner, never yourself.
9619
+ """
9620
+ banTeamMember(
9621
+ """The team to ban the user from."""
9622
+ groupId: BigInt!
9623
+ """The user to ban."""
9624
+ userId: BigInt!
9625
+ """
9626
+ Why, for the team managers (at most 500 characters). Not shown to the banned user.
9627
+ """
9628
+ reason: String
9629
+ ): GroupMember! @requiresPermission(scope: "group", permission: "manage_members", scopeArg: "groupId")
9630
+ """
9631
+ Lift a team ban, so the user may join or be added again (nothing is restored). Requires the 'manage_members' team permission (app admins bypass). Returns true if there was a ban.
9632
+ """
9633
+ unbanTeamMember(
9634
+ """The team."""
9635
+ groupId: BigInt!
9636
+ """The banned user."""
9637
+ userId: BigInt!
9638
+ ): Boolean! @requiresPermission(scope: "group", permission: "manage_members", scopeArg: "groupId")
9639
+ """
9571
9640
  Replace a member's roles with the given set (not additive — roles not listed are removed). Requires the 'manage_roles' team permission (app admins bypass).
9572
9641
  """
9573
9642
  setTeamMemberRoles(
@@ -9682,6 +9751,28 @@ type Mutation {
9682
9751
  userId: BigInt!
9683
9752
  ): Boolean! @requiresPermission(scope: "group", permission: "manage_members", scopeArg: "groupId")
9684
9753
  """
9754
+ Ban a user from a channel: their membership (or a new row, for someone not yet in it) becomes 'banned', their roles go, Buddy stops routing the channel to and from them, and joining, requesting to join and being added are refused with GROUP_MEMBER_BANNED until unbanChannelMember. Leaving or removing does not lift a ban. Requires the 'manage_members' channel permission (app admins bypass). Never the channel's owner, never yourself.
9755
+ """
9756
+ banChannelMember(
9757
+ """The channel to ban the user from."""
9758
+ groupId: BigInt!
9759
+ """The user to ban."""
9760
+ userId: BigInt!
9761
+ """
9762
+ Why, for the channel managers (at most 500 characters). Not shown to the banned user.
9763
+ """
9764
+ reason: String
9765
+ ): GroupMember! @requiresPermission(scope: "group", permission: "manage_members", scopeArg: "groupId")
9766
+ """
9767
+ Lift a channel ban, so the user may join or be added again (nothing is restored). Requires the 'manage_members' channel permission (app admins bypass). Returns true if there was a ban.
9768
+ """
9769
+ unbanChannelMember(
9770
+ """The channel."""
9771
+ groupId: BigInt!
9772
+ """The banned user."""
9773
+ userId: BigInt!
9774
+ ): Boolean! @requiresPermission(scope: "group", permission: "manage_members", scopeArg: "groupId")
9775
+ """
9685
9776
  Replace a member's channel roles with the given set (not additive — roles not listed are removed). Requires the 'manage_roles' channel permission (app admins bypass). Re-pushes the member's effective send permission to Buddy so their ability to post updates immediately.
9686
9777
  """
9687
9778
  setChannelMemberRoles(