@crowdedkingdoms/crowdyjs 18.0.4-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 +33 -0
- package/README.md +15 -2
- 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 +63 -6
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +2 -0
- 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/package.json +1 -1
|
@@ -916,7 +916,7 @@ 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), whoever makes it. Set with updateApp (manage_apps). */
|
|
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
920
|
wildernessWritesOpen: Scalars['Boolean']['output'];
|
|
921
921
|
};
|
|
922
922
|
/** A free or purchasable access tier for an app, bundling a price and the set of runtime permission keys that granted users receive. */
|
|
@@ -3999,6 +3999,16 @@ export type GridGroupGrant = {
|
|
|
3999
3999
|
/** The runtime permission key string granted to the group/role. */
|
|
4000
4000
|
permissionKey: Scalars['String']['output'];
|
|
4001
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
|
+
};
|
|
4002
4012
|
/** Kind of principal holding grid title. P1 can assign USER owners; GROUP and ORG are schema-reserved for future shared ownership. */
|
|
4003
4013
|
export declare enum GridOwnerKind {
|
|
4004
4014
|
Group = "GROUP",
|
|
@@ -4345,7 +4355,7 @@ export type Mutation = {
|
|
|
4345
4355
|
claimFreeAppAccess: AppUserAccess;
|
|
4346
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. */
|
|
4347
4357
|
claimGameHosting: HostedGame;
|
|
4348
|
-
/** 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. */
|
|
4349
4359
|
claimGridChunk: ChunkClaimResult;
|
|
4350
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. */
|
|
4351
4361
|
claimGridOwnership: GridClaimResult;
|
|
@@ -4603,7 +4613,7 @@ export type Mutation = {
|
|
|
4603
4613
|
sendTextPacket: Scalars['Boolean']['output'];
|
|
4604
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. */
|
|
4605
4615
|
sendVideoPacket: Scalars['Boolean']['output'];
|
|
4606
|
-
/** 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 for a chunk only the app's world grid covers while the app's wilderness is closed (App.wildernessWritesOpen false). */
|
|
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). */
|
|
4607
4617
|
sendVoxelUpdate: Scalars['Boolean']['output'];
|
|
4608
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. */
|
|
4609
4619
|
setAppBudget: AppBudget;
|
|
@@ -4633,6 +4643,8 @@ export type Mutation = {
|
|
|
4633
4643
|
setCrowdyStudioAgentPolicy: CrowdyStudioAgentPolicy;
|
|
4634
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). */
|
|
4635
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;
|
|
4636
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. */
|
|
4637
4649
|
setGridPermissionLimits: GridPermissionLimits;
|
|
4638
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. */
|
|
@@ -4697,7 +4709,7 @@ export type Mutation = {
|
|
|
4697
4709
|
updateChannel: Group;
|
|
4698
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. */
|
|
4699
4711
|
updateChannelRole: GroupRole;
|
|
4700
|
-
/** 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
|
|
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). */
|
|
4701
4713
|
updateChunk: Chunk;
|
|
4702
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). */
|
|
4703
4715
|
updateChunkLods: Maybe<Chunk>;
|
|
@@ -4721,7 +4733,7 @@ export type Mutation = {
|
|
|
4721
4733
|
updateUserState: User;
|
|
4722
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). */
|
|
4723
4735
|
updateUserType: User;
|
|
4724
|
-
/** 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). */
|
|
4725
4737
|
updateVoxel: Voxel;
|
|
4726
4738
|
};
|
|
4727
4739
|
export type MutationAbandonGamePublishArgs = {
|
|
@@ -5287,6 +5299,9 @@ export type MutationSetEarlyAccessOverrideArgs = {
|
|
|
5287
5299
|
userId: Scalars['BigInt']['input'];
|
|
5288
5300
|
value: Scalars['Boolean']['input'];
|
|
5289
5301
|
};
|
|
5302
|
+
export type MutationSetGridOpenPermissionsArgs = {
|
|
5303
|
+
input: SetGridOpenPermissionsInput;
|
|
5304
|
+
};
|
|
5290
5305
|
export type MutationSetGridPermissionLimitsArgs = {
|
|
5291
5306
|
input: SetGridPermissionLimitsInput;
|
|
5292
5307
|
};
|
|
@@ -6445,6 +6460,8 @@ export type Query = {
|
|
|
6445
6460
|
gridClaimRequests: Array<GridClaimRequest>;
|
|
6446
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'). */
|
|
6447
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;
|
|
6448
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. */
|
|
6449
6466
|
gridOwnership: Maybe<GridOwnership>;
|
|
6450
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'). */
|
|
@@ -6956,6 +6973,10 @@ export type QueryGridGroupGrantsArgs = {
|
|
|
6956
6973
|
gridId: Scalars['BigInt']['input'];
|
|
6957
6974
|
groupId: Scalars['BigInt']['input'];
|
|
6958
6975
|
};
|
|
6976
|
+
export type QueryGridOpenPermissionsArgs = {
|
|
6977
|
+
appId: Scalars['BigInt']['input'];
|
|
6978
|
+
gridId: Scalars['BigInt']['input'];
|
|
6979
|
+
};
|
|
6959
6980
|
export type QueryGridOwnershipArgs = {
|
|
6960
6981
|
appId: Scalars['BigInt']['input'];
|
|
6961
6982
|
gridId: Scalars['BigInt']['input'];
|
|
@@ -7713,6 +7734,15 @@ export type SetCrowdyStudioProviderConsentInput = {
|
|
|
7713
7734
|
/** True to accept, false to revoke. */
|
|
7714
7735
|
consented: Scalars['Boolean']['input'];
|
|
7715
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
|
+
};
|
|
7716
7746
|
/** Set the per-grid permission-key whitelist (writes the grid_permission_limits input table). */
|
|
7717
7747
|
export type SetGridPermissionLimitsInput = {
|
|
7718
7748
|
/** The app (tenant) that owns the grid. */
|
|
@@ -8058,7 +8088,7 @@ export type UpdateAppInput = {
|
|
|
8058
8088
|
status?: InputMaybe<AppStatus>;
|
|
8059
8089
|
/** New visibility (PUBLIC/UNLISTED/PRIVATE). Omit to leave unchanged. */
|
|
8060
8090
|
visibility?: InputMaybe<AppVisibility>;
|
|
8061
|
-
/** 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 acts on the change within 15 seconds. Omit to leave unchanged. */
|
|
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. */
|
|
8062
8092
|
wildernessWritesOpen?: InputMaybe<Scalars['Boolean']['input']>;
|
|
8063
8093
|
};
|
|
8064
8094
|
export type UpdateAvatarAppStateInput = {
|
|
@@ -11473,6 +11503,19 @@ export type GridPermissionLimitsQuery = {
|
|
|
11473
11503
|
permissionKeys: Array<string>;
|
|
11474
11504
|
};
|
|
11475
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
|
+
};
|
|
11476
11519
|
export type GridGroupGrantsQueryVariables = Exact<{
|
|
11477
11520
|
appId: Scalars['BigInt']['input'];
|
|
11478
11521
|
gridId: Scalars['BigInt']['input'];
|
|
@@ -11566,6 +11609,18 @@ export type SetGridPermissionLimitsMutation = {
|
|
|
11566
11609
|
permissionKeys: Array<string>;
|
|
11567
11610
|
};
|
|
11568
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
|
+
};
|
|
11569
11624
|
export type AssignGroupToGridMutationVariables = Exact<{
|
|
11570
11625
|
input: AssignGroupToGridInput;
|
|
11571
11626
|
}>;
|
|
@@ -14486,12 +14541,14 @@ export declare const GridUserPermissionsDocument: DocumentNode<GridUserPermissio
|
|
|
14486
14541
|
export declare const NearbyGridPermissionsDocument: DocumentNode<NearbyGridPermissionsQuery, NearbyGridPermissionsQueryVariables>;
|
|
14487
14542
|
export declare const NearbyGridsDocument: DocumentNode<NearbyGridsQuery, NearbyGridsQueryVariables>;
|
|
14488
14543
|
export declare const GridPermissionLimitsDocument: DocumentNode<GridPermissionLimitsQuery, GridPermissionLimitsQueryVariables>;
|
|
14544
|
+
export declare const GridOpenPermissionsDocument: DocumentNode<GridOpenPermissionsQuery, GridOpenPermissionsQueryVariables>;
|
|
14489
14545
|
export declare const GridGroupGrantsDocument: DocumentNode<GridGroupGrantsQuery, GridGroupGrantsQueryVariables>;
|
|
14490
14546
|
export declare const CreateGridDocument: DocumentNode<CreateGridMutation, CreateGridMutationVariables>;
|
|
14491
14547
|
export declare const DeleteGridDocument: DocumentNode<DeleteGridMutation, DeleteGridMutationVariables>;
|
|
14492
14548
|
export declare const GrantGridPermissionsDocument: DocumentNode<GrantGridPermissionsMutation, GrantGridPermissionsMutationVariables>;
|
|
14493
14549
|
export declare const RevokeGridPermissionsDocument: DocumentNode<RevokeGridPermissionsMutation, RevokeGridPermissionsMutationVariables>;
|
|
14494
14550
|
export declare const SetGridPermissionLimitsDocument: DocumentNode<SetGridPermissionLimitsMutation, SetGridPermissionLimitsMutationVariables>;
|
|
14551
|
+
export declare const SetGridOpenPermissionsDocument: DocumentNode<SetGridOpenPermissionsMutation, SetGridOpenPermissionsMutationVariables>;
|
|
14495
14552
|
export declare const AssignGroupToGridDocument: DocumentNode<AssignGroupToGridMutation, AssignGroupToGridMutationVariables>;
|
|
14496
14553
|
export declare const RevokeGroupFromGridDocument: DocumentNode<RevokeGroupFromGridMutation, RevokeGroupFromGridMutationVariables>;
|
|
14497
14554
|
export declare const CreateGridChannelDocument: DocumentNode<CreateGridChannelMutation, CreateGridChannelMutationVariables>;
|