@crowdedkingdoms/crowdyjs 18.0.3-dev.1 → 18.1.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +54 -0
- package/README.md +19 -2
- package/dist/domains/apps.d.ts +4 -0
- package/dist/domains/apps.d.ts.map +1 -1
- package/dist/domains/apps.js +4 -0
- package/dist/domains/exec.d.ts +33 -5
- package/dist/domains/exec.d.ts.map +1 -1
- package/dist/domains/exec.js +142 -11
- package/dist/domains/gameApps.d.ts +26 -1
- package/dist/domains/gameApps.d.ts.map +1 -1
- package/dist/domains/gameApps.js +37 -1
- package/dist/generated/graphql.d.ts +78 -11
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +8 -6
- package/dist/grid-scope.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/stores/chunks.d.ts +46 -2
- package/dist/stores/chunks.d.ts.map +1 -1
- package/dist/stores/chunks.js +111 -12
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/domains/gameApps.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GridOwnershipDocument, AssignGridOwnershipDocument, TransferGridOwnershipDocument, GridUserPermissionsDocument, NearbyGridPermissionsDocument, NearbyGridsDocument, GridPermissionLimitsDocument, GridGroupGrantsDocument, CreateGridDocument, DeleteGridDocument, GrantGridPermissionsDocument, RevokeGridPermissionsDocument, SetGridPermissionLimitsDocument, AssignGroupToGridDocument, RevokeGroupFromGridDocument, } from '../generated/graphql.js';
|
|
1
|
+
import { GridOwnershipDocument, AssignGridOwnershipDocument, TransferGridOwnershipDocument, GridUserPermissionsDocument, NearbyGridPermissionsDocument, NearbyGridsDocument, GridPermissionLimitsDocument, GridOpenPermissionsDocument, GridGroupGrantsDocument, CreateGridDocument, DeleteGridDocument, GrantGridPermissionsDocument, RevokeGridPermissionsDocument, SetGridPermissionLimitsDocument, SetGridOpenPermissionsDocument, AssignGroupToGridDocument, RevokeGroupFromGridDocument, } from '../generated/graphql.js';
|
|
2
2
|
/**
|
|
3
3
|
* App grids + grid runtime-permission administration — exposed as
|
|
4
4
|
* `client.gameApps` (and grouped under `client.admin`).
|
|
@@ -98,6 +98,21 @@ export class GameAppsAPI {
|
|
|
98
98
|
});
|
|
99
99
|
return data.gridPermissionLimits;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Read the keys a grid grants every player with active access to the app
|
|
103
|
+
* (an open build area, a public arena). Empty means the grid is not open.
|
|
104
|
+
*
|
|
105
|
+
* @param appId - App that owns the grid.
|
|
106
|
+
* @param gridId - Grid whose open keys to read.
|
|
107
|
+
* @returns The grid's open keys.
|
|
108
|
+
*/
|
|
109
|
+
async openPermissions(appId, gridId) {
|
|
110
|
+
const data = await this.graphql.request(GridOpenPermissionsDocument, {
|
|
111
|
+
appId,
|
|
112
|
+
gridId,
|
|
113
|
+
});
|
|
114
|
+
return data.gridOpenPermissions;
|
|
115
|
+
}
|
|
101
116
|
/**
|
|
102
117
|
* List a group's grants on a grid (rows of the group-grants input table).
|
|
103
118
|
*
|
|
@@ -180,6 +195,27 @@ export class GameAppsAPI {
|
|
|
180
195
|
});
|
|
181
196
|
return data.setGridPermissionLimits;
|
|
182
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Open a grid to every player: replace the keys it grants each player with
|
|
200
|
+
* active access to the app, within its limits, then recompute the effective
|
|
201
|
+
* ACL for all of them. Players who gain access later get them too. The most
|
|
202
|
+
* specific grid covering a chunk decides a voxel write there, so a zone
|
|
203
|
+
* nested in the world grid that everyone may build in must grant
|
|
204
|
+
* `update_voxel_data` itself. An empty `permissionKeys` closes the grid.
|
|
205
|
+
*
|
|
206
|
+
* Refused with `BAD_REQUEST` for the app's world grid (open already), any of
|
|
207
|
+
* the four player-code keys, a key that is not an active grid key, and a
|
|
208
|
+
* 33rd open grid in one app.
|
|
209
|
+
*
|
|
210
|
+
* @param input - {@link SetGridOpenPermissionsInput}.
|
|
211
|
+
* @returns The grid's open keys after the change.
|
|
212
|
+
*/
|
|
213
|
+
async setOpenPermissions(input) {
|
|
214
|
+
const data = await this.graphql.request(SetGridOpenPermissionsDocument, {
|
|
215
|
+
input,
|
|
216
|
+
});
|
|
217
|
+
return data.setGridOpenPermissions;
|
|
218
|
+
}
|
|
183
219
|
/**
|
|
184
220
|
* Grant permission keys to a group (optionally a single role) on a grid;
|
|
185
221
|
* recomputes the effective ACL.
|
|
@@ -916,6 +916,8 @@ export type App = {
|
|
|
916
916
|
updatedAt: Scalars['DateTime']['output'];
|
|
917
917
|
/** Marketplace discoverability (PUBLIC/UNLISTED/PRIVATE). See AppVisibility. */
|
|
918
918
|
visibility: AppVisibility;
|
|
919
|
+
/** Whether players may write the app's wilderness: chunks that no grid but the app's world grid covers. True (the default) leaves those writes to the ordinary voxel permission; false refuses every voxel and chunk write there (updateVoxel, sendVoxelUpdate, updateChunk, ck-exec's world.set_voxels, and a client's voxel updates sent straight to the realtime servers), whoever makes it. Set with updateApp (manage_apps). */
|
|
920
|
+
wildernessWritesOpen: Scalars['Boolean']['output'];
|
|
919
921
|
};
|
|
920
922
|
/** A free or purchasable access tier for an app, bundling a price and the set of runtime permission keys that granted users receive. */
|
|
921
923
|
export type AppAccessTier = {
|
|
@@ -3997,6 +3999,16 @@ export type GridGroupGrant = {
|
|
|
3997
3999
|
/** The runtime permission key string granted to the group/role. */
|
|
3998
4000
|
permissionKey: Scalars['String']['output'];
|
|
3999
4001
|
};
|
|
4002
|
+
/** The permission keys a grid grants every player with active access to the app (the grid_open_permissions input table). */
|
|
4003
|
+
export type GridOpenPermissions = {
|
|
4004
|
+
__typename?: 'GridOpenPermissions';
|
|
4005
|
+
/** The app (tenant) that owns the grid. */
|
|
4006
|
+
appId: Scalars['BigInt']['output'];
|
|
4007
|
+
/** The grid. */
|
|
4008
|
+
gridId: Scalars['BigInt']['output'];
|
|
4009
|
+
/** The keys every player with active access holds on this grid (its limits still cap them). Empty means the grid is not open. */
|
|
4010
|
+
permissionKeys: Array<Scalars['String']['output']>;
|
|
4011
|
+
};
|
|
4000
4012
|
/** Kind of principal holding grid title. P1 can assign USER owners; GROUP and ORG are schema-reserved for future shared ownership. */
|
|
4001
4013
|
export declare enum GridOwnerKind {
|
|
4002
4014
|
Group = "GROUP",
|
|
@@ -4343,7 +4355,7 @@ export type Mutation = {
|
|
|
4343
4355
|
claimFreeAppAccess: AppUserAccess;
|
|
4344
4356
|
/** Claim the hosting slug for an app (idempotent; the same app re-claiming its slug is a no-op, a different slug MOVES the game). Registers https://<games host>/<slug>/ and https://<slug>.<content host> as the app's redirect URIs and sets launch_url to the former. Requires manage_apps on the app and a SESSION token. Refuses a slug that is not a DNS label, is reserved, or belongs to another app (HOSTED_SLUG_UNAVAILABLE), and answers CONTENT_HOSTING_DISABLED on a tier without a content CDN. */
|
|
4345
4357
|
claimGameHosting: HostedGame;
|
|
4346
|
-
/** Claim one
|
|
4358
|
+
/** Claim one wilderness chunk (a chunk no grid but the app's world grid covers) as a new player-owned grid. Requires an ordinary app-scoped player token and active app access, but never manage_apps. The app's policy must be SELF_CLAIM. A chunk inside another grid (a plot, a zone or another claim) is refused FORBIDDEN (GRID_NOT_CLAIMABLE): the claim would be the most specific grid there and take the chunk from whoever that grid grants. The server validates the app's grid assignment and peer-overlap rules, then atomically creates a one-chunk grid, assigns current-user ownership, grants access/update_voxel_data/use_voice_chat/teleport plus the player-code keys and use_video_chat where the caller's tier already carries them, and materializes the effective ACL. Conflicts and policy denials throw GraphQL errors; no partial grid, ownership, or grant rows remain. */
|
|
4347
4359
|
claimGridChunk: ChunkClaimResult;
|
|
4348
4360
|
/** Claim grid ownership under the app's claim policy (D4, server-authorized — no client manage_apps involved). SELF_CLAIM assigns ownership immediately; APPROVAL creates a pending request for designated approvers; INVITE requires a standing invite (consumed on use); MARKETPLACE_ONLY refuses. The grid must exist and have no current owner; game rules gate who may attempt a claim. */
|
|
4349
4361
|
claimGridOwnership: GridClaimResult;
|
|
@@ -4601,7 +4613,7 @@ export type Mutation = {
|
|
|
4601
4613
|
sendTextPacket: Scalars['Boolean']['output'];
|
|
4602
4614
|
/** Send ONE webcam video fragment, fanned out to nearby actors as a ClientVideoNotification (Buddy v0.25.0). Requires a bearer game token and the use_video_chat runtime permission at app AND grid level -- without it the game server responds asynchronously with a GenericErrorResponse (errorCode UNAUTHORIZED). A datagram carries at most ~1117 bytes of videoData, so an encoded frame is split by the SDK into fragments (6-byte header: version, codec, frameId, fragIndex, fragCount; at most 16 per frame) and reassembled by receivers; this is a mutation PER FRAGMENT and sustained video belongs on the binary realtime relay. Every receiver in range pays the egress bytes: keep distance small and frames few. Opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING -- NOT that it was delivered; the sender receives no echo, only errors (GenericErrorResponse, correlated by sequenceNumber) on udpNotifications. */
|
|
4603
4615
|
sendVideoPacket: Scalars['Boolean']['output'];
|
|
4604
|
-
/** Send a single voxel (block) update for spatial replication to nearby chunks. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING to the game server — NOT confirmation that the world applied the change. There is NO separate per-request success response: the change fans out to nearby clients (the sender included) as a VoxelUpdateNotification carrying the same sequenceNumber (VoxelUpdateResponse is legacy and is never emitted). Failures arrive ASYNCHRONOUSLY as a GenericErrorResponse; both are correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4616
|
+
/** Send a single voxel (block) update for spatial replication to nearby chunks. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING to the game server — NOT confirmation that the world applied the change. There is NO separate per-request success response: the change fans out to nearby clients (the sender included) as a VoxelUpdateNotification carrying the same sequenceNumber (VoxelUpdateResponse is legacy and is never emitted). Failures arrive ASYNCHRONOUSLY as a GenericErrorResponse; both are correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). Throws FORBIDDEN synchronously, before anything is sent, without the voxel edit permission updateVoxel checks for the chunk (app access, the tier's update_voxel_data, and update_voxel_data on the most specific grid covering the chunk), and for a chunk only the app's world grid covers while the app's wilderness is closed (App.wildernessWritesOpen false). */
|
|
4605
4617
|
sendVoxelUpdate: Scalars['Boolean']['output'];
|
|
4606
4618
|
/** Creates or updates an app's monthly spend cap (idempotent upsert keyed by org + app) and returns the resulting budget. This only records the cap used to monitor/limit overspend; it does not move money, charge a card, or alter the wallet balance. Requires the 'manage_billing' app permission. */
|
|
4607
4619
|
setAppBudget: AppBudget;
|
|
@@ -4631,6 +4643,8 @@ export type Mutation = {
|
|
|
4631
4643
|
setCrowdyStudioAgentPolicy: CrowdyStudioAgentPolicy;
|
|
4632
4644
|
/** Sets the per-user early-access override flag, forcing early access on or off regardless of the global free-play window. Requires a super-admin bearer game token (and the management API enabled). */
|
|
4633
4645
|
setEarlyAccessOverride: User;
|
|
4646
|
+
/** Open a grid to every player: replace the permission keys it grants each player with active access to the app (writes the `grid_open_permissions` input table), then recompute the grid's materialized effective ACL for all of them. The most specific grid covering a chunk decides a voxel write there, so a zone inside the world grid that everyone may build in must grant `update_voxel_data` itself. The grid's limits still cap these keys; players who get access later receive them when they connect. Pass an empty array to close the grid. Refuses the app's world grid (already open), the four player-code keys, and a 33rd open grid in one app. Requires app-admin ('manage_apps'). */
|
|
4647
|
+
setGridOpenPermissions: GridOpenPermissions;
|
|
4634
4648
|
/** Replace the whitelist of permission keys allowed on a grid (writes the `grid_permission_limits` input table), then recompute the grid's materialized effective ACL so any keys no longer on the whitelist are dropped for all users. Pass an empty array to remove all limits. Requires app-admin ('manage_apps'). DESTRUCTIVE: narrowing the whitelist can strip effective permissions from existing users on the grid. */
|
|
4635
4649
|
setGridPermissionLimits: GridPermissionLimits;
|
|
4636
4650
|
/** Developer switch: DISABLED (the shell says "disabled by its developer") or back to LIVE. A TAKEN_DOWN game is refused (HOSTED_GAME_TAKEN_DOWN). Requires manage_apps and a SESSION token. */
|
|
@@ -4683,7 +4697,7 @@ export type Mutation = {
|
|
|
4683
4697
|
updateActor: Actor;
|
|
4684
4698
|
/** Replaces an actor’s `publicState` and/or `privateState` blobs (fields omitted from `input` are left unchanged). OWNER-EXCLUSIVE: only the actor’s owner may write (throws Unauthorized otherwise). Game-plane: requires an app token for the actor’s app (a session token or another app’s token is answered NotFound). `uuid` is the 32-character ASCII actor id; blobs are base64-encoded binary. */
|
|
4685
4699
|
updateActorState: Actor;
|
|
4686
|
-
/** Update mutable fields of an existing app (name, description, visibility, status, metadata); only fields present in the input are changed. Requires the 'manage_apps' permission on the app (resolved via its org); super admins bypass. Use this to publish (status=LIVE), change visibility, or restore an archived app (status back to DRAFT/LIVE). Throws if the app id does not exist. */
|
|
4700
|
+
/** Update mutable fields of an existing app (name, description, visibility, status, metadata, wildernessWritesOpen); only fields present in the input are changed. Requires the 'manage_apps' permission on the app (resolved via its org); super admins bypass. Use this to publish (status=LIVE), change visibility, or restore an archived app (status back to DRAFT/LIVE). Throws if the app id does not exist. */
|
|
4687
4701
|
updateApp: App;
|
|
4688
4702
|
/** Updates an avatar’s mutable fields (currently `name`) and returns it. OWNER-EXCLUSIVE: only the avatar’s owner may call this (throws Unauthorized otherwise). Requires a valid game token. To change state blobs use `updateAvatarState`. */
|
|
4689
4703
|
updateAvatar: Avatar;
|
|
@@ -4695,7 +4709,7 @@ export type Mutation = {
|
|
|
4695
4709
|
updateChannel: Group;
|
|
4696
4710
|
/** Update a channel role's name, rank, and/or permission keys (system roles cannot be renamed/re-ranked). When permissions are supplied they REPLACE the role's existing keys. Requires the 'manage_roles' channel permission (app admins bypass). Note: changing send_messages here does not re-push Buddy until affected members' roles are re-applied via setChannelMemberRoles. */
|
|
4697
4711
|
updateChannelRole: GroupRole;
|
|
4698
|
-
/** Creates or replaces a chunk's dense voxel grid and/or per-voxel states for the given app and coordinates, records each provided voxel state as an individual voxel update, and asynchronously uploads the chunk to the CDN. WRITES world state. Leaves chunkState and LODs untouched. Requires
|
|
4712
|
+
/** Creates or replaces a chunk's dense voxel grid and/or per-voxel states for the given app and coordinates, records each provided voxel state as an individual voxel update, and asynchronously uploads the chunk to the CDN. WRITES world state. Leaves chunkState and LODs untouched. Requires an app token for the app and either the 'manage_apps' permission on the app (resolved via its org; super admins bypass) or the voxel edit permission for this chunk that updateVoxel checks (app access, the tier's update_voxel_data, and update_voxel_data on the most specific grid covering the chunk). Throws FORBIDDEN otherwise, and for a chunk only the app's world grid covers while the app's wilderness is closed (App.wildernessWritesOpen false). */
|
|
4699
4713
|
updateChunk: Chunk;
|
|
4700
4714
|
/** Replaces the level-of-detail (LOD) set for a chunk, preserving voxels, per-voxel states, chunk state and owner; returns the updated chunk (or null if it could not be written). WRITES world state. Requires a valid bearer token AND the `manage_apps` permission on the org that owns input.appId (super admins bypass). */
|
|
4701
4715
|
updateChunkLods: Maybe<Chunk>;
|
|
@@ -4719,7 +4733,7 @@ export type Mutation = {
|
|
|
4719
4733
|
updateUserState: User;
|
|
4720
4734
|
/** Sets the target user’s account `user_type` (e.g. "direct", "deleted"). Requires a super-admin bearer game token (and the management API enabled). */
|
|
4721
4735
|
updateUserType: User;
|
|
4722
|
-
/** Records (upserts) a single voxel edit in the voxel_updates log for one chunk and returns the resulting Voxel. WRITES world state; a background maintenance job later folds these edits into the chunk's packed grid. Requires a valid bearer token AND voxel-edit permission for the target region: the user must have active app access, the `update_voxel_data` tier permission, and (
|
|
4736
|
+
/** Records (upserts) a single voxel edit in the voxel_updates log for one chunk and returns the resulting Voxel. WRITES world state; a background maintenance job later folds these edits into the chunk's packed grid. Requires a valid bearer token AND voxel-edit permission for the target region: the user must have active app access, the `update_voxel_data` tier permission, and `update_voxel_data` on the most specific grid covering the chunk (the smallest by volume; of equal ones the lowest grid id), so a claim, a plot or a safe zone decides its chunks and the app's world grid decides only the wilderness. A chunk no grid covers is refused, and so is a chunk only the app's world grid covers while the app's wilderness is closed (App.wildernessWritesOpen false). */
|
|
4723
4737
|
updateVoxel: Voxel;
|
|
4724
4738
|
};
|
|
4725
4739
|
export type MutationAbandonGamePublishArgs = {
|
|
@@ -5285,6 +5299,9 @@ export type MutationSetEarlyAccessOverrideArgs = {
|
|
|
5285
5299
|
userId: Scalars['BigInt']['input'];
|
|
5286
5300
|
value: Scalars['Boolean']['input'];
|
|
5287
5301
|
};
|
|
5302
|
+
export type MutationSetGridOpenPermissionsArgs = {
|
|
5303
|
+
input: SetGridOpenPermissionsInput;
|
|
5304
|
+
};
|
|
5288
5305
|
export type MutationSetGridPermissionLimitsArgs = {
|
|
5289
5306
|
input: SetGridPermissionLimitsInput;
|
|
5290
5307
|
};
|
|
@@ -6443,6 +6460,8 @@ export type Query = {
|
|
|
6443
6460
|
gridClaimRequests: Array<GridClaimRequest>;
|
|
6444
6461
|
/** List the group/role -> permission-key grants configured on a grid for one group (rows of the `grid_group_grants` input table). These are inputs to the effective ACL, not the materialized result — use `gridUserPermissions` for a specific user's effective keys. Requires app-admin ('manage_apps'). */
|
|
6445
6462
|
gridGroupGrants: Array<GridGroupGrant>;
|
|
6463
|
+
/** Read the permission keys a grid grants every player with active access to the app (an open build area, a public arena). An empty list means the grid is not open. Requires app-admin ('manage_apps'). */
|
|
6464
|
+
gridOpenPermissions: GridOpenPermissions;
|
|
6446
6465
|
/** Read the current first-class ownership record for a grid. Requires authentication. Returns null when the grid has no current/unexpired owner. Player server code always resolves its execution identity from this record. */
|
|
6447
6466
|
gridOwnership: Maybe<GridOwnership>;
|
|
6448
6467
|
/** Read the permission-key whitelist configured for a grid. An empty list means there is no limit (every active runtime permission may be granted on the grid). Requires app-admin ('manage_apps'). */
|
|
@@ -6954,6 +6973,10 @@ export type QueryGridGroupGrantsArgs = {
|
|
|
6954
6973
|
gridId: Scalars['BigInt']['input'];
|
|
6955
6974
|
groupId: Scalars['BigInt']['input'];
|
|
6956
6975
|
};
|
|
6976
|
+
export type QueryGridOpenPermissionsArgs = {
|
|
6977
|
+
appId: Scalars['BigInt']['input'];
|
|
6978
|
+
gridId: Scalars['BigInt']['input'];
|
|
6979
|
+
};
|
|
6957
6980
|
export type QueryGridOwnershipArgs = {
|
|
6958
6981
|
appId: Scalars['BigInt']['input'];
|
|
6959
6982
|
gridId: Scalars['BigInt']['input'];
|
|
@@ -7711,6 +7734,15 @@ export type SetCrowdyStudioProviderConsentInput = {
|
|
|
7711
7734
|
/** True to accept, false to revoke. */
|
|
7712
7735
|
consented: Scalars['Boolean']['input'];
|
|
7713
7736
|
};
|
|
7737
|
+
/** Set the permission keys a grid grants every player with active access to the app (writes the grid_open_permissions input table): an open build area, a public arena. */
|
|
7738
|
+
export type SetGridOpenPermissionsInput = {
|
|
7739
|
+
/** The app (tenant) that owns the grid. */
|
|
7740
|
+
appId: Scalars['BigInt']['input'];
|
|
7741
|
+
/** The grid to open (or close). Not the app's world grid, which is open by default. */
|
|
7742
|
+
gridId: Scalars['BigInt']['input'];
|
|
7743
|
+
/** The keys every player with active access holds on this grid, capped by its limits. Empty array closes it (players keep only what they are granted directly or through a group). Each must be an active grid permission key, unique, at most 64 chars, and not one of the four player-code keys. */
|
|
7744
|
+
permissionKeys: Array<Scalars['String']['input']>;
|
|
7745
|
+
};
|
|
7714
7746
|
/** Set the per-grid permission-key whitelist (writes the grid_permission_limits input table). */
|
|
7715
7747
|
export type SetGridPermissionLimitsInput = {
|
|
7716
7748
|
/** The app (tenant) that owns the grid. */
|
|
@@ -8056,6 +8088,8 @@ export type UpdateAppInput = {
|
|
|
8056
8088
|
status?: InputMaybe<AppStatus>;
|
|
8057
8089
|
/** New visibility (PUBLIC/UNLISTED/PRIVATE). Omit to leave unchanged. */
|
|
8058
8090
|
visibility?: InputMaybe<AppVisibility>;
|
|
8091
|
+
/** Open (true) or close (false) the app's wilderness to voxel and chunk writes: chunks that no grid but the app's world grid covers. Closing refuses every write there, whoever makes it; each game API replica, and each realtime server for a client's direct voxel updates, acts on the change within about 15 seconds. Omit to leave unchanged. */
|
|
8092
|
+
wildernessWritesOpen?: InputMaybe<Scalars['Boolean']['input']>;
|
|
8059
8093
|
};
|
|
8060
8094
|
export type UpdateAvatarAppStateInput = {
|
|
8061
8095
|
/** App (game) id the state is scoped to. Required. BigInt sent as a decimal string. */
|
|
@@ -8158,11 +8192,11 @@ export type UpdateVoxelInput = {
|
|
|
8158
8192
|
appId: Scalars['BigInt']['input'];
|
|
8159
8193
|
/** Address of the chunk that contains the voxel to edit. */
|
|
8160
8194
|
coordinates: ChunkCoordinatesInput;
|
|
8161
|
-
/** Local voxel position within the chunk
|
|
8195
|
+
/** Local voxel position within the chunk, 0-15 per axis; anything else is refused. */
|
|
8162
8196
|
location: VoxelCoordinatesInput;
|
|
8163
8197
|
/** Optional BASE64-encoded binary state blob for the voxel; omit for none. */
|
|
8164
8198
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
8165
|
-
/** Voxel type id to write
|
|
8199
|
+
/** Voxel type id to write, 0-255; anything else is refused. */
|
|
8166
8200
|
voxelType: Scalars['Float']['input'];
|
|
8167
8201
|
};
|
|
8168
8202
|
/** One minute-bucketed usage sample. Byte/message counters are returned as strings because they can exceed the 32-bit Int range. */
|
|
@@ -8364,9 +8398,9 @@ export type VoxelState = {
|
|
|
8364
8398
|
export type VoxelStateInput = {
|
|
8365
8399
|
/** BASE64-encoded binary state blob for this voxel; omit/null for no extra state. */
|
|
8366
8400
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
8367
|
-
/** Local voxel position within the chunk
|
|
8401
|
+
/** Local voxel position within the chunk, 0-15 per axis; anything else is refused. */
|
|
8368
8402
|
voxelCoord: VoxelCoordinatesInput;
|
|
8369
|
-
/** Voxel type id to set at this position
|
|
8403
|
+
/** Voxel type id to set at this position, 0-255; anything else is refused. */
|
|
8370
8404
|
voxelType: Scalars['Int']['input'];
|
|
8371
8405
|
};
|
|
8372
8406
|
/** Relay-style cursor-paginated connection over voxel edit history entries (VoxelUpdateHistoryEvent). Page with `first`/`after`; cursors are opaque. */
|
|
@@ -8453,11 +8487,11 @@ export type VoxelUpdateRequestInput = {
|
|
|
8453
8487
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
8454
8488
|
/** A unique identifier for this voxel update. Must be exactly 32 bytes when encoded as UTF-8. */
|
|
8455
8489
|
uuid: Scalars['String']['input'];
|
|
8456
|
-
/** The voxel coordinates within the chunk
|
|
8490
|
+
/** The voxel coordinates within the chunk, 0-15 on each axis; anything else is refused. */
|
|
8457
8491
|
voxel: VoxelCoordinatesInput;
|
|
8458
8492
|
/** Optional voxel state data, base64-encoded. Omit (or send an empty string) when the voxel has no extra state — an empty payload is a type-only update. */
|
|
8459
8493
|
voxelState?: InputMaybe<Scalars['String']['input']>;
|
|
8460
|
-
/** The new voxel type ID. This determines the appearance and properties of the voxel. */
|
|
8494
|
+
/** The new voxel type ID, 0-255 (anything else is refused). This determines the appearance and properties of the voxel. */
|
|
8461
8495
|
voxelType: Scalars['Int']['input'];
|
|
8462
8496
|
};
|
|
8463
8497
|
/** LEGACY — never emitted. The game server retired the dedicated voxel-update response opcode (132); an applied update now arrives as your own VoxelUpdateNotification (the sender is included in the chunk fan-out) and failures arrive as GenericErrorResponse. This type remains in the UdpNotification union for backward compatibility only — do not select it in new code; it will be removed in a future major version. */
|
|
@@ -9049,6 +9083,7 @@ export type AppQuery = {
|
|
|
9049
9083
|
visibility: AppVisibility;
|
|
9050
9084
|
status: AppStatus;
|
|
9051
9085
|
metadata: string | null;
|
|
9086
|
+
wildernessWritesOpen: boolean;
|
|
9052
9087
|
splitMode: boolean;
|
|
9053
9088
|
deploymentTarget: string;
|
|
9054
9089
|
reservedUdpBytesPerSec: string;
|
|
@@ -9086,6 +9121,7 @@ export type AppBySlugQuery = {
|
|
|
9086
9121
|
visibility: AppVisibility;
|
|
9087
9122
|
status: AppStatus;
|
|
9088
9123
|
metadata: string | null;
|
|
9124
|
+
wildernessWritesOpen: boolean;
|
|
9089
9125
|
splitMode: boolean;
|
|
9090
9126
|
gameApiUrl: string | null;
|
|
9091
9127
|
createdAt: string;
|
|
@@ -9126,6 +9162,7 @@ export type AppsForOrgQuery = {
|
|
|
9126
9162
|
visibility: AppVisibility;
|
|
9127
9163
|
status: AppStatus;
|
|
9128
9164
|
metadata: string | null;
|
|
9165
|
+
wildernessWritesOpen: boolean;
|
|
9129
9166
|
splitMode: boolean;
|
|
9130
9167
|
gameApiUrl: string | null;
|
|
9131
9168
|
createdAt: string;
|
|
@@ -9238,6 +9275,7 @@ export type CreateAppMutation = {
|
|
|
9238
9275
|
visibility: AppVisibility;
|
|
9239
9276
|
status: AppStatus;
|
|
9240
9277
|
metadata: string | null;
|
|
9278
|
+
wildernessWritesOpen: boolean;
|
|
9241
9279
|
createdAt: string;
|
|
9242
9280
|
};
|
|
9243
9281
|
};
|
|
@@ -9338,6 +9376,7 @@ export type MyAppsQuery = {
|
|
|
9338
9376
|
visibility: AppVisibility;
|
|
9339
9377
|
status: AppStatus;
|
|
9340
9378
|
metadata: string | null;
|
|
9379
|
+
wildernessWritesOpen: boolean;
|
|
9341
9380
|
splitMode: boolean;
|
|
9342
9381
|
gameApiUrl: string | null;
|
|
9343
9382
|
createdAt: string;
|
|
@@ -9386,6 +9425,7 @@ export type UpdateAppMutation = {
|
|
|
9386
9425
|
visibility: AppVisibility;
|
|
9387
9426
|
status: AppStatus;
|
|
9388
9427
|
metadata: string | null;
|
|
9428
|
+
wildernessWritesOpen: boolean;
|
|
9389
9429
|
updatedAt: string;
|
|
9390
9430
|
};
|
|
9391
9431
|
};
|
|
@@ -11463,6 +11503,19 @@ export type GridPermissionLimitsQuery = {
|
|
|
11463
11503
|
permissionKeys: Array<string>;
|
|
11464
11504
|
};
|
|
11465
11505
|
};
|
|
11506
|
+
export type GridOpenPermissionsQueryVariables = Exact<{
|
|
11507
|
+
appId: Scalars['BigInt']['input'];
|
|
11508
|
+
gridId: Scalars['BigInt']['input'];
|
|
11509
|
+
}>;
|
|
11510
|
+
export type GridOpenPermissionsQuery = {
|
|
11511
|
+
__typename?: 'Query';
|
|
11512
|
+
gridOpenPermissions: {
|
|
11513
|
+
__typename?: 'GridOpenPermissions';
|
|
11514
|
+
appId: string;
|
|
11515
|
+
gridId: string;
|
|
11516
|
+
permissionKeys: Array<string>;
|
|
11517
|
+
};
|
|
11518
|
+
};
|
|
11466
11519
|
export type GridGroupGrantsQueryVariables = Exact<{
|
|
11467
11520
|
appId: Scalars['BigInt']['input'];
|
|
11468
11521
|
gridId: Scalars['BigInt']['input'];
|
|
@@ -11556,6 +11609,18 @@ export type SetGridPermissionLimitsMutation = {
|
|
|
11556
11609
|
permissionKeys: Array<string>;
|
|
11557
11610
|
};
|
|
11558
11611
|
};
|
|
11612
|
+
export type SetGridOpenPermissionsMutationVariables = Exact<{
|
|
11613
|
+
input: SetGridOpenPermissionsInput;
|
|
11614
|
+
}>;
|
|
11615
|
+
export type SetGridOpenPermissionsMutation = {
|
|
11616
|
+
__typename?: 'Mutation';
|
|
11617
|
+
setGridOpenPermissions: {
|
|
11618
|
+
__typename?: 'GridOpenPermissions';
|
|
11619
|
+
appId: string;
|
|
11620
|
+
gridId: string;
|
|
11621
|
+
permissionKeys: Array<string>;
|
|
11622
|
+
};
|
|
11623
|
+
};
|
|
11559
11624
|
export type AssignGroupToGridMutationVariables = Exact<{
|
|
11560
11625
|
input: AssignGroupToGridInput;
|
|
11561
11626
|
}>;
|
|
@@ -14476,12 +14541,14 @@ export declare const GridUserPermissionsDocument: DocumentNode<GridUserPermissio
|
|
|
14476
14541
|
export declare const NearbyGridPermissionsDocument: DocumentNode<NearbyGridPermissionsQuery, NearbyGridPermissionsQueryVariables>;
|
|
14477
14542
|
export declare const NearbyGridsDocument: DocumentNode<NearbyGridsQuery, NearbyGridsQueryVariables>;
|
|
14478
14543
|
export declare const GridPermissionLimitsDocument: DocumentNode<GridPermissionLimitsQuery, GridPermissionLimitsQueryVariables>;
|
|
14544
|
+
export declare const GridOpenPermissionsDocument: DocumentNode<GridOpenPermissionsQuery, GridOpenPermissionsQueryVariables>;
|
|
14479
14545
|
export declare const GridGroupGrantsDocument: DocumentNode<GridGroupGrantsQuery, GridGroupGrantsQueryVariables>;
|
|
14480
14546
|
export declare const CreateGridDocument: DocumentNode<CreateGridMutation, CreateGridMutationVariables>;
|
|
14481
14547
|
export declare const DeleteGridDocument: DocumentNode<DeleteGridMutation, DeleteGridMutationVariables>;
|
|
14482
14548
|
export declare const GrantGridPermissionsDocument: DocumentNode<GrantGridPermissionsMutation, GrantGridPermissionsMutationVariables>;
|
|
14483
14549
|
export declare const RevokeGridPermissionsDocument: DocumentNode<RevokeGridPermissionsMutation, RevokeGridPermissionsMutationVariables>;
|
|
14484
14550
|
export declare const SetGridPermissionLimitsDocument: DocumentNode<SetGridPermissionLimitsMutation, SetGridPermissionLimitsMutationVariables>;
|
|
14551
|
+
export declare const SetGridOpenPermissionsDocument: DocumentNode<SetGridOpenPermissionsMutation, SetGridOpenPermissionsMutationVariables>;
|
|
14485
14552
|
export declare const AssignGroupToGridDocument: DocumentNode<AssignGroupToGridMutation, AssignGroupToGridMutationVariables>;
|
|
14486
14553
|
export declare const RevokeGroupFromGridDocument: DocumentNode<RevokeGroupFromGridMutation, RevokeGroupFromGridMutationVariables>;
|
|
14487
14554
|
export declare const CreateGridChannelDocument: DocumentNode<CreateGridChannelMutation, CreateGridChannelMutationVariables>;
|