@crowdedkingdoms/crowdyjs 18.17.0 → 18.18.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/README.md +19 -15
- package/dist/default-origin.d.ts +6 -6
- package/dist/default-origin.d.ts.map +1 -1
- package/dist/default-origin.js +6 -6
- package/dist/domains/udp.d.ts +19 -9
- package/dist/domains/udp.d.ts.map +1 -1
- package/dist/domains/udp.js +19 -9
- package/dist/generated/graphql-schema.d.ts +99 -7
- package/dist/generated/graphql-schema.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/world.d.ts +5 -2
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +5 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,19 +12,23 @@ gameplay, minted per app through `client.portal`.
|
|
|
12
12
|
|
|
13
13
|
Start here:
|
|
14
14
|
|
|
15
|
-
- [SDK guide](https://docs.crowdedkingdoms.com/crowdyjs/readme) — the canonical
|
|
15
|
+
- [SDK guide](https://docs.dev.crowdedkingdoms.com/crowdyjs/readme) — the canonical
|
|
16
16
|
walkthrough of everything in this README.
|
|
17
|
-
- [Build a game](https://docs.crowdedkingdoms.com/build-a-game/intro) — a
|
|
17
|
+
- [Build a game](https://docs.dev.crowdedkingdoms.com/build-a-game/intro) — a
|
|
18
18
|
hands-on tutorial from sign-in to a playable voxel game.
|
|
19
|
-
- [Platform overview](https://docs.crowdedkingdoms.com/overview/client-workflow)
|
|
19
|
+
- [Platform overview](https://docs.dev.crowdedkingdoms.com/overview/client-workflow)
|
|
20
20
|
— how a client session flows through the platform.
|
|
21
21
|
|
|
22
22
|
## Install
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
npm install @crowdedkingdoms/crowdyjs
|
|
25
|
+
npm install @crowdedkingdoms/crowdyjs@dev
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
This README is the `dev` branch's: it documents the release on the `dev` dist-tag
|
|
29
|
+
(`npm view @crowdedkingdoms/crowdyjs dist-tags`), and its links go to the dev docs site. A
|
|
30
|
+
plain `npm install` resolves `latest`, the production release, which has no `client.exec`.
|
|
31
|
+
|
|
28
32
|
**Server compatibility.** A release selects fields the Game API it was built against has,
|
|
29
33
|
so it needs that Game API or newer; promote the Game API before the SDK on each tier.
|
|
30
34
|
|
|
@@ -196,8 +200,8 @@ Notes:
|
|
|
196
200
|
- Use `client.auth.setToken(token)` to seed a token externally (e.g. when
|
|
197
201
|
restoring auth from a non-default storage).
|
|
198
202
|
|
|
199
|
-
Deeper reading: [Portals & app-scoped tokens](https://docs.crowdedkingdoms.com/management-api/portals-and-app-tokens)
|
|
200
|
-
and [Sign in](https://docs.crowdedkingdoms.com/management-api/authentication).
|
|
203
|
+
Deeper reading: [Portals & app-scoped tokens](https://docs.dev.crowdedkingdoms.com/management-api/portals-and-app-tokens)
|
|
204
|
+
and [Sign in](https://docs.dev.crowdedkingdoms.com/management-api/authentication).
|
|
201
205
|
|
|
202
206
|
### Org-managed players
|
|
203
207
|
|
|
@@ -338,7 +342,7 @@ never told about, so a native refresh without it is a re-placement.
|
|
|
338
342
|
| `client.kit(appId)` | Game Kit: typed clients for the ck-exec starter hubs (world, matchmaking, sessions, NPCs and pets) on one shared connection, their topology, realtime conventions, and parties, guilds and chat (`kit.social`) — see [Game Kit](#game-kit). |
|
|
339
343
|
| `createWorldSession(client, appId, config)` | World Stores: opt-in, SDK-managed game state from the `@crowdedkingdoms/crowdyjs/stores` subpath — see [World Stores](#world-stores). |
|
|
340
344
|
|
|
341
|
-
**Studio-admin surface** (privileged; drive with
|
|
345
|
+
**Studio-admin surface** (privileged; drive with an org admin's session, or an org token for the managed-player calls,
|
|
342
346
|
grouped under `client.admin` and mirrored at the top level):
|
|
343
347
|
|
|
344
348
|
| Sub-client | What it does |
|
|
@@ -394,7 +398,7 @@ query AppForRouting($appId: BigInt!) {
|
|
|
394
398
|
`CrowdyClient` with `httpUrl: gameApiUrl` (and the matching `wsUrl`) holding
|
|
395
399
|
that app's app-scoped token, then drive gameplay through that client. Apps
|
|
396
400
|
with no `gameApiUrl` keep working against the default `httpUrl` you
|
|
397
|
-
configured. See [Loading an app's Game API](https://docs.crowdedkingdoms.com/crowdyjs/shared-environment-routing).
|
|
401
|
+
configured. See [Loading an app's Game API](https://docs.dev.crowdedkingdoms.com/crowdyjs/shared-environment-routing).
|
|
398
402
|
|
|
399
403
|
## Realtime notifications
|
|
400
404
|
|
|
@@ -820,7 +824,7 @@ reach your bundle. Reads are synchronous snapshots and writes happen on
|
|
|
820
824
|
WebSocket events (not `requestAnimationFrame`), so render loops read freely
|
|
821
825
|
and a backgrounded tab keeps ingesting updates; pass `workerTicker()` to also
|
|
822
826
|
keep timer-driven sends at full rate while hidden. See the
|
|
823
|
-
[World Stores guide](https://docs.crowdedkingdoms.com/crowdyjs/stores).
|
|
827
|
+
[World Stores guide](https://docs.dev.crowdedkingdoms.com/crowdyjs/stores).
|
|
824
828
|
|
|
825
829
|
## Game Kit
|
|
826
830
|
|
|
@@ -898,7 +902,7 @@ The protocol is held to ck-exec's golden record of the starters
|
|
|
898
902
|
(`test/unit/fixtures/kit-protocol.json`): every module call and topic in it is replayed in
|
|
899
903
|
`test/unit/game-kit.test.mjs`. The blueprints, `kit.deploy`, the engines and the model-backed
|
|
900
904
|
helpers went with the game model in 18.0.0; the hub modules replace them. See the
|
|
901
|
-
[Game Kit docs](https://docs.crowdedkingdoms.com/game-kit/intro) and
|
|
905
|
+
[Game Kit docs](https://docs.dev.crowdedkingdoms.com/game-kit/intro) and
|
|
902
906
|
[MIGRATION.md](MIGRATION.md).
|
|
903
907
|
|
|
904
908
|
## ck-exec
|
|
@@ -962,7 +966,7 @@ Integers above 2^53 decode as `number` and lose precision unless you pass
|
|
|
962
966
|
`{ decode: { useBigInt64: true } }`. A call's whole numbers outside 32 bits (a timestamp in
|
|
963
967
|
milliseconds, a player id) go out as 64-bit integers (18.11.0; before, as floats, which a
|
|
964
968
|
hub's integer fields refuse). The wire format is in the
|
|
965
|
-
[ck-exec docs](https://docs.crowdedkingdoms.com/exec/intro).
|
|
969
|
+
[ck-exec docs](https://docs.dev.crowdedkingdoms.com/exec/intro).
|
|
966
970
|
|
|
967
971
|
### A mod's CLIENT half
|
|
968
972
|
|
|
@@ -1033,7 +1037,7 @@ counts what was dropped); `invoke` sends at most 256 KiB each way and is refused
|
|
|
1033
1037
|
module is not running. `NOT_FOUND` holds a CLIENT half back 15 s and `RATE_LIMITED` 60 s. The
|
|
1034
1038
|
grid's owner is asked about their own CLIENT halves like anyone; answer yes in `confirm` when
|
|
1035
1039
|
`prompt.authorId` is the player. See
|
|
1036
|
-
[CLIENT halves](https://docs.crowdedkingdoms.com/exec/client-halves).
|
|
1040
|
+
[CLIENT halves](https://docs.dev.crowdedkingdoms.com/exec/client-halves).
|
|
1037
1041
|
|
|
1038
1042
|
## Hosting a game on Crowdy Games
|
|
1039
1043
|
|
|
@@ -1152,8 +1156,8 @@ CLIENT project needs ck-api `v2.25.1` or later. A CLIENT crate still on the lega
|
|
|
1152
1156
|
`mountCrowdyStudio` and the controller take `mods: client.exec`. Crowdy Studio runs nothing
|
|
1153
1157
|
on legacy player compute since 18.0.0.
|
|
1154
1158
|
|
|
1155
|
-
See [CLIENT halves](https://docs.crowdedkingdoms.com/exec/client-halves), [mods](https://docs.crowdedkingdoms.com/exec/mods)
|
|
1156
|
-
and [Embed Crowdy Studio in your game](https://docs.crowdedkingdoms.com/crowdyjs/crowdy-studio-embed).
|
|
1159
|
+
See [CLIENT halves](https://docs.dev.crowdedkingdoms.com/exec/client-halves), [mods](https://docs.dev.crowdedkingdoms.com/exec/mods)
|
|
1160
|
+
and [Embed Crowdy Studio in your game](https://docs.dev.crowdedkingdoms.com/crowdyjs/crowdy-studio-embed).
|
|
1157
1161
|
|
|
1158
1162
|
### The Studio agent (DeepSeek Harness in the browser)
|
|
1159
1163
|
|
|
@@ -1344,7 +1348,7 @@ no other repositories and no network access required:
|
|
|
1344
1348
|
`src/generated/graphql-schema.ts`, the generated schema types.
|
|
1345
1349
|
|
|
1346
1350
|
Schema refresh is explicit, from the published
|
|
1347
|
-
[SDL](https://docs.crowdedkingdoms.com/schema/game-api.graphql):
|
|
1351
|
+
[SDL](https://docs.dev.crowdedkingdoms.com/schema/game-api.graphql):
|
|
1348
1352
|
|
|
1349
1353
|
```bash
|
|
1350
1354
|
npm run schema:sync:prod
|
package/dist/default-origin.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GENERATED — do not edit. The operator tooling's
|
|
3
|
-
* `sync-client-origins.mjs --write --tier
|
|
3
|
+
* `sync-client-origins.mjs --write --tier dev` writes this file, and
|
|
4
4
|
* `check-sdk-default-origin.mjs` refuses it when it names the wrong tier or a
|
|
5
5
|
* host that declaration does not carry. Regenerate; never hand-edit.
|
|
6
6
|
*
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
* than no default at all. Every fallback this SDK ever removed named a host that
|
|
11
11
|
* was already dead. A generated file plus a gate is what makes this one different.
|
|
12
12
|
*
|
|
13
|
-
* Source: the operator's per-tier public CK API origin declaration, tier '
|
|
13
|
+
* Source: the operator's per-tier public CK API origin declaration, tier 'dev'
|
|
14
14
|
*/
|
|
15
15
|
/** The tier this build of the SDK is published for. */
|
|
16
|
-
export declare const CROWDY_DEFAULT_TIER = "
|
|
16
|
+
export declare const CROWDY_DEFAULT_TIER = "dev";
|
|
17
17
|
/** The public CK API origin for that tier. */
|
|
18
|
-
export declare const CROWDY_DEFAULT_HTTP_ORIGIN = "https://ck.
|
|
18
|
+
export declare const CROWDY_DEFAULT_HTTP_ORIGIN = "https://ck.dev.crowdedkingdoms.com";
|
|
19
19
|
/** The same host over WebSocket. A scheme is composed; a hostname is looked up. */
|
|
20
|
-
export declare const CROWDY_DEFAULT_WS_ORIGIN = "wss://ck.
|
|
20
|
+
export declare const CROWDY_DEFAULT_WS_ORIGIN = "wss://ck.dev.crowdedkingdoms.com";
|
|
21
21
|
/** The bare hostname, for callers that need to compare rather than dial. */
|
|
22
|
-
export declare const CROWDY_DEFAULT_HOST = "ck.
|
|
22
|
+
export declare const CROWDY_DEFAULT_HOST = "ck.dev.crowdedkingdoms.com";
|
|
23
23
|
//# sourceMappingURL=default-origin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-origin.d.ts","sourceRoot":"","sources":["../src/default-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"default-origin.d.ts","sourceRoot":"","sources":["../src/default-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,uCAAuC,CAAC;AAE/E,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,qCAAqC,CAAC;AAE3E,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,+BAA+B,CAAC"}
|
package/dist/default-origin.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GENERATED — do not edit. The operator tooling's
|
|
3
|
-
* `sync-client-origins.mjs --write --tier
|
|
3
|
+
* `sync-client-origins.mjs --write --tier dev` writes this file, and
|
|
4
4
|
* `check-sdk-default-origin.mjs` refuses it when it names the wrong tier or a
|
|
5
5
|
* host that declaration does not carry. Regenerate; never hand-edit.
|
|
6
6
|
*
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
* than no default at all. Every fallback this SDK ever removed named a host that
|
|
11
11
|
* was already dead. A generated file plus a gate is what makes this one different.
|
|
12
12
|
*
|
|
13
|
-
* Source: the operator's per-tier public CK API origin declaration, tier '
|
|
13
|
+
* Source: the operator's per-tier public CK API origin declaration, tier 'dev'
|
|
14
14
|
*/
|
|
15
15
|
/** The tier this build of the SDK is published for. */
|
|
16
|
-
export const CROWDY_DEFAULT_TIER = '
|
|
16
|
+
export const CROWDY_DEFAULT_TIER = 'dev';
|
|
17
17
|
/** The public CK API origin for that tier. */
|
|
18
|
-
export const CROWDY_DEFAULT_HTTP_ORIGIN = 'https://ck.
|
|
18
|
+
export const CROWDY_DEFAULT_HTTP_ORIGIN = 'https://ck.dev.crowdedkingdoms.com';
|
|
19
19
|
/** The same host over WebSocket. A scheme is composed; a hostname is looked up. */
|
|
20
|
-
export const CROWDY_DEFAULT_WS_ORIGIN = 'wss://ck.
|
|
20
|
+
export const CROWDY_DEFAULT_WS_ORIGIN = 'wss://ck.dev.crowdedkingdoms.com';
|
|
21
21
|
/** The bare hostname, for callers that need to compare rather than dial. */
|
|
22
|
-
export const CROWDY_DEFAULT_HOST = 'ck.
|
|
22
|
+
export const CROWDY_DEFAULT_HOST = 'ck.dev.crowdedkingdoms.com';
|
package/dist/domains/udp.d.ts
CHANGED
|
@@ -341,7 +341,10 @@ export declare class UdpAPI {
|
|
|
341
341
|
* Send a spatial text/chat packet, fanned out to nearby actors as a
|
|
342
342
|
* `ClientTextNotification`. Fire-and-forget; opens a UDP proxy session
|
|
343
343
|
* automatically. The sender receives no success echo; failures arrive
|
|
344
|
-
* asynchronously as `GenericErrorResponse` on {@link subscribe}.
|
|
344
|
+
* asynchronously as `GenericErrorResponse` on {@link subscribe}. Needs the
|
|
345
|
+
* `use_text_chat` runtime permission on the app (Game API v2.55.0; every tier
|
|
346
|
+
* that grants `access` has it unless the app took it away): without it the
|
|
347
|
+
* server answers `UNAUTHORIZED`.
|
|
345
348
|
*
|
|
346
349
|
* @param input - {@link ClientTextPacketInput}:
|
|
347
350
|
* - `appId` — owning app id (`BigInt` as a decimal string).
|
|
@@ -432,6 +435,9 @@ export declare class UdpAPI {
|
|
|
432
435
|
* Fire-and-forget: the sender receives no echo, so there is no
|
|
433
436
|
* `sendSingleActorMessageAndWait` variant. The target receives a
|
|
434
437
|
* `SingleActorMessageNotification` on its `udpNotifications` subscription.
|
|
438
|
+
* Needs the `use_direct_messages` runtime permission on the app (Game API
|
|
439
|
+
* v2.55.0; every tier that grants `access` has it unless the app took it
|
|
440
|
+
* away): without it the server answers `UNAUTHORIZED`.
|
|
435
441
|
*
|
|
436
442
|
* @param input - {@link SingleActorMessageInput}:
|
|
437
443
|
* - `appId` — the destination actor's app id (`BigInt` as a decimal string).
|
|
@@ -477,8 +483,10 @@ export declare class UdpAPI {
|
|
|
477
483
|
* Publish a message to a channel. Delivered to every active member of the
|
|
478
484
|
* channel (regardless of location) as a `ChannelMessageNotification` on their
|
|
479
485
|
* `udpNotifications` subscription. Requires the channel `send_messages`
|
|
480
|
-
* permission
|
|
481
|
-
*
|
|
486
|
+
* permission and, from Game API v2.55.0, the `use_text_chat` runtime
|
|
487
|
+
* permission on the channel's app; without either the server answers
|
|
488
|
+
* `UNAUTHORIZED` on {@link subscribe}. Fire-and-forget: the sender receives
|
|
489
|
+
* no echo.
|
|
482
490
|
*
|
|
483
491
|
* @param input - {@link ChannelMessageInput}:
|
|
484
492
|
* - `channelId` — the channel id (`groups.group_id`) as a `BigInt` decimal
|
|
@@ -489,8 +497,9 @@ export declare class UdpAPI {
|
|
|
489
497
|
* 1024 bytes.
|
|
490
498
|
* - `sequenceNumber` — optional uint8 (0-255) correlation id.
|
|
491
499
|
* @returns `true` when accepted for sending — **not** confirmation of
|
|
492
|
-
* delivery;
|
|
493
|
-
*
|
|
500
|
+
* delivery; a message refused for a missing `send_messages` or
|
|
501
|
+
* `use_text_chat` still returns `true` (the refusal arrives as a
|
|
502
|
+
* `genericError` notification).
|
|
494
503
|
* @throws {CrowdyGraphQLError} on auth/validation failures.
|
|
495
504
|
*/
|
|
496
505
|
sendChannelMessage(input: SendChannelMessageMutationVariables['input']): Promise<boolean>;
|
|
@@ -518,8 +527,8 @@ export declare class UdpAPI {
|
|
|
518
527
|
* {@link sendChannelMessage}, when one of its live actors is in `appId`
|
|
519
528
|
* within `maxDistance` chunks of `chunk`, measured as the straight-line
|
|
520
529
|
* distance between chunk coordinates, boundary included. A member with no
|
|
521
|
-
* live actor does not receive it. Same send right
|
|
522
|
-
* the sender receives no echo.
|
|
530
|
+
* live actor does not receive it. Same send right and `use_text_chat` as
|
|
531
|
+
* `sendChannelMessage`; the sender receives no echo.
|
|
523
532
|
*
|
|
524
533
|
* @param input - {@link RangedChannelMessageInput}:
|
|
525
534
|
* - `channelId` — the channel id (`groups.group_id`) as a `BigInt` decimal
|
|
@@ -534,8 +543,9 @@ export declare class UdpAPI {
|
|
|
534
543
|
* 2147483647. Not the 0-8 Chebyshev ring count spatial sends take.
|
|
535
544
|
* - `sequenceNumber` — optional uint8 (0-255) correlation id.
|
|
536
545
|
* @returns `true` when accepted for sending — **not** confirmation of
|
|
537
|
-
* delivery. A refusal (no send right
|
|
538
|
-
* `INVALID_APP_ID`) arrives as a
|
|
546
|
+
* delivery. A refusal (no send right or no `use_text_chat`:
|
|
547
|
+
* `UNAUTHORIZED`; another app: `INVALID_APP_ID`) arrives as a
|
|
548
|
+
* `genericError` notification.
|
|
539
549
|
* @throws {CrowdyGraphQLError} on auth/validation failures.
|
|
540
550
|
*/
|
|
541
551
|
sendRangedChannelMessage(input: SendRangedChannelMessageMutationVariables['input']): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../../src/domains/udp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../../src/domains/udp.ts"],"names":[],"mappings":"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"}
|
package/dist/domains/udp.js
CHANGED
|
@@ -491,7 +491,10 @@ export class UdpAPI {
|
|
|
491
491
|
* Send a spatial text/chat packet, fanned out to nearby actors as a
|
|
492
492
|
* `ClientTextNotification`. Fire-and-forget; opens a UDP proxy session
|
|
493
493
|
* automatically. The sender receives no success echo; failures arrive
|
|
494
|
-
* asynchronously as `GenericErrorResponse` on {@link subscribe}.
|
|
494
|
+
* asynchronously as `GenericErrorResponse` on {@link subscribe}. Needs the
|
|
495
|
+
* `use_text_chat` runtime permission on the app (Game API v2.55.0; every tier
|
|
496
|
+
* that grants `access` has it unless the app took it away): without it the
|
|
497
|
+
* server answers `UNAUTHORIZED`.
|
|
495
498
|
*
|
|
496
499
|
* @param input - {@link ClientTextPacketInput}:
|
|
497
500
|
* - `appId` — owning app id (`BigInt` as a decimal string).
|
|
@@ -614,6 +617,9 @@ export class UdpAPI {
|
|
|
614
617
|
* Fire-and-forget: the sender receives no echo, so there is no
|
|
615
618
|
* `sendSingleActorMessageAndWait` variant. The target receives a
|
|
616
619
|
* `SingleActorMessageNotification` on its `udpNotifications` subscription.
|
|
620
|
+
* Needs the `use_direct_messages` runtime permission on the app (Game API
|
|
621
|
+
* v2.55.0; every tier that grants `access` has it unless the app took it
|
|
622
|
+
* away): without it the server answers `UNAUTHORIZED`.
|
|
617
623
|
*
|
|
618
624
|
* @param input - {@link SingleActorMessageInput}:
|
|
619
625
|
* - `appId` — the destination actor's app id (`BigInt` as a decimal string).
|
|
@@ -681,8 +687,10 @@ export class UdpAPI {
|
|
|
681
687
|
* Publish a message to a channel. Delivered to every active member of the
|
|
682
688
|
* channel (regardless of location) as a `ChannelMessageNotification` on their
|
|
683
689
|
* `udpNotifications` subscription. Requires the channel `send_messages`
|
|
684
|
-
* permission
|
|
685
|
-
*
|
|
690
|
+
* permission and, from Game API v2.55.0, the `use_text_chat` runtime
|
|
691
|
+
* permission on the channel's app; without either the server answers
|
|
692
|
+
* `UNAUTHORIZED` on {@link subscribe}. Fire-and-forget: the sender receives
|
|
693
|
+
* no echo.
|
|
686
694
|
*
|
|
687
695
|
* @param input - {@link ChannelMessageInput}:
|
|
688
696
|
* - `channelId` — the channel id (`groups.group_id`) as a `BigInt` decimal
|
|
@@ -693,8 +701,9 @@ export class UdpAPI {
|
|
|
693
701
|
* 1024 bytes.
|
|
694
702
|
* - `sequenceNumber` — optional uint8 (0-255) correlation id.
|
|
695
703
|
* @returns `true` when accepted for sending — **not** confirmation of
|
|
696
|
-
* delivery;
|
|
697
|
-
*
|
|
704
|
+
* delivery; a message refused for a missing `send_messages` or
|
|
705
|
+
* `use_text_chat` still returns `true` (the refusal arrives as a
|
|
706
|
+
* `genericError` notification).
|
|
698
707
|
* @throws {CrowdyGraphQLError} on auth/validation failures.
|
|
699
708
|
*/
|
|
700
709
|
async sendChannelMessage(input) {
|
|
@@ -742,8 +751,8 @@ export class UdpAPI {
|
|
|
742
751
|
* {@link sendChannelMessage}, when one of its live actors is in `appId`
|
|
743
752
|
* within `maxDistance` chunks of `chunk`, measured as the straight-line
|
|
744
753
|
* distance between chunk coordinates, boundary included. A member with no
|
|
745
|
-
* live actor does not receive it. Same send right
|
|
746
|
-
* the sender receives no echo.
|
|
754
|
+
* live actor does not receive it. Same send right and `use_text_chat` as
|
|
755
|
+
* `sendChannelMessage`; the sender receives no echo.
|
|
747
756
|
*
|
|
748
757
|
* @param input - {@link RangedChannelMessageInput}:
|
|
749
758
|
* - `channelId` — the channel id (`groups.group_id`) as a `BigInt` decimal
|
|
@@ -758,8 +767,9 @@ export class UdpAPI {
|
|
|
758
767
|
* 2147483647. Not the 0-8 Chebyshev ring count spatial sends take.
|
|
759
768
|
* - `sequenceNumber` — optional uint8 (0-255) correlation id.
|
|
760
769
|
* @returns `true` when accepted for sending — **not** confirmation of
|
|
761
|
-
* delivery. A refusal (no send right
|
|
762
|
-
* `INVALID_APP_ID`) arrives as a
|
|
770
|
+
* delivery. A refusal (no send right or no `use_text_chat`:
|
|
771
|
+
* `UNAUTHORIZED`; another app: `INVALID_APP_ID`) arrives as a
|
|
772
|
+
* `genericError` notification.
|
|
763
773
|
* @throws {CrowdyGraphQLError} on auth/validation failures.
|
|
764
774
|
*/
|
|
765
775
|
async sendRangedChannelMessage(input) {
|
|
@@ -49,6 +49,32 @@ export type AccountBlock = {
|
|
|
49
49
|
/** The account. */
|
|
50
50
|
userId: Scalars['BigInt']['output'];
|
|
51
51
|
};
|
|
52
|
+
/** An account erasure: what deleting an account erases (its player-side content) and where that stands. Usage, billing, audit and legal records stay, and so does everything the account owns as a developer. */
|
|
53
|
+
export type AccountErasure = {
|
|
54
|
+
__typename?: 'AccountErasure';
|
|
55
|
+
/** Apps the account had content in. */
|
|
56
|
+
apps: Scalars['Int']['output'];
|
|
57
|
+
/** Of those, the apps already erased. */
|
|
58
|
+
appsDone: Scalars['Int']['output'];
|
|
59
|
+
/** When it finished, or null. */
|
|
60
|
+
completedAt: Maybe<Scalars['DateTime']['output']>;
|
|
61
|
+
/** The last error, from the finish or from an app, or null. */
|
|
62
|
+
lastError: Maybe<Scalars['String']['output']>;
|
|
63
|
+
/** OPERATOR ONLY. While a legal hold defers the erasure, what the account row said before it was blanked (email, gamertag, external id, organization), as JSON; null otherwise. */
|
|
64
|
+
preservedIdentity: Maybe<Scalars['String']['output']>;
|
|
65
|
+
/** Why it was asked for: SELF_DELETE (the player deleted its own account), MANAGED_DELETE (its organization deleted it) or OPERATOR. */
|
|
66
|
+
reason: Scalars['String']['output'];
|
|
67
|
+
/** When it was asked for. */
|
|
68
|
+
requestedAt: Scalars['DateTime']['output'];
|
|
69
|
+
/** Who asked: user:<id>, org_token:<id> or operator:<id>. */
|
|
70
|
+
requestedBy: Maybe<Scalars['String']['output']>;
|
|
71
|
+
/** PENDING (apps still to do), RUNNING (finishing), DONE, FAILED (the finish threw; it is retried) or DEFERRED_HOLD (a legal hold applies; nothing is erased until it is released). */
|
|
72
|
+
status: Scalars['String']['output'];
|
|
73
|
+
/** What was erased, as JSON: rows removed per table, summed over the apps, and the account-wide rows. */
|
|
74
|
+
summary: Maybe<Scalars['String']['output']>;
|
|
75
|
+
/** The deleted account. */
|
|
76
|
+
userId: Scalars['BigInt']['output'];
|
|
77
|
+
};
|
|
52
78
|
export type Actor = {
|
|
53
79
|
__typename?: 'Actor';
|
|
54
80
|
/** App (game) this actor belongs to. BigInt serialized as a decimal string. */
|
|
@@ -902,6 +928,8 @@ export type App = {
|
|
|
902
928
|
redirectUris: Array<Scalars['String']['output']>;
|
|
903
929
|
/** Whether replay logging is on: the realtime servers record every client message they accept for this app, searchable with inputLogSessions and readable with inputLogMessages, and billed as stored input logs. False (the default) records nothing ("No replication logging"). Set with updateApp (manage_apps); turning it on needs a wallet that covers the projected cost of one retention period, or a billing-exempt org. */
|
|
904
930
|
replayLoggingEnabled: Scalars['Boolean']['output'];
|
|
931
|
+
/** Whether replay logging records the app's voice, webcam video and channel audio messages too. True (the default) records them with every other message; false leaves them out of the input log while everything else is still recorded. Applies only while replayLoggingEnabled is on. Set with updateApp (manage_apps). */
|
|
932
|
+
replayLoggingRecordsMedia: Scalars['Boolean']['output'];
|
|
905
933
|
/**
|
|
906
934
|
* Reserved realtime (UDP) capacity in bytes/s for shared apps. Superseded by reservedUdpBytesPerSec.
|
|
907
935
|
* @deprecated Renamed 2026-09-01 when reservations split by traffic type. Use reservedUdpBytesPerSec; this returns the same value for one release.
|
|
@@ -2031,6 +2059,8 @@ export type ConnectionPageInfo = {
|
|
|
2031
2059
|
export type CreateAccessTierInput = {
|
|
2032
2060
|
/** Numeric id of the app the tier belongs to. The caller must hold manage_access_tiers on this app. */
|
|
2033
2061
|
appId: Scalars['BigInt']['input'];
|
|
2062
|
+
/** When true (the default) and the tier grants access, it also grants use_text_chat and use_direct_messages, whether or not permissionKeys names them: without them the realtime servers refuse the tier’s text chat and direct messages. Pass false to grant exactly permissionKeys, for example a tier without text chat. */
|
|
2063
|
+
applyCommunicationDefaults?: InputMaybe<Scalars['Boolean']['input']>;
|
|
2034
2064
|
/** Optional marketing description of the tier. */
|
|
2035
2065
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
2036
2066
|
/** Optional; whether this is the app's default tier. Defaults to false. */
|
|
@@ -4485,6 +4515,28 @@ export type InviteOrgMemberInput = {
|
|
|
4485
4515
|
/** user_id of the user to add (BigInt as string). */
|
|
4486
4516
|
userId: Scalars['BigInt']['input'];
|
|
4487
4517
|
};
|
|
4518
|
+
/** A legal hold an operator set on an organization or on one account. While it applies, deleting a managed player it covers is refused with LEGAL_HOLD, a player’s own account deletion closes the account but keeps its content (and preserves its identity) until the hold is released, and no erasure runs. An organization’s hold covers its managed players. A released hold stays readable as the record. */
|
|
4519
|
+
export type LegalHold = {
|
|
4520
|
+
__typename?: 'LegalHold';
|
|
4521
|
+
/** Whether it applies now. */
|
|
4522
|
+
active: Scalars['Boolean']['output'];
|
|
4523
|
+
/** The hold. */
|
|
4524
|
+
holdId: Scalars['BigInt']['output'];
|
|
4525
|
+
/** The organization held (its public id), or null for a hold on one account. */
|
|
4526
|
+
orgId: Maybe<Scalars['BigInt']['output']>;
|
|
4527
|
+
/** Why, as the operator wrote it. */
|
|
4528
|
+
reason: Scalars['String']['output'];
|
|
4529
|
+
/** When it was released, or null while it applies. */
|
|
4530
|
+
releasedAt: Maybe<Scalars['DateTime']['output']>;
|
|
4531
|
+
/** The operator who released it, or null while it applies. */
|
|
4532
|
+
releasedBy: Maybe<Scalars['BigInt']['output']>;
|
|
4533
|
+
/** When it was set. */
|
|
4534
|
+
setAt: Scalars['DateTime']['output'];
|
|
4535
|
+
/** The operator who set it. */
|
|
4536
|
+
setBy: Scalars['BigInt']['output'];
|
|
4537
|
+
/** The account held, or null for a hold on an organization. */
|
|
4538
|
+
userId: Maybe<Scalars['BigInt']['output']>;
|
|
4539
|
+
};
|
|
4488
4540
|
/** Link an additional federated identity to the signed-in account. */
|
|
4489
4541
|
export type LinkIdentityInput = {
|
|
4490
4542
|
code: Scalars['String']['input'];
|
|
@@ -4735,9 +4787,9 @@ export type Mutation = {
|
|
|
4735
4787
|
deleteChannelRole: Scalars['Boolean']['output'];
|
|
4736
4788
|
/** Delete a studio-created peer grid so its chunk box no longer blocks overlapping grid creation. Requires app-admin ('manage_apps'). Returns a hybrid response — on success `gridId` is populated and `error` is NO_ERROR; on failure `gridId` is null and `error` is a UDP-style error code (e.g. GRID_NOT_FOUND, CANNOT_DELETE_DEFAULT_WORLD_GRID, GRID_HAS_NESTED_CHILDREN). The open-by-default world grid and any grid that still contains nested child grids cannot be deleted. */
|
|
4737
4789
|
deleteGrid: DeleteGridResponse;
|
|
4738
|
-
/** Delete a managed player: its sessions end and its
|
|
4790
|
+
/** Delete a managed player, as an account deletion is: its sessions end, its externalId and gamertag are removed, and its player-side content is erased within minutes (Crowdy Studio projects, libraries and agent sessions, mods, actors, avatars and saved state, access grants, grid claims, team and channel memberships). Usage and billing records stay; world edits stay, under the account’s now anonymous id; recorded inputs age out with the input log’s retention. Refused with LEGAL_HOLD while a legal hold covers the player or the organization: disable it instead (updateManagedPlayer), which keeps everything. Signing the same external id in again creates a new player. False when there was no such player. An org token with players:manage, or an org admin with manage_players. */
|
|
4739
4791
|
deleteManagedPlayer: Scalars['Boolean']['output'];
|
|
4740
|
-
/** DESTRUCTIVE self-service:
|
|
4792
|
+
/** DESTRUCTIVE self-service: deletes the authenticated caller's OWN account. Every session, app token, realtime connection and ck-exec socket ends; the email, password, gamertag and profile state are removed from the account; and its player-side content is erased within minutes: Crowdy Studio projects, libraries and agent sessions, mods, actors, avatars and saved state, access grants, grid claims, and team and channel memberships. Wallet, billing, usage, audit and legal records stay, and so does everything the account owns as a developer (organizations, apps, published games); world edits stay, under the account's now anonymous id; recorded inputs age out with the input log's retention. Acts only on the caller (no target argument). Requires a valid token. */
|
|
4741
4793
|
deleteMyAccount: Scalars['Boolean']['output'];
|
|
4742
4794
|
/** Deletes an organization role. Requires the 'manage_members' permission on the role's org (super admins bypass). DESTRUCTIVE: removes the role and unassigns it from all members. Returns false if the role does not exist. */
|
|
4743
4795
|
deleteOrgRole: Scalars['Boolean']['output'];
|
|
@@ -4863,6 +4915,8 @@ export type Mutation = {
|
|
|
4863
4915
|
reinstateOrganization: OrgRetirementType;
|
|
4864
4916
|
/** Release a one-chunk grid previously created through claimGridChunk. Requires an ordinary app-scoped player token and the caller must still be its current user owner. Refuses foreign grids, studio/marketplace grids, and grids assigned through legacy claimGridOwnership. Atomically removes pending claim requests and invites, self-claim ownership, direct/effective ACL rows, and the grid so its chunk can be claimed again. */
|
|
4865
4917
|
releaseClaimedGrid: ReleaseClaimedGridResult;
|
|
4918
|
+
/** OPERATOR: release a legal hold. The hold stays as the record. Erasures it deferred resume once no other hold covers their accounts. */
|
|
4919
|
+
releaseLegalHold: LegalHold;
|
|
4866
4920
|
/** Remove a member from a channel. Requires the 'manage_members' channel permission, except that any member may remove themselves. Notifies Buddy to stop routing to the removed member. Returns true if a membership was removed. */
|
|
4867
4921
|
removeChannelMember: Scalars['Boolean']['output'];
|
|
4868
4922
|
/** Removes a user from an organization. Requires the 'manage_members' permission on the org (super admins bypass). DESTRUCTIVE: revokes the user's membership and role assignments in that org. Returns false if the user was not a member. */
|
|
@@ -4871,6 +4925,8 @@ export type Mutation = {
|
|
|
4871
4925
|
removeSharedPaymentMethod: Scalars['Boolean']['output'];
|
|
4872
4926
|
/** Remove a member from a team. Requires the 'manage_members' team permission, except that any member may remove themselves. DESTRUCTIVE: drops the membership and its roles. Returns true if a membership was removed. */
|
|
4873
4927
|
removeTeamMember: Scalars['Boolean']['output'];
|
|
4928
|
+
/** OPERATOR: erase the player-side content of a deleted account, as a deletion does: one deleted before account erasure existed (2026-10-23), or one whose erasure stopped after its retries (its attempts start again). Refused for an account that is not deleted. A legal hold defers it. */
|
|
4929
|
+
requestAccountErasure: AccountErasure;
|
|
4874
4930
|
/** Passwordless: email a one-time magic sign-in link to the address (creates the account on first sign-in). Always reports sent=true (no account enumeration). Public; first-party origins only (HOSTED_SIGN_IN_REQUIRED otherwise); rate-limited. */
|
|
4875
4931
|
requestLoginLink: RequestLoginLinkResult;
|
|
4876
4932
|
/** Starts the password-reset flow by emailing a reset link to the address. Always returns true regardless of whether the email exists (prevents account enumeration). The reset link is also the ownership-proven way an existing passwordless account adds a password. Public; first-party origins only (HOSTED_SIGN_IN_REQUIRED otherwise); rate-limited. */
|
|
@@ -4915,17 +4971,17 @@ export type Mutation = {
|
|
|
4915
4971
|
sendAudioPacket: Scalars['Boolean']['output'];
|
|
4916
4972
|
/** Send audio to a channel: delivered to every active member of the channel, wherever they are (party or guild voice), as a ChannelAudioNotification on udpNotifications. The payload is opaque (at most 1024 bytes): your app or an SDK voice helper defines the format and codec. Requires a bearer game token, the channel send_voice permission and the player’s use_voice_chat; without either the server refuses it with UNAUTHORIZED (asynchronously, on udpNotifications). Opens a UDP proxy session automatically if none exists. The sender receives no echo. Every member’s downlink is billed as egress, so keep voice channels small. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING, not delivered; correlate failures by sequenceNumber (correlation only, not an idempotency key). */
|
|
4917
4973
|
sendChannelAudio: Scalars['Boolean']['output'];
|
|
4918
|
-
/** Publish a message to a channel, delivered to every active member of the channel (not chunk-routed) as a ChannelMessageNotification on udpNotifications. Requires a bearer game token
|
|
4974
|
+
/** Publish a message to a channel, delivered to every active member of the channel (not chunk-routed) as a ChannelMessageNotification on udpNotifications. Requires a bearer game token, the channel send_messages permission and the use_text_chat runtime permission on the channel’s app; lacking either the game server answers asynchronously with a GenericErrorResponse (errorCode UNAUTHORIZED). Opens a UDP proxy session automatically if none exists. The sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4919
4975
|
sendChannelMessage: Scalars['Boolean']['output'];
|
|
4920
4976
|
/** Send a custom, app-defined client event (identified by eventType, a uint16) for spatial replication to nearby chunks; nearby actors receive it as a ClientEventNotification. 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 — NOT that the world processed it. Failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4921
4977
|
sendClientEvent: Scalars['Boolean']['output'];
|
|
4922
|
-
/** Publish a message to a channel that only reaches members near an origin chunk: a member receives it, as an ordinary ChannelMessageNotification on udpNotifications, when one of its live actors is in the same app within maxDistance chunks of input.chunk (straight-line distance between chunk coordinates, boundary included). A member with no live actor does not receive it. Requires a bearer game token
|
|
4978
|
+
/** Publish a message to a channel that only reaches members near an origin chunk: a member receives it, as an ordinary ChannelMessageNotification on udpNotifications, when one of its live actors is in the same app within maxDistance chunks of input.chunk (straight-line distance between chunk coordinates, boundary included). A member with no live actor does not receive it. Requires a bearer game token, the channel send_messages permission and use_text_chat, as for sendChannelMessage; the origin app must be the token’s app. Opens a UDP proxy session automatically if none exists. The sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications (UNAUTHORIZED without the send right or use_text_chat, INVALID_APP_ID for another app), correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4923
4979
|
sendRangedChannelMessage: Scalars['Boolean']['output'];
|
|
4924
|
-
/** Send a direct actor-to-actor message, delivered only to the actor identified by targetUuid (NOT broadcast to nearby actors). The sender must know the destination actor’s current chunk. Requires a bearer game token;
|
|
4980
|
+
/** Send a direct actor-to-actor message, delivered only to the actor identified by targetUuid (NOT broadcast to nearby actors). The sender must know the destination actor’s current chunk. Requires a bearer game token and the use_direct_messages runtime permission on the app (a tier that grants access grants it unless the app took it away); without it the game server answers asynchronously with a GenericErrorResponse (errorCode UNAUTHORIZED). Opens a UDP proxy session automatically if none exists. The target receives a SingleActorMessageNotification on udpNotifications; the sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4925
4981
|
sendSingleActorMessage: Scalars['Boolean']['output'];
|
|
4926
4982
|
/** Operator only (is_operator). Sends a plain test message to one address and returns the SES message id. SIDE EFFECTS: a real outbound email billed to the shared SES identity, and a `send` row in email_events. Prefer the AWS mailbox simulator (success@ / bounce@ / complaint@simulator.amazonses.com), which exercises the whole path without touching a real inbox or a real reputation. `sent: true` with `simulated: true` means SEND_EMAILS is off and nothing left the building -- read both fields. */
|
|
4927
4983
|
sendTestEmail: SendTestEmailResult;
|
|
4928
|
-
/** Send a spatial text/chat packet, fanned out to nearby actors as a ClientTextNotification. Requires a bearer game token;
|
|
4984
|
+
/** Send a spatial text/chat packet, fanned out to nearby actors as a ClientTextNotification. Requires a bearer game token and the use_text_chat runtime permission on the app (a tier that grants access grants it unless the app took it away); without it the game server answers asynchronously with a GenericErrorResponse (errorCode UNAUTHORIZED). 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 of delivery. The sender receives no echo; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4929
4985
|
sendTextPacket: Scalars['Boolean']['output'];
|
|
4930
4986
|
/** 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. */
|
|
4931
4987
|
sendVideoPacket: Scalars['Boolean']['output'];
|
|
@@ -4971,6 +5027,8 @@ export type Mutation = {
|
|
|
4971
5027
|
setHostedGameListing: HostedGame;
|
|
4972
5028
|
/** Adds a password to the signed-in account when it does not have one yet — for an account created by magic link or a social provider, which previously had no in-product way to add password sign-in. Requires a valid session token; the session is the proof of account control, so the password is usable immediately and no email confirmation is needed. Refuses with extensions.code PASSWORD_ALREADY_SET (409) when a password is already set — use changePassword, which verifies the current one, or the reset flow if it is forgotten. (Before v1.60.0 that refusal reached clients as INTERNAL_SERVER_ERROR while this description said CONFLICT, so a client could only recognise it by the message text.) A security notification is emailed to the account address. Existing sessions are not revoked. */
|
|
4973
5029
|
setInitialPassword: Scalars['Boolean']['output'];
|
|
5030
|
+
/** OPERATOR: put an organization (and its managed players) or one account under a legal hold. While it applies, deleting a managed player it covers is refused with LEGAL_HOLD, a player’s own deletion closes the account but keeps its content and preserves its identity, and no erasure runs. */
|
|
5031
|
+
setLegalHold: LegalHold;
|
|
4974
5032
|
/** Super-admin only. Flip users.is_operator to grant or revoke control-plane / operator access. */
|
|
4975
5033
|
setOperator: User;
|
|
4976
5034
|
/** OPERATOR ONLY. Sets or clears an organization billing exemption. When true, org-wallet debits and money-driven runtime denials are skipped; usage is still metered and every waived amount is written to org_billing_waivers. Does not waive player-wallet charges, failure breakers, or the per-minute compute budget. reason is required when setting true. SIDE EFFECT: re-evaluates the runtime gate for every shared app in the org, so clearing the exemption re-denies immediately instead of waiting for the next hourly tick. */
|
|
@@ -5031,7 +5089,7 @@ export type Mutation = {
|
|
|
5031
5089
|
updateActor: Actor;
|
|
5032
5090
|
/** 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. */
|
|
5033
5091
|
updateActorState: Actor;
|
|
5034
|
-
/** Update mutable fields of an existing app (name, description, visibility, status, metadata, wildernessWritesOpen, replayLoggingEnabled); only fields present in the input are changed. Turning replayLoggingEnabled on is refused with INPUT_LOG_FUNDS_NEEDED unless the org's wallet can spend at least the projected cost of keeping one retention period of the app's recent traffic (extensions.requiredMicrousd and spendableMicrousd say how much), or the org is billing-exempt; recordings already kept go on billing after it is turned off, until they age out. 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. */
|
|
5092
|
+
/** Update mutable fields of an existing app (name, description, visibility, status, metadata, wildernessWritesOpen, claimOwnerKeys, replayLoggingEnabled, replayLoggingRecordsMedia); only fields present in the input are changed. Turning replayLoggingEnabled on is refused with INPUT_LOG_FUNDS_NEEDED unless the org's wallet can spend at least the projected cost of keeping one retention period of the app's recent traffic (extensions.requiredMicrousd and spendableMicrousd say how much), or the org is billing-exempt; recordings already kept go on billing after it is turned off, until they age out. 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. */
|
|
5035
5093
|
updateApp: App;
|
|
5036
5094
|
/** 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`. */
|
|
5037
5095
|
updateAvatar: Avatar;
|
|
@@ -5542,6 +5600,9 @@ export type MutationReleaseClaimedGridArgs = {
|
|
|
5542
5600
|
appId: Scalars['BigInt']['input'];
|
|
5543
5601
|
gridId: Scalars['BigInt']['input'];
|
|
5544
5602
|
};
|
|
5603
|
+
export type MutationReleaseLegalHoldArgs = {
|
|
5604
|
+
holdId: Scalars['BigInt']['input'];
|
|
5605
|
+
};
|
|
5545
5606
|
export type MutationRemoveChannelMemberArgs = {
|
|
5546
5607
|
groupId: Scalars['BigInt']['input'];
|
|
5547
5608
|
userId: Scalars['BigInt']['input'];
|
|
@@ -5560,6 +5621,9 @@ export type MutationRemoveTeamMemberArgs = {
|
|
|
5560
5621
|
groupId: Scalars['BigInt']['input'];
|
|
5561
5622
|
userId: Scalars['BigInt']['input'];
|
|
5562
5623
|
};
|
|
5624
|
+
export type MutationRequestAccountErasureArgs = {
|
|
5625
|
+
userId: Scalars['BigInt']['input'];
|
|
5626
|
+
};
|
|
5563
5627
|
export type MutationRequestLoginLinkArgs = {
|
|
5564
5628
|
input: RequestLoginLinkInput;
|
|
5565
5629
|
};
|
|
@@ -5735,6 +5799,9 @@ export type MutationSetHostedGameListingArgs = {
|
|
|
5735
5799
|
export type MutationSetInitialPasswordArgs = {
|
|
5736
5800
|
newPassword: Scalars['String']['input'];
|
|
5737
5801
|
};
|
|
5802
|
+
export type MutationSetLegalHoldArgs = {
|
|
5803
|
+
input: SetLegalHoldInput;
|
|
5804
|
+
};
|
|
5738
5805
|
export type MutationSetOperatorArgs = {
|
|
5739
5806
|
userId: Scalars['BigInt']['input'];
|
|
5740
5807
|
value: Scalars['Boolean']['input'];
|
|
@@ -6817,6 +6884,8 @@ export type Query = {
|
|
|
6817
6884
|
__typename?: 'Query';
|
|
6818
6885
|
/** 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. */
|
|
6819
6886
|
accountBlock: AccountBlock;
|
|
6887
|
+
/** OPERATOR: where the erasure of a deleted account stands (what deleting it erases, app by app), or null if none was asked for. While a legal hold defers it, preservedIdentity carries what the account row said before it was blanked. */
|
|
6888
|
+
accountErasure: Maybe<AccountErasure>;
|
|
6820
6889
|
/** List only healthy GraphQL API servers (status = ReadyForClients) for client routing/discovery. No authentication required. */
|
|
6821
6890
|
activeGraphQLServers: Array<GraphQlServer>;
|
|
6822
6891
|
/** Fetches a single actor by its 32-character ASCII `uuid`. Game-plane: requires an app token for the actor’s app (a session token or another app’s token is answered NotFound, the same as a missing id). Owner-aware: the owner receives full state; non-owners receive a public copy with `privateState` stripped (null). */
|
|
@@ -7046,6 +7115,8 @@ export type Query = {
|
|
|
7046
7115
|
inputLogMessages: InputLogMessageConnection;
|
|
7047
7116
|
/** Recorded client sessions of an app with replay logging on (App.replayLoggingEnabled), newest first. With 'manage_apps' on the app you see every session and may filter by userId; anyone else sees only their own, and asking for another user's is FORBIDDEN. Game plane: send the app-scoped token for this app to the app's datacenter. Page with `first` (default 50, max 200) and `after`. INPUT_LOG_UNAVAILABLE when input logging is not configured on this deployment. */
|
|
7048
7117
|
inputLogSessions: InputLogSessionConnection;
|
|
7118
|
+
/** OPERATOR: legal holds, newest first (at most 500), on one organization or account if given; only the ones that apply now unless includeReleased. */
|
|
7119
|
+
legalHolds: Array<LegalHold>;
|
|
7049
7120
|
/** Lists recorded voxel edits for all chunks within a cubic (Chebyshev) radius of a center chunk, grouped per chunk and ordered by increasing distance, paginated over chunks. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
7050
7121
|
listVoxelUpdatesByDistance: VoxelUpdatesByDistanceResponse;
|
|
7051
7122
|
/** Lists recorded voxel edits for a single chunk (optionally only those at/after `since`), newest first. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
@@ -7223,6 +7294,9 @@ export type Query = {
|
|
|
7223
7294
|
export type QueryAccountBlockArgs = {
|
|
7224
7295
|
userId: Scalars['BigInt']['input'];
|
|
7225
7296
|
};
|
|
7297
|
+
export type QueryAccountErasureArgs = {
|
|
7298
|
+
userId: Scalars['BigInt']['input'];
|
|
7299
|
+
};
|
|
7226
7300
|
export type QueryActorArgs = {
|
|
7227
7301
|
uuid: Scalars['String']['input'];
|
|
7228
7302
|
};
|
|
@@ -7616,6 +7690,11 @@ export type QueryInputLogSessionsArgs = {
|
|
|
7616
7690
|
filter?: InputMaybe<InputLogSessionFilter>;
|
|
7617
7691
|
first?: InputMaybe<Scalars['Int']['input']>;
|
|
7618
7692
|
};
|
|
7693
|
+
export type QueryLegalHoldsArgs = {
|
|
7694
|
+
includeReleased?: InputMaybe<Scalars['Boolean']['input']>;
|
|
7695
|
+
orgId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
7696
|
+
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
7697
|
+
};
|
|
7619
7698
|
export type QueryListVoxelUpdatesByDistanceArgs = {
|
|
7620
7699
|
input: ListVoxelUpdatesByDistanceInput;
|
|
7621
7700
|
};
|
|
@@ -8469,6 +8548,15 @@ export type SetHostedGameListingInput = {
|
|
|
8469
8548
|
listed: Scalars['Boolean']['input'];
|
|
8470
8549
|
slug: Scalars['String']['input'];
|
|
8471
8550
|
};
|
|
8551
|
+
/** A legal hold to set: exactly one of orgId (an organization and its managed players) and userId (one account), and why. */
|
|
8552
|
+
export type SetLegalHoldInput = {
|
|
8553
|
+
/** The organization to hold (its public id). Covers its managed players. */
|
|
8554
|
+
orgId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
8555
|
+
/** Why the hold is set (the matter it preserves for), at most 500 characters. */
|
|
8556
|
+
reason: Scalars['String']['input'];
|
|
8557
|
+
/** The account to hold. */
|
|
8558
|
+
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
8559
|
+
};
|
|
8472
8560
|
/** Replace a member's roles in a group (the listed roles become their full set). */
|
|
8473
8561
|
export type SetMemberRolesInput = {
|
|
8474
8562
|
/** The group (team/channel) id. */
|
|
@@ -8888,6 +8976,8 @@ export type UdpProxyConnectionStatus = {
|
|
|
8888
8976
|
};
|
|
8889
8977
|
/** Fields to update on an access tier. All fields are optional; omitted fields are left unchanged. */
|
|
8890
8978
|
export type UpdateAccessTierInput = {
|
|
8979
|
+
/** With permissionKeys: when true (the default) and the new set grants access, it also grants use_text_chat and use_direct_messages, whether or not permissionKeys names them. Pass false to set exactly permissionKeys, for example to take text chat away. Ignored without permissionKeys. */
|
|
8980
|
+
applyCommunicationDefaults?: InputMaybe<Scalars['Boolean']['input']>;
|
|
8891
8981
|
/** New billing cadence (e.g. "month", "year"); null clears it. */
|
|
8892
8982
|
billingPeriod?: InputMaybe<Scalars['String']['input']>;
|
|
8893
8983
|
/** New ISO 4217 currency code (e.g. "usd"). */
|
|
@@ -8941,6 +9031,8 @@ export type UpdateAppInput = {
|
|
|
8941
9031
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
8942
9032
|
/** Turn replay logging on (true) or off (false): record every client message the realtime servers accept for this app (keep-alives included), kept for the input log's published retention and billed as stored input logs (input_log_storage_byte_hours, no free allowance). Turning it ON is refused with INPUT_LOG_FUNDS_NEEDED unless the org's wallet can spend at least the projected cost of keeping one retention period of the app's recent traffic, or the org is billing-exempt; turning it off always succeeds, and what was already recorded goes on billing until it ages out. Recording starts and stops within about 15 seconds. Omit to leave unchanged. */
|
|
8943
9033
|
replayLoggingEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
9034
|
+
/** With replay logging on, record the app's voice (sendAudioPacket), webcam video (sendVideoPacket) and channel audio (sendChannelAudio) too (true, the default) or leave them out of the input log (false); every other message is recorded either way. Takes effect within about 15 seconds; what was already recorded stays until it ages out. Omit to leave unchanged. */
|
|
9035
|
+
replayLoggingRecordsMedia?: InputMaybe<Scalars['Boolean']['input']>;
|
|
8944
9036
|
/** New lifecycle status; set LIVE to publish, or DRAFT/LIVE to restore an archived app. Omit to leave unchanged. */
|
|
8945
9037
|
status?: InputMaybe<AppStatus>;
|
|
8946
9038
|
/** New visibility (PUBLIC/UNLISTED/PRIVATE). Omit to leave unchanged. */
|