@crowdedkingdoms/crowdyjs 17.2.0 → 17.4.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 +97 -0
- package/README.md +2 -2
- package/dist/crowdy-studio/controller.d.ts +15 -0
- package/dist/crowdy-studio/controller.d.ts.map +1 -1
- package/dist/crowdy-studio/controller.js +41 -0
- package/dist/crowdy-studio/dom-shell.d.ts +1 -0
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.js +20 -1
- package/dist/crowdy-studio/github/index.d.ts +1 -0
- package/dist/crowdy-studio/github/index.d.ts.map +1 -1
- package/dist/crowdy-studio/github/index.js +1 -0
- package/dist/crowdy-studio/github/new-repo.d.ts +27 -0
- package/dist/crowdy-studio/github/new-repo.d.ts.map +1 -0
- package/dist/crowdy-studio/github/new-repo.js +44 -0
- package/dist/crowdy-studio/github/transport.d.ts +7 -0
- package/dist/crowdy-studio/github/transport.d.ts.map +1 -1
- package/dist/crowdy-studio/github/transport.js +1 -1
- 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/gameModel.d.ts +172 -14
- package/dist/domains/gameModel.d.ts.map +1 -1
- package/dist/domains/gameModel.js +204 -14
- package/dist/generated/graphql.d.ts +524 -6
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +16 -6
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/kit/index.d.ts +1 -1
- package/dist/kit/index.d.ts.map +1 -1
- package/dist/kit/matches.d.ts +79 -2
- package/dist/kit/matches.d.ts.map +1 -1
- package/dist/kit/matches.js +85 -1
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2353,14 +2353,24 @@ export type CreatePortalAuthorizationCodeInput = {
|
|
|
2353
2353
|
};
|
|
2354
2354
|
/** Create a runtime session. */
|
|
2355
2355
|
export type CreateSessionInput = {
|
|
2356
|
+
/** Initial admission: 'open' (default) or 'locked' (only the initial participants may join/reconnect until the host unlocks). */
|
|
2357
|
+
admission?: InputMaybe<Scalars['String']['input']>;
|
|
2356
2358
|
/** The app (tenant) the session belongs to. */
|
|
2357
2359
|
appId: Scalars['BigInt']['input'];
|
|
2360
|
+
/** Seconds a session may sit with nobody joined before the server ends it as abandoned. Omit for the platform default; 0 disables the timeout for this session. */
|
|
2361
|
+
emptyTimeoutSec?: InputMaybe<Scalars['Int']['input']>;
|
|
2362
|
+
/** Optional idempotency key. Replaying with the same key and identical input returns the first session instead of creating a second; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
2363
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2364
|
+
/** Seat cap: the most participants that may be joined at once. Omit for unbounded. Initial participants count against it. */
|
|
2365
|
+
maxParticipants?: InputMaybe<Scalars['Int']['input']>;
|
|
2358
2366
|
/** JSON object of session metadata. */
|
|
2359
2367
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
2360
2368
|
/** Optional session name. */
|
|
2361
2369
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
2362
2370
|
/** Initial participants besides the creator. */
|
|
2363
2371
|
participantUserIds?: InputMaybe<Array<Scalars['BigInt']['input']>>;
|
|
2372
|
+
/** How the roster is judged: 'actor' (default) expires a joined participant with no fresh Buddy actor in the app after the join grace window; 'none' never expires anybody. Use 'none' for turn-based play that talks GraphQL and channel pings and never replicates an actor (kit.matches does), where the roster's only exits are leave and end. */
|
|
2373
|
+
presence?: InputMaybe<Scalars['String']['input']>;
|
|
2364
2374
|
};
|
|
2365
2375
|
/** Create a team in an app. */
|
|
2366
2376
|
export type CreateTeamInput = {
|
|
@@ -3199,6 +3209,8 @@ export type CrowdyStudioGitHubStatus = {
|
|
|
3199
3209
|
/** Bound repository owner, when a project was named. */
|
|
3200
3210
|
owner: Maybe<Scalars['String']['output']>;
|
|
3201
3211
|
repo: Maybe<Scalars['String']['output']>;
|
|
3212
|
+
/** Which repositories the installation covers: "all", or "selected" (a repository created on GitHub afterwards must be added to the installation at installUrl before it can be bound). Null when not connected. */
|
|
3213
|
+
repositorySelection: Maybe<Scalars['String']['output']>;
|
|
3202
3214
|
};
|
|
3203
3215
|
/** Recursive listing of the bound repository at one commit. The commit is the one the paths were read at, so a follow-up file read can pin it. */
|
|
3204
3216
|
export type CrowdyStudioGitHubTree = {
|
|
@@ -3537,6 +3549,19 @@ export type EmailStatusRecord = {
|
|
|
3537
3549
|
/** valid | bounced | complained. */
|
|
3538
3550
|
status: Scalars['String']['output'];
|
|
3539
3551
|
};
|
|
3552
|
+
/** End a session. Host or app admin ('manage_apps'). */
|
|
3553
|
+
export type EndSessionInput = {
|
|
3554
|
+
/** The app (tenant) that owns the session. */
|
|
3555
|
+
appId: Scalars['BigInt']['input'];
|
|
3556
|
+
/** Optional: the hostTerm you last read. Refused with SESSION_HOST_TERM_STALE if the host has changed since. */
|
|
3557
|
+
expectedHostTerm?: InputMaybe<Scalars['Int']['input']>;
|
|
3558
|
+
/** Optional idempotency key (24h). */
|
|
3559
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
3560
|
+
/** Terminal status: 'completed' (default; the match ran its course) or 'abandoned'. Either way every joined participant is marked left (session_ended) and admission becomes closed. */
|
|
3561
|
+
reason?: InputMaybe<Scalars['String']['input']>;
|
|
3562
|
+
/** The session id to end. */
|
|
3563
|
+
sessionId: Scalars['String']['input'];
|
|
3564
|
+
};
|
|
3540
3565
|
/** Compute units attributed to one engine over the query window. */
|
|
3541
3566
|
export type EngineComputeUnits = {
|
|
3542
3567
|
__typename?: 'EngineComputeUnits';
|
|
@@ -4539,31 +4564,109 @@ export type GmSeedResult = {
|
|
|
4539
4564
|
/** A runtime session: an isolated instance scope (e.g. a match or room) for containers. */
|
|
4540
4565
|
export type GmSession = {
|
|
4541
4566
|
__typename?: 'GmSession';
|
|
4567
|
+
/** Who may still get in: 'open' (anyone the app admits), 'locked' (only a participant who already joined may reconnect), 'closed' (nobody; set automatically when the session ends). */
|
|
4568
|
+
admission: Scalars['String']['output'];
|
|
4542
4569
|
/** The app (tenant) that owns the session. */
|
|
4543
4570
|
appId: Scalars['BigInt']['output'];
|
|
4571
|
+
/** When the session was created. */
|
|
4572
|
+
createdAt: Scalars['DateTime']['output'];
|
|
4544
4573
|
/** The user who created the session. */
|
|
4545
4574
|
createdByUserId: Maybe<Scalars['BigInt']['output']>;
|
|
4546
4575
|
/** The user whose turn it currently is (turn-based play), or null. */
|
|
4547
4576
|
currentTurnUserId: Maybe<Scalars['BigInt']['output']>;
|
|
4577
|
+
/** Why it ended: 'completed' or 'abandoned' by the host/admin, 'empty_timeout' when the server ended a session nobody was in. */
|
|
4578
|
+
endReason: Maybe<Scalars['String']['output']>;
|
|
4579
|
+
/** When the session ended, or null while active. */
|
|
4580
|
+
endedAt: Maybe<Scalars['DateTime']['output']>;
|
|
4581
|
+
/** Increments on every host change. Send it as expectedHostTerm on host actions to be refused (SESSION_HOST_TERM_STALE) instead of acting on a host change you have not seen. */
|
|
4582
|
+
hostTerm: Scalars['Int']['output'];
|
|
4583
|
+
/** The current session host, or null while nobody is joined. The creator starts as host; when the host leaves or expires, the longest-joined present participant succeeds. */
|
|
4584
|
+
hostUserId: Maybe<Scalars['BigInt']['output']>;
|
|
4585
|
+
/** Seat cap: the most participants that may be joined at once. Null means unbounded. A participant reconnecting never counts against it twice. */
|
|
4586
|
+
maxParticipants: Maybe<Scalars['Int']['output']>;
|
|
4548
4587
|
/** JSON object of developer metadata. */
|
|
4549
4588
|
metadataJson: Scalars['String']['output'];
|
|
4550
4589
|
/** Optional session name. */
|
|
4551
4590
|
name: Maybe<Scalars['String']['output']>;
|
|
4591
|
+
/** How many participants are joined right now. */
|
|
4592
|
+
participantCount: Scalars['Int']['output'];
|
|
4593
|
+
/** How the roster is judged: 'actor' (default) expires a joined participant with no fresh Buddy actor in the app after the join grace window; 'none' never expires anybody -- for turn-based play that never replicates an actor -- so the roster's only exits are leave, end, and the empty timeout once everyone has left. */
|
|
4594
|
+
presence: Scalars['String']['output'];
|
|
4595
|
+
/** Monotonic change counter. Every event in gameModelSessionChanged carries the revision that produced it; gameModelSessionSnapshot returns the revision it describes. Compare as integers. */
|
|
4596
|
+
revision: Scalars['String']['output'];
|
|
4552
4597
|
/** Unique session id. */
|
|
4553
4598
|
sessionId: Scalars['String']['output'];
|
|
4554
4599
|
/** Lifecycle status (e.g. active). */
|
|
4555
4600
|
status: Scalars['String']['output'];
|
|
4556
4601
|
};
|
|
4602
|
+
/** One session revision: what changed, in order. The payload names the subject (user id, host, admission, ...) as a JSON object. */
|
|
4603
|
+
export type GmSessionEvent = {
|
|
4604
|
+
__typename?: 'GmSessionEvent';
|
|
4605
|
+
/** The app (tenant). */
|
|
4606
|
+
appId: Scalars['BigInt']['output'];
|
|
4607
|
+
/** When the revision was committed. */
|
|
4608
|
+
createdAt: Scalars['DateTime']['output'];
|
|
4609
|
+
/** created | participant_joined | participant_rejoined | participant_left | participant_expired | host_changed | admission_changed | turn_changed | ended */
|
|
4610
|
+
kind: Scalars['String']['output'];
|
|
4611
|
+
/** JSON object describing the change (e.g. {"userId":"…","incarnation":2} for a join, {"hostUserId":"…","hostTerm":3,"previousHostUserId":"…","reason":"host_left"} for a host change). */
|
|
4612
|
+
payloadJson: Scalars['String']['output'];
|
|
4613
|
+
/** The revision this event produced. Strictly increasing per session; a gap means a missed event -- pull gameModelSessionSnapshot or gameModelSessionEvents(afterRevision). */
|
|
4614
|
+
revision: Scalars['String']['output'];
|
|
4615
|
+
/** The session this revision belongs to. */
|
|
4616
|
+
sessionId: Scalars['String']['output'];
|
|
4617
|
+
};
|
|
4618
|
+
/** An operator's view of one session: the full roster including departed participants, each joined participant's live presence verdict, and the most recent events. */
|
|
4619
|
+
export type GmSessionInspection = {
|
|
4620
|
+
__typename?: 'GmSessionInspection';
|
|
4621
|
+
/** Every participant row, joined and left, oldest join first. */
|
|
4622
|
+
participants: Array<GmSessionParticipantInspection>;
|
|
4623
|
+
/** The most recent events, newest first. */
|
|
4624
|
+
recentEvents: Array<GmSessionEvent>;
|
|
4625
|
+
/** The session row. */
|
|
4626
|
+
session: GmSession;
|
|
4627
|
+
};
|
|
4557
4628
|
/** A user's participation in a session. */
|
|
4558
4629
|
export type GmSessionParticipant = {
|
|
4559
4630
|
__typename?: 'GmSessionParticipant';
|
|
4631
|
+
/** The Buddy actor uuid the client bound at join, if any. When set, this participant's presence is that actor's; when null, any fresh actor of the user in the app counts. */
|
|
4632
|
+
actorUuid: Maybe<Scalars['String']['output']>;
|
|
4633
|
+
/** Counts this user's joins to this session. A reconnect is the same row with incarnation + 1; a leave that names an older incarnation is a superseded client and is refused (SESSION_INCARNATION_STALE). */
|
|
4634
|
+
incarnation: Scalars['Int']['output'];
|
|
4635
|
+
/** When the user first joined (kept across reconnects). */
|
|
4636
|
+
joinedAt: Scalars['DateTime']['output'];
|
|
4637
|
+
/** When the participant last left, or null while joined. */
|
|
4638
|
+
leftAt: Maybe<Scalars['DateTime']['output']>;
|
|
4639
|
+
/** Why the participant left: 'left' (their own call), 'presence_expired' (no fresh actor past the grace window), 'session_ended', 'kicked'. */
|
|
4640
|
+
leftReason: Maybe<Scalars['String']['output']>;
|
|
4560
4641
|
/** The participant role within the session. */
|
|
4561
4642
|
role: Scalars['String']['output'];
|
|
4562
4643
|
/** The session id. */
|
|
4563
4644
|
sessionId: Scalars['String']['output'];
|
|
4645
|
+
/** 'joined' while the user is in the session, 'left' after a leave, a presence expiry, or the session ending. Rows are kept so the roster history is answerable. */
|
|
4646
|
+
state: Scalars['String']['output'];
|
|
4564
4647
|
/** The participant user id. */
|
|
4565
4648
|
userId: Scalars['BigInt']['output'];
|
|
4566
4649
|
};
|
|
4650
|
+
/** A joined participant with the platform's current presence verdict, for operators. */
|
|
4651
|
+
export type GmSessionParticipantInspection = {
|
|
4652
|
+
__typename?: 'GmSessionParticipantInspection';
|
|
4653
|
+
/** The roster row. */
|
|
4654
|
+
participant: GmSessionParticipant;
|
|
4655
|
+
/** 'fresh' (a qualifying actor is present), 'grace' (inside the join grace window, not yet judged), 'stale' (no qualifying actor; the next presence sweep will expire this participant), 'none' (the session's presence mode is 'none'; never expired), 'legacy' (row predates presence tracking; never expired), 'left' (not joined). */
|
|
4656
|
+
presence: Scalars['String']['output'];
|
|
4657
|
+
/** When the presence rule starts applying to this participant (join + grace), or null for a row the rule never applies to (a legacy row, or a session whose presence mode is 'none'). */
|
|
4658
|
+
presenceFrom: Maybe<Scalars['DateTime']['output']>;
|
|
4659
|
+
};
|
|
4660
|
+
/** The authoritative state of one session at one revision: the session and every joined participant. The catch-up read after a subscription gap or a reconnect. */
|
|
4661
|
+
export type GmSessionSnapshot = {
|
|
4662
|
+
__typename?: 'GmSessionSnapshot';
|
|
4663
|
+
/** Every participant whose state is joined, oldest join first. */
|
|
4664
|
+
participants: Array<GmSessionParticipant>;
|
|
4665
|
+
/** The revision this snapshot describes. Discard buffered events at or below it and apply the ones above it. */
|
|
4666
|
+
revision: Scalars['String']['output'];
|
|
4667
|
+
/** The session row at this revision. */
|
|
4668
|
+
session: GmSession;
|
|
4669
|
+
};
|
|
4567
4670
|
/** A grant of a feature key to an access tier. */
|
|
4568
4671
|
export type GmTierFeature = {
|
|
4569
4672
|
__typename?: 'GmTierFeature';
|
|
@@ -5064,15 +5167,30 @@ export type InvokeFunctionInput = {
|
|
|
5064
5167
|
/** Optional session context for the invocation. */
|
|
5065
5168
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
5066
5169
|
};
|
|
5067
|
-
/** Join an existing session. */
|
|
5170
|
+
/** Join an existing session, or reconnect to one you are already in. */
|
|
5068
5171
|
export type JoinSessionInput = {
|
|
5172
|
+
/** Optional: the Buddy actor uuid this client is playing as (32 hex characters, dashes accepted). It must be the caller's own actor. When given, the participant's presence is that actor's presence in the app; a new actor after a reconnect should rejoin with its uuid. When omitted, any fresh actor of this user in the app keeps the participant present. */
|
|
5173
|
+
actorUuid?: InputMaybe<Scalars['String']['input']>;
|
|
5069
5174
|
/** The app (tenant) that owns the session. */
|
|
5070
5175
|
appId: Scalars['BigInt']['input'];
|
|
5176
|
+
/** Optional idempotency key. Replaying with the same key and identical input returns the first result (same incarnation) instead of joining again. Keys expire after 24h. */
|
|
5177
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
5071
5178
|
/** Optional participant role to join as. */
|
|
5072
5179
|
role?: InputMaybe<Scalars['String']['input']>;
|
|
5073
5180
|
/** The session id to join. */
|
|
5074
5181
|
sessionId: Scalars['String']['input'];
|
|
5075
5182
|
};
|
|
5183
|
+
/** Leave a session you are joined to. */
|
|
5184
|
+
export type LeaveSessionInput = {
|
|
5185
|
+
/** The app (tenant) that owns the session. */
|
|
5186
|
+
appId: Scalars['BigInt']['input'];
|
|
5187
|
+
/** Optional idempotency key (24h). */
|
|
5188
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
5189
|
+
/** The incarnation gameModelJoinSession returned to THIS client (a creator starts at 1; gameModelSessionSnapshot shows every participant's). Required: if a newer client has since rejoined as the same user, the call is refused with SESSION_INCARNATION_STALE and the newer client stays joined, so a superseded client can never remove the one that took over. */
|
|
5190
|
+
incarnation: Scalars['Int']['input'];
|
|
5191
|
+
/** The session id to leave. */
|
|
5192
|
+
sessionId: Scalars['String']['input'];
|
|
5193
|
+
};
|
|
5076
5194
|
/** Link an additional federated identity to the signed-in account. */
|
|
5077
5195
|
export type LinkIdentityInput = {
|
|
5078
5196
|
code: Scalars['String']['input'];
|
|
@@ -5324,7 +5442,7 @@ export type Mutation = {
|
|
|
5324
5442
|
gameModelCancelTimer: Scalars['Int']['output'];
|
|
5325
5443
|
/** Instantiate a container (a runtime entity of a given type), optionally within a session, with an owner and initial properties. Subject to the type's instantiableBy rule (admin | member | owner). Requires a valid token. */
|
|
5326
5444
|
gameModelCreateContainer: GmContainer;
|
|
5327
|
-
/** Create a runtime session: an isolated instance scope for containers (e.g. a match, room, or save). Subject to the app's session creation policy. The caller becomes
|
|
5445
|
+
/** Create a runtime session: an isolated instance scope for containers (e.g. a match, room, or save) with its own roster, host, admission and capacity. Subject to the app's session creation policy. The caller becomes creator, host (term 1) and a joined participant. Presence is actor presence: a participant with no fresh Buddy actor in the app after the join grace window is expired by the server. Requires a valid token. */
|
|
5328
5446
|
gameModelCreateSession: GmSession;
|
|
5329
5447
|
/** Define an app feature key that functions can gate on (via a tier_feature authority rule) and that access tiers can be granted. Idempotent on (app, featureKey). Requires app-admin ('manage_apps'). */
|
|
5330
5448
|
gameModelDefineFeature: GmAppFeature;
|
|
@@ -5342,14 +5460,18 @@ export type Mutation = {
|
|
|
5342
5460
|
gameModelDeleteFunction: Scalars['Boolean']['output'];
|
|
5343
5461
|
/** Delete a property definition from a container type. Does not remove instance property values already stored on containers. Requires app-admin ('manage_apps'). DESTRUCTIVE. Returns true if a definition was deleted. */
|
|
5344
5462
|
gameModelDeletePropertyDef: Scalars['Boolean']['output'];
|
|
5463
|
+
/** End a session as 'completed' (default) or 'abandoned': every joined participant is marked left (session_ended), admission becomes closed, and an ended event closes the revision log. Session host or app admin ('manage_apps'); expectedHostTerm refuses a stale host. The server also ends sessions nobody has been joined to for longer than their empty timeout. Requires a valid token. */
|
|
5464
|
+
gameModelEndSession: GmSession;
|
|
5345
5465
|
/** Atomically get-or-create a container by an opaque bindingKey, unique per (appId, typeName, sessionId). Concurrent ensures with the same key all return the SAME containerId and exactly one response has created: true — no client-side leader election or list-then-create coordination is needed for shared world objects. When the row already exists this behaves like a read (creation-only fields are ignored and the type's instantiableBy rule is NOT enforced); when it does not exist, creation is authorized exactly like gameModelCreateContainer (instantiableBy + owner rules) AND by the type's bindPolicy, so a caller who may not instantiate the type, or may not claim keys for it, errors only in the not-exists case. bindingKey is client-supplied, so on a member- or owner-instantiable type ANY entitled player may create the keyed row and becomes its owner — which inverts every owner_of_self invoke policy on that type. Set the container type's bindPolicy (e.g. {"type":"is_host"}), or use an admin-instantiable type, for any object more than one player shares. The prefix `seed:` is reserved for gameModelSeed (v1.93.0); a non-admin ensure cannot claim it. Requires a valid token. */
|
|
5346
5466
|
gameModelEnsureContainer: GmEnsureContainerResult;
|
|
5347
5467
|
/** Grant a feature key to an access tier, so users on that tier satisfy tier_feature authority checks for it. Requires app-admin ('manage_apps'). */
|
|
5348
5468
|
gameModelGrantTierFeature: GmTierFeature;
|
|
5349
5469
|
/** Invoke a studio-defined function against a 'self' container with JSON params. The server enforces the function's invoke policy (authority rule tree: owner_of_self / is_host / is_current_turn / is_participant / tier_feature / group_permission / grid_permission / condition), evaluates its expressions, atomically applies its declared property mutations, logs an event, and returns the result (return value + mutations applied, or success=false with an error message). Invoke-policy denials are gameplay verdicts, NOT exceptions: they return success=false with errorMessage and log a failure event (observable via gameModelEvents). Scope violations (calling a server-scope function as a non-admin, or an internal function directly) are misconfigurations and throw FORBIDDEN. THE POLICY APPLIES TO APP ADMINS TOO (since v1.89.0): a manage_apps holder is judged exactly like a player unless the input sets bypassPolicy=true, which is refused for anyone else, marks the result policyBypassed=true and is audit-logged. This is the primary, safe way for players to mutate game state. Requires a valid token; only player-scope functions are invocable here. RATE LIMITED per player per app, defaulting to 120 invocations per 10 seconds: over the limit the call is refused with extensions.code RATE_LIMITED, extensions.blame 'budget' (the caller's own budget — not a fault in the game's code and not a platform failure) and extensions.retryAfterMs. A client that awaits each response cannot reach the limit, because the per-call ceiling already bounds a serial caller well below it. */
|
|
5350
5470
|
gameModelInvoke: GmInvokeResult;
|
|
5351
|
-
/** Join
|
|
5471
|
+
/** Join a session, or reconnect to one you are already in. Refused with SESSION_ENDED, SESSION_CLOSED, SESSION_LOCKED (unless you already joined) or SESSION_FULL. A rejoin returns the same row with incarnation + 1 and supersedes any older client of yours. Pass actorUuid to bind the participant's presence to that Buddy actor. Requires a valid token. */
|
|
5352
5472
|
gameModelJoinSession: GmSessionParticipant;
|
|
5473
|
+
/** Leave a session you are joined to. Send the incarnation gameModelJoinSession gave you so a superseded client cannot remove the one that took over (SESSION_INCARNATION_STALE). Leaving an already-left row is a no-op. If you were host, the longest-joined present participant succeeds you (host_changed). Requires a valid token. */
|
|
5474
|
+
gameModelLeaveSession: GmSessionParticipant;
|
|
5353
5475
|
/** Revoke a feature key from an access tier. Requires app-admin ('manage_apps'). Returns true if a grant was removed. */
|
|
5354
5476
|
gameModelRevokeTierFeature: Scalars['Boolean']['output'];
|
|
5355
5477
|
/** Run an automation once, immediately (manual trigger), regardless of its schedule. Applies the same guard chain (app gate, rate limit, circuit) and records a run. Useful for testing an NPC. Requires app-admin ('manage_apps'). */
|
|
@@ -5366,8 +5488,12 @@ export type Mutation = {
|
|
|
5366
5488
|
gameModelSetPolicy: GmAppPolicy;
|
|
5367
5489
|
/** Set a single property value on a container directly (outside a function). Allowed only when the property's writability (function | owner | admin) permits the caller. The value is JSON-encoded and coerced to the property's value type. Requires a valid token. For game-logic changes prefer gameModelInvoke. */
|
|
5368
5490
|
gameModelSetProperty: GmContainer;
|
|
5369
|
-
/**
|
|
5491
|
+
/** Change who may still join: 'open', 'locked' (participants who already joined may reconnect, nobody new), or 'closed' (nobody). Session host or app admin ('manage_apps'); expectedHostTerm refuses a stale host. Emits admission_changed. Requires a valid token. */
|
|
5492
|
+
gameModelSetSessionAdmission: GmSession;
|
|
5493
|
+
/** Set or clear the session's current-turn user, for turn-based play. Allowed for an app admin, the app's elected host, the session host, or the current turn holder. Pass userId null to clear the turn; expectedHostTerm refuses a stale host. Requires a valid token. */
|
|
5370
5494
|
gameModelSetSessionTurn: GmSession;
|
|
5495
|
+
/** Hand the session host role to another joined participant. Session host or app admin ('manage_apps'); expectedHostTerm refuses a stale host. Increments hostTerm and emits host_changed. Requires a valid token. */
|
|
5496
|
+
gameModelTransferSessionHost: GmSession;
|
|
5371
5497
|
/** Create or update an autonomous process ("automation" / NPC): a server-driven entry-point function bound to a trigger (schedule | event | manual), an optional run-as identity, a target/candidate selector, and a per-automation safety budget. The entry-point function must be marked autonomousInvocable. Idempotent on (app, name). Requires app-admin ('manage_apps'). NOTHING RUNS FOR AN APP WITH NO PLAYER IN IT: a SCHEDULE trigger that comes due while the app is empty is skipped and rescheduled from the moment a player returns, and the missed runs are never made up -- so write the entry point to advance the world by elapsed time rather than by one step per run. Event and manual triggers are unaffected, because something already asked. */
|
|
5372
5498
|
gameModelUpsertAutomation: GmAutomation;
|
|
5373
5499
|
/** Create an event trigger that fires an automation in reaction to model activity or a complete app-scoped active-player-count transition. player_count_changed rejects model filters, starts silent-baseline tracking, injects reserved previous/current/delta/revision params, and uses trailing-edge debounce; other event behavior is unchanged. Matched in the API server post-commit. Requires app-admin ('manage_apps'). */
|
|
@@ -5964,6 +6090,9 @@ export type MutationGameModelDeletePropertyDefArgs = {
|
|
|
5964
6090
|
containerTypeName: Scalars['String']['input'];
|
|
5965
6091
|
key: Scalars['String']['input'];
|
|
5966
6092
|
};
|
|
6093
|
+
export type MutationGameModelEndSessionArgs = {
|
|
6094
|
+
input: EndSessionInput;
|
|
6095
|
+
};
|
|
5967
6096
|
export type MutationGameModelEnsureContainerArgs = {
|
|
5968
6097
|
input: EnsureContainerInput;
|
|
5969
6098
|
};
|
|
@@ -5976,6 +6105,9 @@ export type MutationGameModelInvokeArgs = {
|
|
|
5976
6105
|
export type MutationGameModelJoinSessionArgs = {
|
|
5977
6106
|
input: JoinSessionInput;
|
|
5978
6107
|
};
|
|
6108
|
+
export type MutationGameModelLeaveSessionArgs = {
|
|
6109
|
+
input: LeaveSessionInput;
|
|
6110
|
+
};
|
|
5979
6111
|
export type MutationGameModelRevokeTierFeatureArgs = {
|
|
5980
6112
|
input: GrantTierFeatureInput;
|
|
5981
6113
|
};
|
|
@@ -6003,9 +6135,15 @@ export type MutationGameModelSetPolicyArgs = {
|
|
|
6003
6135
|
export type MutationGameModelSetPropertyArgs = {
|
|
6004
6136
|
input: SetContainerPropertyInput;
|
|
6005
6137
|
};
|
|
6138
|
+
export type MutationGameModelSetSessionAdmissionArgs = {
|
|
6139
|
+
input: SetSessionAdmissionInput;
|
|
6140
|
+
};
|
|
6006
6141
|
export type MutationGameModelSetSessionTurnArgs = {
|
|
6007
6142
|
input: SetSessionTurnInput;
|
|
6008
6143
|
};
|
|
6144
|
+
export type MutationGameModelTransferSessionHostArgs = {
|
|
6145
|
+
input: TransferSessionHostInput;
|
|
6146
|
+
};
|
|
6009
6147
|
export type MutationGameModelUpsertAutomationArgs = {
|
|
6010
6148
|
input: UpsertAutomationInput;
|
|
6011
6149
|
};
|
|
@@ -7915,9 +8053,15 @@ export type Query = {
|
|
|
7915
8053
|
gameModelPolicy: GmAppPolicy;
|
|
7916
8054
|
/** List the property definitions for a container type. Requires app-admin ('manage_apps'). */
|
|
7917
8055
|
gameModelPropertyDefs: Array<GmPropertyDef>;
|
|
7918
|
-
/** Fetch one session by id. Requires a valid token. */
|
|
8056
|
+
/** Fetch one session by id, with its joined-participant count, host, admission and revision. Requires a valid token. */
|
|
7919
8057
|
gameModelSession: GmSession;
|
|
7920
|
-
/**
|
|
8058
|
+
/** The session events with a revision greater than afterRevision, oldest first: the gap-fill read behind gameModelSessionChanged. Events of ended sessions are retained for a bounded period, then purged. Requires a valid token. */
|
|
8059
|
+
gameModelSessionEvents: Array<GmSessionEvent>;
|
|
8060
|
+
/** Operator view of one session: the full roster including departed participants (with left reason and incarnation), each joined participant's live presence verdict, and the most recent events. Requires app-admin ('manage_apps'). */
|
|
8061
|
+
gameModelSessionInspect: GmSessionInspection;
|
|
8062
|
+
/** The authoritative state of one session at one revision: the session row and every joined participant. Pull it when you subscribe, after a reconnect, or when gameModelSessionChanged shows a revision gap; then apply only events with a higher revision. Requires a valid token. */
|
|
8063
|
+
gameModelSessionSnapshot: GmSessionSnapshot;
|
|
8064
|
+
/** List sessions in an app, newest first, optionally filtered by status, admission and/or host. Requires a valid token. */
|
|
7921
8065
|
gameModelSessions: Array<GmSession>;
|
|
7922
8066
|
/** List tier -> feature grants for an app, optionally filtered to one tier. Requires app-admin ('manage_apps'). */
|
|
7923
8067
|
gameModelTierFeatures: Array<GmTierFeature>;
|
|
@@ -8538,8 +8682,25 @@ export type QueryGameModelSessionArgs = {
|
|
|
8538
8682
|
appId: Scalars['BigInt']['input'];
|
|
8539
8683
|
sessionId: Scalars['String']['input'];
|
|
8540
8684
|
};
|
|
8685
|
+
export type QueryGameModelSessionEventsArgs = {
|
|
8686
|
+
afterRevision: Scalars['String']['input'];
|
|
8687
|
+
appId: Scalars['BigInt']['input'];
|
|
8688
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
8689
|
+
sessionId: Scalars['String']['input'];
|
|
8690
|
+
};
|
|
8691
|
+
export type QueryGameModelSessionInspectArgs = {
|
|
8692
|
+
appId: Scalars['BigInt']['input'];
|
|
8693
|
+
sessionId: Scalars['String']['input'];
|
|
8694
|
+
};
|
|
8695
|
+
export type QueryGameModelSessionSnapshotArgs = {
|
|
8696
|
+
appId: Scalars['BigInt']['input'];
|
|
8697
|
+
sessionId: Scalars['String']['input'];
|
|
8698
|
+
};
|
|
8541
8699
|
export type QueryGameModelSessionsArgs = {
|
|
8700
|
+
admission?: InputMaybe<Scalars['String']['input']>;
|
|
8542
8701
|
appId: Scalars['BigInt']['input'];
|
|
8702
|
+
hostUserId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
8703
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
8543
8704
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
8544
8705
|
};
|
|
8545
8706
|
export type QueryGameModelTierFeaturesArgs = {
|
|
@@ -9767,10 +9928,27 @@ export type SetRateCardResult = {
|
|
|
9767
9928
|
/** The dimension as it now stands. */
|
|
9768
9929
|
entry: RateCardEntryType;
|
|
9769
9930
|
};
|
|
9931
|
+
/** Change who may still join a session. Host or app admin ('manage_apps'). */
|
|
9932
|
+
export type SetSessionAdmissionInput = {
|
|
9933
|
+
/** 'open' (anyone the app admits), 'locked' (only participants who already joined may reconnect), 'closed' (nobody, not even by reconnection). */
|
|
9934
|
+
admission: Scalars['String']['input'];
|
|
9935
|
+
/** The app (tenant) that owns the session. */
|
|
9936
|
+
appId: Scalars['BigInt']['input'];
|
|
9937
|
+
/** Optional: the hostTerm you last read. Refused with SESSION_HOST_TERM_STALE if the host has changed since. */
|
|
9938
|
+
expectedHostTerm?: InputMaybe<Scalars['Int']['input']>;
|
|
9939
|
+
/** Optional idempotency key (24h). */
|
|
9940
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
9941
|
+
/** The session id to update. */
|
|
9942
|
+
sessionId: Scalars['String']['input'];
|
|
9943
|
+
};
|
|
9770
9944
|
/** Set or clear the current-turn user of a session. */
|
|
9771
9945
|
export type SetSessionTurnInput = {
|
|
9772
9946
|
/** The app (tenant) that owns the session. */
|
|
9773
9947
|
appId: Scalars['BigInt']['input'];
|
|
9948
|
+
/** Optional: the hostTerm you last read. Refused with SESSION_HOST_TERM_STALE if the host has changed since, so a stale host never sets the turn. */
|
|
9949
|
+
expectedHostTerm?: InputMaybe<Scalars['Int']['input']>;
|
|
9950
|
+
/** Optional idempotency key (24h). */
|
|
9951
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
9774
9952
|
/** The session id to update. */
|
|
9775
9953
|
sessionId: Scalars['String']['input'];
|
|
9776
9954
|
/** The user whose turn it now is (NULL clears the turn). */
|
|
@@ -9870,6 +10048,8 @@ export type Subscription = {
|
|
|
9870
10048
|
gameModelActivePlayerCountChanged: GameModelActivePlayerCountChange;
|
|
9871
10049
|
/** Push notification whenever a container in the app changes: an invoke mutated it, a direct gameModelSetProperty wrote it, or it was created/deleted. Metadata only (containerId, typeName, changedKeys — no property values); pull the visibility-filtered state with gameModelContainerState on receipt. Post-commit and best-effort (a dropped event costs one missed pull, never correctness) — durable reads remain the source of truth. Optional typeName/sessionId filters narrow delivery. Fans out across all API replicas. Requires a valid token. Replaces interval polling with pull-on-push. */
|
|
9872
10050
|
gameModelContainerChanged: GmContainerChange;
|
|
10051
|
+
/** Stream the revisions of one session as they commit: joins, rejoins, leaves, presence expiries, host changes, admission changes, turn changes, and the end. There is no bootstrap event: pull gameModelSessionSnapshot first (or pass afterRevision to replay retained events from there). Revisions are strictly increasing; on a gap or after a reconnect, pull the snapshot again. Cross-replica, best-effort wakeup over a bounded oldest-drop buffer; the events table is the record. Requires a valid token. */
|
|
10052
|
+
gameModelSessionChanged: GmSessionEvent;
|
|
9873
10053
|
/** Realtime downlink from the game server: spatial notifications and responses, GenericErrorResponse (errors from your sends, correlated by sequenceNumber), and RealtimeConnectionEvent (lifecycle/setup failures). Requires a bearer game token AND an appId-scoped connection — the appId is read from the graphql-transport-ws connection (game tokens are app-agnostic and one UDP socket is shared across apps, so an app-agnostic subscription is rejected with a RealtimeConnectionEvent code APP_ID_REQUIRED, and a missing/invalid token with AUTH_REQUIRED). On subscribe, opens a UDP proxy session if none exists (binds to the least-loaded game server); open/transport failures are delivered as RealtimeConnectionEvent (code UDP_PROXY_CONNECTION_FAILED) and then the stream ends. Only this app’s spatial fan-out is delivered; appId-less control frames always pass. Subscribe before/while sending so async results are not missed. Unsubscribing stops delivery only — it does NOT close the UDP session; call disconnectUdpProxy (or rely on the server inactivity timeout) to release it. */
|
|
9874
10054
|
udpNotifications: Maybe<UdpNotification>;
|
|
9875
10055
|
};
|
|
@@ -9881,6 +10061,11 @@ export type SubscriptionGameModelContainerChangedArgs = {
|
|
|
9881
10061
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
9882
10062
|
typeName?: InputMaybe<Scalars['String']['input']>;
|
|
9883
10063
|
};
|
|
10064
|
+
export type SubscriptionGameModelSessionChangedArgs = {
|
|
10065
|
+
afterRevision?: InputMaybe<Scalars['String']['input']>;
|
|
10066
|
+
appId: Scalars['BigInt']['input'];
|
|
10067
|
+
sessionId: Scalars['String']['input'];
|
|
10068
|
+
};
|
|
9884
10069
|
export type TeleportRequestInput = {
|
|
9885
10070
|
/** App (game) to teleport within. Must be greater than 0 (a non-positive value yields errorCode INVALID_APP_ID). BigInt sent as a decimal string. */
|
|
9886
10071
|
appId: Scalars['BigInt']['input'];
|
|
@@ -9927,6 +10112,19 @@ export type TransferPlayerCodeListingInput = {
|
|
|
9927
10112
|
/** Numeric user id or org id of the new owner, per toOwnerKind. */
|
|
9928
10113
|
toOwnerRef: Scalars['BigInt']['input'];
|
|
9929
10114
|
};
|
|
10115
|
+
/** Hand the session host role to another joined participant. Host or app admin ('manage_apps'). */
|
|
10116
|
+
export type TransferSessionHostInput = {
|
|
10117
|
+
/** The app (tenant) that owns the session. */
|
|
10118
|
+
appId: Scalars['BigInt']['input'];
|
|
10119
|
+
/** Optional: the hostTerm you last read. Refused with SESSION_HOST_TERM_STALE if the host has changed since. */
|
|
10120
|
+
expectedHostTerm?: InputMaybe<Scalars['Int']['input']>;
|
|
10121
|
+
/** Optional idempotency key (24h). */
|
|
10122
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
10123
|
+
/** The session id. */
|
|
10124
|
+
sessionId: Scalars['String']['input'];
|
|
10125
|
+
/** The joined participant who becomes host. */
|
|
10126
|
+
toUserId: Scalars['BigInt']['input'];
|
|
10127
|
+
};
|
|
9930
10128
|
/** Error codes returned by UDP game servers (and surfaced on `GenericErrorResponse.errorCode`) in response to a spatial/realtime message. NO_ERROR (0) indicates success; every other value indicates a failure. The numeric value is the byte sent on the wire; GraphQL exposes the name. Note: a failed message does not always produce an error — some auth failures are dropped silently (see the docs). */
|
|
9931
10129
|
export declare enum UdpErrorCode {
|
|
9932
10130
|
/** No app matches the supplied appId. */
|
|
@@ -14470,6 +14668,37 @@ export type GmSessionFieldsFragment = {
|
|
|
14470
14668
|
createdByUserId: string | null;
|
|
14471
14669
|
currentTurnUserId: string | null;
|
|
14472
14670
|
metadataJson: string;
|
|
14671
|
+
admission: string;
|
|
14672
|
+
maxParticipants: number | null;
|
|
14673
|
+
participantCount: number;
|
|
14674
|
+
hostUserId: string | null;
|
|
14675
|
+
hostTerm: number;
|
|
14676
|
+
revision: string;
|
|
14677
|
+
endedAt: string | null;
|
|
14678
|
+
endReason: string | null;
|
|
14679
|
+
createdAt: string;
|
|
14680
|
+
presence: string;
|
|
14681
|
+
};
|
|
14682
|
+
export type GmSessionParticipantFieldsFragment = {
|
|
14683
|
+
__typename?: 'GmSessionParticipant';
|
|
14684
|
+
sessionId: string;
|
|
14685
|
+
userId: string;
|
|
14686
|
+
role: string;
|
|
14687
|
+
state: string;
|
|
14688
|
+
incarnation: number;
|
|
14689
|
+
actorUuid: string | null;
|
|
14690
|
+
joinedAt: string;
|
|
14691
|
+
leftAt: string | null;
|
|
14692
|
+
leftReason: string | null;
|
|
14693
|
+
};
|
|
14694
|
+
export type GmSessionEventFieldsFragment = {
|
|
14695
|
+
__typename?: 'GmSessionEvent';
|
|
14696
|
+
appId: string;
|
|
14697
|
+
sessionId: string;
|
|
14698
|
+
revision: string;
|
|
14699
|
+
kind: string;
|
|
14700
|
+
payloadJson: string;
|
|
14701
|
+
createdAt: string;
|
|
14473
14702
|
};
|
|
14474
14703
|
export type GmContainerFieldsFragment = {
|
|
14475
14704
|
__typename?: 'GmContainer';
|
|
@@ -14519,6 +14748,16 @@ export type GameModelCreateSessionMutation = {
|
|
|
14519
14748
|
createdByUserId: string | null;
|
|
14520
14749
|
currentTurnUserId: string | null;
|
|
14521
14750
|
metadataJson: string;
|
|
14751
|
+
admission: string;
|
|
14752
|
+
maxParticipants: number | null;
|
|
14753
|
+
participantCount: number;
|
|
14754
|
+
hostUserId: string | null;
|
|
14755
|
+
hostTerm: number;
|
|
14756
|
+
revision: string;
|
|
14757
|
+
endedAt: string | null;
|
|
14758
|
+
endReason: string | null;
|
|
14759
|
+
createdAt: string;
|
|
14760
|
+
presence: string;
|
|
14522
14761
|
};
|
|
14523
14762
|
};
|
|
14524
14763
|
export type GameModelJoinSessionMutationVariables = Exact<{
|
|
@@ -14531,6 +14770,30 @@ export type GameModelJoinSessionMutation = {
|
|
|
14531
14770
|
sessionId: string;
|
|
14532
14771
|
userId: string;
|
|
14533
14772
|
role: string;
|
|
14773
|
+
state: string;
|
|
14774
|
+
incarnation: number;
|
|
14775
|
+
actorUuid: string | null;
|
|
14776
|
+
joinedAt: string;
|
|
14777
|
+
leftAt: string | null;
|
|
14778
|
+
leftReason: string | null;
|
|
14779
|
+
};
|
|
14780
|
+
};
|
|
14781
|
+
export type GameModelLeaveSessionMutationVariables = Exact<{
|
|
14782
|
+
input: LeaveSessionInput;
|
|
14783
|
+
}>;
|
|
14784
|
+
export type GameModelLeaveSessionMutation = {
|
|
14785
|
+
__typename?: 'Mutation';
|
|
14786
|
+
gameModelLeaveSession: {
|
|
14787
|
+
__typename?: 'GmSessionParticipant';
|
|
14788
|
+
sessionId: string;
|
|
14789
|
+
userId: string;
|
|
14790
|
+
role: string;
|
|
14791
|
+
state: string;
|
|
14792
|
+
incarnation: number;
|
|
14793
|
+
actorUuid: string | null;
|
|
14794
|
+
joinedAt: string;
|
|
14795
|
+
leftAt: string | null;
|
|
14796
|
+
leftReason: string | null;
|
|
14534
14797
|
};
|
|
14535
14798
|
};
|
|
14536
14799
|
export type GameModelSetSessionTurnMutationVariables = Exact<{
|
|
@@ -14547,6 +14810,94 @@ export type GameModelSetSessionTurnMutation = {
|
|
|
14547
14810
|
createdByUserId: string | null;
|
|
14548
14811
|
currentTurnUserId: string | null;
|
|
14549
14812
|
metadataJson: string;
|
|
14813
|
+
admission: string;
|
|
14814
|
+
maxParticipants: number | null;
|
|
14815
|
+
participantCount: number;
|
|
14816
|
+
hostUserId: string | null;
|
|
14817
|
+
hostTerm: number;
|
|
14818
|
+
revision: string;
|
|
14819
|
+
endedAt: string | null;
|
|
14820
|
+
endReason: string | null;
|
|
14821
|
+
createdAt: string;
|
|
14822
|
+
presence: string;
|
|
14823
|
+
};
|
|
14824
|
+
};
|
|
14825
|
+
export type GameModelSetSessionAdmissionMutationVariables = Exact<{
|
|
14826
|
+
input: SetSessionAdmissionInput;
|
|
14827
|
+
}>;
|
|
14828
|
+
export type GameModelSetSessionAdmissionMutation = {
|
|
14829
|
+
__typename?: 'Mutation';
|
|
14830
|
+
gameModelSetSessionAdmission: {
|
|
14831
|
+
__typename?: 'GmSession';
|
|
14832
|
+
sessionId: string;
|
|
14833
|
+
appId: string;
|
|
14834
|
+
name: string | null;
|
|
14835
|
+
status: string;
|
|
14836
|
+
createdByUserId: string | null;
|
|
14837
|
+
currentTurnUserId: string | null;
|
|
14838
|
+
metadataJson: string;
|
|
14839
|
+
admission: string;
|
|
14840
|
+
maxParticipants: number | null;
|
|
14841
|
+
participantCount: number;
|
|
14842
|
+
hostUserId: string | null;
|
|
14843
|
+
hostTerm: number;
|
|
14844
|
+
revision: string;
|
|
14845
|
+
endedAt: string | null;
|
|
14846
|
+
endReason: string | null;
|
|
14847
|
+
createdAt: string;
|
|
14848
|
+
presence: string;
|
|
14849
|
+
};
|
|
14850
|
+
};
|
|
14851
|
+
export type GameModelTransferSessionHostMutationVariables = Exact<{
|
|
14852
|
+
input: TransferSessionHostInput;
|
|
14853
|
+
}>;
|
|
14854
|
+
export type GameModelTransferSessionHostMutation = {
|
|
14855
|
+
__typename?: 'Mutation';
|
|
14856
|
+
gameModelTransferSessionHost: {
|
|
14857
|
+
__typename?: 'GmSession';
|
|
14858
|
+
sessionId: string;
|
|
14859
|
+
appId: string;
|
|
14860
|
+
name: string | null;
|
|
14861
|
+
status: string;
|
|
14862
|
+
createdByUserId: string | null;
|
|
14863
|
+
currentTurnUserId: string | null;
|
|
14864
|
+
metadataJson: string;
|
|
14865
|
+
admission: string;
|
|
14866
|
+
maxParticipants: number | null;
|
|
14867
|
+
participantCount: number;
|
|
14868
|
+
hostUserId: string | null;
|
|
14869
|
+
hostTerm: number;
|
|
14870
|
+
revision: string;
|
|
14871
|
+
endedAt: string | null;
|
|
14872
|
+
endReason: string | null;
|
|
14873
|
+
createdAt: string;
|
|
14874
|
+
presence: string;
|
|
14875
|
+
};
|
|
14876
|
+
};
|
|
14877
|
+
export type GameModelEndSessionMutationVariables = Exact<{
|
|
14878
|
+
input: EndSessionInput;
|
|
14879
|
+
}>;
|
|
14880
|
+
export type GameModelEndSessionMutation = {
|
|
14881
|
+
__typename?: 'Mutation';
|
|
14882
|
+
gameModelEndSession: {
|
|
14883
|
+
__typename?: 'GmSession';
|
|
14884
|
+
sessionId: string;
|
|
14885
|
+
appId: string;
|
|
14886
|
+
name: string | null;
|
|
14887
|
+
status: string;
|
|
14888
|
+
createdByUserId: string | null;
|
|
14889
|
+
currentTurnUserId: string | null;
|
|
14890
|
+
metadataJson: string;
|
|
14891
|
+
admission: string;
|
|
14892
|
+
maxParticipants: number | null;
|
|
14893
|
+
participantCount: number;
|
|
14894
|
+
hostUserId: string | null;
|
|
14895
|
+
hostTerm: number;
|
|
14896
|
+
revision: string;
|
|
14897
|
+
endedAt: string | null;
|
|
14898
|
+
endReason: string | null;
|
|
14899
|
+
createdAt: string;
|
|
14900
|
+
presence: string;
|
|
14550
14901
|
};
|
|
14551
14902
|
};
|
|
14552
14903
|
export type GameModelCreateContainerMutationVariables = Exact<{
|
|
@@ -14765,11 +15116,24 @@ export type GameModelSessionQuery = {
|
|
|
14765
15116
|
createdByUserId: string | null;
|
|
14766
15117
|
currentTurnUserId: string | null;
|
|
14767
15118
|
metadataJson: string;
|
|
15119
|
+
admission: string;
|
|
15120
|
+
maxParticipants: number | null;
|
|
15121
|
+
participantCount: number;
|
|
15122
|
+
hostUserId: string | null;
|
|
15123
|
+
hostTerm: number;
|
|
15124
|
+
revision: string;
|
|
15125
|
+
endedAt: string | null;
|
|
15126
|
+
endReason: string | null;
|
|
15127
|
+
createdAt: string;
|
|
15128
|
+
presence: string;
|
|
14768
15129
|
};
|
|
14769
15130
|
};
|
|
14770
15131
|
export type GameModelSessionsQueryVariables = Exact<{
|
|
14771
15132
|
appId: Scalars['BigInt']['input'];
|
|
14772
15133
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
15134
|
+
admission?: InputMaybe<Scalars['String']['input']>;
|
|
15135
|
+
hostUserId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
15136
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
14773
15137
|
}>;
|
|
14774
15138
|
export type GameModelSessionsQuery = {
|
|
14775
15139
|
__typename?: 'Query';
|
|
@@ -14782,8 +15146,152 @@ export type GameModelSessionsQuery = {
|
|
|
14782
15146
|
createdByUserId: string | null;
|
|
14783
15147
|
currentTurnUserId: string | null;
|
|
14784
15148
|
metadataJson: string;
|
|
15149
|
+
admission: string;
|
|
15150
|
+
maxParticipants: number | null;
|
|
15151
|
+
participantCount: number;
|
|
15152
|
+
hostUserId: string | null;
|
|
15153
|
+
hostTerm: number;
|
|
15154
|
+
revision: string;
|
|
15155
|
+
endedAt: string | null;
|
|
15156
|
+
endReason: string | null;
|
|
15157
|
+
createdAt: string;
|
|
15158
|
+
presence: string;
|
|
14785
15159
|
}>;
|
|
14786
15160
|
};
|
|
15161
|
+
export type GameModelSessionSnapshotQueryVariables = Exact<{
|
|
15162
|
+
appId: Scalars['BigInt']['input'];
|
|
15163
|
+
sessionId: Scalars['String']['input'];
|
|
15164
|
+
}>;
|
|
15165
|
+
export type GameModelSessionSnapshotQuery = {
|
|
15166
|
+
__typename?: 'Query';
|
|
15167
|
+
gameModelSessionSnapshot: {
|
|
15168
|
+
__typename?: 'GmSessionSnapshot';
|
|
15169
|
+
revision: string;
|
|
15170
|
+
session: {
|
|
15171
|
+
__typename?: 'GmSession';
|
|
15172
|
+
sessionId: string;
|
|
15173
|
+
appId: string;
|
|
15174
|
+
name: string | null;
|
|
15175
|
+
status: string;
|
|
15176
|
+
createdByUserId: string | null;
|
|
15177
|
+
currentTurnUserId: string | null;
|
|
15178
|
+
metadataJson: string;
|
|
15179
|
+
admission: string;
|
|
15180
|
+
maxParticipants: number | null;
|
|
15181
|
+
participantCount: number;
|
|
15182
|
+
hostUserId: string | null;
|
|
15183
|
+
hostTerm: number;
|
|
15184
|
+
revision: string;
|
|
15185
|
+
endedAt: string | null;
|
|
15186
|
+
endReason: string | null;
|
|
15187
|
+
createdAt: string;
|
|
15188
|
+
presence: string;
|
|
15189
|
+
};
|
|
15190
|
+
participants: Array<{
|
|
15191
|
+
__typename?: 'GmSessionParticipant';
|
|
15192
|
+
sessionId: string;
|
|
15193
|
+
userId: string;
|
|
15194
|
+
role: string;
|
|
15195
|
+
state: string;
|
|
15196
|
+
incarnation: number;
|
|
15197
|
+
actorUuid: string | null;
|
|
15198
|
+
joinedAt: string;
|
|
15199
|
+
leftAt: string | null;
|
|
15200
|
+
leftReason: string | null;
|
|
15201
|
+
}>;
|
|
15202
|
+
};
|
|
15203
|
+
};
|
|
15204
|
+
export type GameModelSessionEventsQueryVariables = Exact<{
|
|
15205
|
+
appId: Scalars['BigInt']['input'];
|
|
15206
|
+
sessionId: Scalars['String']['input'];
|
|
15207
|
+
afterRevision: Scalars['String']['input'];
|
|
15208
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
15209
|
+
}>;
|
|
15210
|
+
export type GameModelSessionEventsQuery = {
|
|
15211
|
+
__typename?: 'Query';
|
|
15212
|
+
gameModelSessionEvents: Array<{
|
|
15213
|
+
__typename?: 'GmSessionEvent';
|
|
15214
|
+
appId: string;
|
|
15215
|
+
sessionId: string;
|
|
15216
|
+
revision: string;
|
|
15217
|
+
kind: string;
|
|
15218
|
+
payloadJson: string;
|
|
15219
|
+
createdAt: string;
|
|
15220
|
+
}>;
|
|
15221
|
+
};
|
|
15222
|
+
export type GameModelSessionInspectQueryVariables = Exact<{
|
|
15223
|
+
appId: Scalars['BigInt']['input'];
|
|
15224
|
+
sessionId: Scalars['String']['input'];
|
|
15225
|
+
}>;
|
|
15226
|
+
export type GameModelSessionInspectQuery = {
|
|
15227
|
+
__typename?: 'Query';
|
|
15228
|
+
gameModelSessionInspect: {
|
|
15229
|
+
__typename?: 'GmSessionInspection';
|
|
15230
|
+
session: {
|
|
15231
|
+
__typename?: 'GmSession';
|
|
15232
|
+
sessionId: string;
|
|
15233
|
+
appId: string;
|
|
15234
|
+
name: string | null;
|
|
15235
|
+
status: string;
|
|
15236
|
+
createdByUserId: string | null;
|
|
15237
|
+
currentTurnUserId: string | null;
|
|
15238
|
+
metadataJson: string;
|
|
15239
|
+
admission: string;
|
|
15240
|
+
maxParticipants: number | null;
|
|
15241
|
+
participantCount: number;
|
|
15242
|
+
hostUserId: string | null;
|
|
15243
|
+
hostTerm: number;
|
|
15244
|
+
revision: string;
|
|
15245
|
+
endedAt: string | null;
|
|
15246
|
+
endReason: string | null;
|
|
15247
|
+
createdAt: string;
|
|
15248
|
+
presence: string;
|
|
15249
|
+
};
|
|
15250
|
+
participants: Array<{
|
|
15251
|
+
__typename?: 'GmSessionParticipantInspection';
|
|
15252
|
+
presence: string;
|
|
15253
|
+
presenceFrom: string | null;
|
|
15254
|
+
participant: {
|
|
15255
|
+
__typename?: 'GmSessionParticipant';
|
|
15256
|
+
sessionId: string;
|
|
15257
|
+
userId: string;
|
|
15258
|
+
role: string;
|
|
15259
|
+
state: string;
|
|
15260
|
+
incarnation: number;
|
|
15261
|
+
actorUuid: string | null;
|
|
15262
|
+
joinedAt: string;
|
|
15263
|
+
leftAt: string | null;
|
|
15264
|
+
leftReason: string | null;
|
|
15265
|
+
};
|
|
15266
|
+
}>;
|
|
15267
|
+
recentEvents: Array<{
|
|
15268
|
+
__typename?: 'GmSessionEvent';
|
|
15269
|
+
appId: string;
|
|
15270
|
+
sessionId: string;
|
|
15271
|
+
revision: string;
|
|
15272
|
+
kind: string;
|
|
15273
|
+
payloadJson: string;
|
|
15274
|
+
createdAt: string;
|
|
15275
|
+
}>;
|
|
15276
|
+
};
|
|
15277
|
+
};
|
|
15278
|
+
export type GameModelSessionChangedSubscriptionVariables = Exact<{
|
|
15279
|
+
appId: Scalars['BigInt']['input'];
|
|
15280
|
+
sessionId: Scalars['String']['input'];
|
|
15281
|
+
afterRevision?: InputMaybe<Scalars['String']['input']>;
|
|
15282
|
+
}>;
|
|
15283
|
+
export type GameModelSessionChangedSubscription = {
|
|
15284
|
+
__typename?: 'Subscription';
|
|
15285
|
+
gameModelSessionChanged: {
|
|
15286
|
+
__typename?: 'GmSessionEvent';
|
|
15287
|
+
appId: string;
|
|
15288
|
+
sessionId: string;
|
|
15289
|
+
revision: string;
|
|
15290
|
+
kind: string;
|
|
15291
|
+
payloadJson: string;
|
|
15292
|
+
createdAt: string;
|
|
15293
|
+
};
|
|
15294
|
+
};
|
|
14787
15295
|
export type GameModelEventsQueryVariables = Exact<{
|
|
14788
15296
|
appId: Scalars['BigInt']['input'];
|
|
14789
15297
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -19345,6 +19853,8 @@ export declare const GmAutomationPolicyFieldsFragmentDoc: DocumentNode<GmAutomat
|
|
|
19345
19853
|
export declare const GmAutomationRunFieldsFragmentDoc: DocumentNode<GmAutomationRunFieldsFragment, unknown>;
|
|
19346
19854
|
export declare const GmTimerFieldsFragmentDoc: DocumentNode<GmTimerFieldsFragment, unknown>;
|
|
19347
19855
|
export declare const GmSessionFieldsFragmentDoc: DocumentNode<GmSessionFieldsFragment, unknown>;
|
|
19856
|
+
export declare const GmSessionParticipantFieldsFragmentDoc: DocumentNode<GmSessionParticipantFieldsFragment, unknown>;
|
|
19857
|
+
export declare const GmSessionEventFieldsFragmentDoc: DocumentNode<GmSessionEventFieldsFragment, unknown>;
|
|
19348
19858
|
export declare const GmContainerFieldsFragmentDoc: DocumentNode<GmContainerFieldsFragment, unknown>;
|
|
19349
19859
|
export declare const GmInvokeResultFieldsFragmentDoc: DocumentNode<GmInvokeResultFieldsFragment, unknown>;
|
|
19350
19860
|
export declare const GmFunctionFieldsFragmentDoc: DocumentNode<GmFunctionFieldsFragment, unknown>;
|
|
@@ -19514,7 +20024,11 @@ export declare const GameModelActivePlayerCountDocument: DocumentNode<GameModelA
|
|
|
19514
20024
|
export declare const GameModelActivePlayerCountChangedDocument: DocumentNode<GameModelActivePlayerCountChangedSubscription, GameModelActivePlayerCountChangedSubscriptionVariables>;
|
|
19515
20025
|
export declare const GameModelCreateSessionDocument: DocumentNode<GameModelCreateSessionMutation, GameModelCreateSessionMutationVariables>;
|
|
19516
20026
|
export declare const GameModelJoinSessionDocument: DocumentNode<GameModelJoinSessionMutation, GameModelJoinSessionMutationVariables>;
|
|
20027
|
+
export declare const GameModelLeaveSessionDocument: DocumentNode<GameModelLeaveSessionMutation, GameModelLeaveSessionMutationVariables>;
|
|
19517
20028
|
export declare const GameModelSetSessionTurnDocument: DocumentNode<GameModelSetSessionTurnMutation, GameModelSetSessionTurnMutationVariables>;
|
|
20029
|
+
export declare const GameModelSetSessionAdmissionDocument: DocumentNode<GameModelSetSessionAdmissionMutation, GameModelSetSessionAdmissionMutationVariables>;
|
|
20030
|
+
export declare const GameModelTransferSessionHostDocument: DocumentNode<GameModelTransferSessionHostMutation, GameModelTransferSessionHostMutationVariables>;
|
|
20031
|
+
export declare const GameModelEndSessionDocument: DocumentNode<GameModelEndSessionMutation, GameModelEndSessionMutationVariables>;
|
|
19518
20032
|
export declare const GameModelCreateContainerDocument: DocumentNode<GameModelCreateContainerMutation, GameModelCreateContainerMutationVariables>;
|
|
19519
20033
|
export declare const GameModelDeleteContainerDocument: DocumentNode<GameModelDeleteContainerMutation, GameModelDeleteContainerMutationVariables>;
|
|
19520
20034
|
export declare const GameModelSetPropertyDocument: DocumentNode<GameModelSetPropertyMutation, GameModelSetPropertyMutationVariables>;
|
|
@@ -19528,6 +20042,10 @@ export declare const GameModelContainerStateDocument: DocumentNode<GameModelCont
|
|
|
19528
20042
|
export declare const GameModelTraverseDocument: DocumentNode<GameModelTraverseQuery, GameModelTraverseQueryVariables>;
|
|
19529
20043
|
export declare const GameModelSessionDocument: DocumentNode<GameModelSessionQuery, GameModelSessionQueryVariables>;
|
|
19530
20044
|
export declare const GameModelSessionsDocument: DocumentNode<GameModelSessionsQuery, GameModelSessionsQueryVariables>;
|
|
20045
|
+
export declare const GameModelSessionSnapshotDocument: DocumentNode<GameModelSessionSnapshotQuery, GameModelSessionSnapshotQueryVariables>;
|
|
20046
|
+
export declare const GameModelSessionEventsDocument: DocumentNode<GameModelSessionEventsQuery, GameModelSessionEventsQueryVariables>;
|
|
20047
|
+
export declare const GameModelSessionInspectDocument: DocumentNode<GameModelSessionInspectQuery, GameModelSessionInspectQueryVariables>;
|
|
20048
|
+
export declare const GameModelSessionChangedDocument: DocumentNode<GameModelSessionChangedSubscription, GameModelSessionChangedSubscriptionVariables>;
|
|
19531
20049
|
export declare const GameModelEventsDocument: DocumentNode<GameModelEventsQuery, GameModelEventsQueryVariables>;
|
|
19532
20050
|
export declare const GameModelEventsConnectionDocument: DocumentNode<GameModelEventsConnectionQuery, GameModelEventsConnectionQueryVariables>;
|
|
19533
20051
|
export declare const GameModelFlowDocument: DocumentNode<GameModelFlowQuery, GameModelFlowQueryVariables>;
|