@crowdedkingdoms/crowdyjs 17.3.0-dev.1 → 17.4.0-test.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 +75 -0
- 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 +522 -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 = {
|
|
@@ -3539,6 +3549,19 @@ export type EmailStatusRecord = {
|
|
|
3539
3549
|
/** valid | bounced | complained. */
|
|
3540
3550
|
status: Scalars['String']['output'];
|
|
3541
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
|
+
};
|
|
3542
3565
|
/** Compute units attributed to one engine over the query window. */
|
|
3543
3566
|
export type EngineComputeUnits = {
|
|
3544
3567
|
__typename?: 'EngineComputeUnits';
|
|
@@ -4541,31 +4564,109 @@ export type GmSeedResult = {
|
|
|
4541
4564
|
/** A runtime session: an isolated instance scope (e.g. a match or room) for containers. */
|
|
4542
4565
|
export type GmSession = {
|
|
4543
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'];
|
|
4544
4569
|
/** The app (tenant) that owns the session. */
|
|
4545
4570
|
appId: Scalars['BigInt']['output'];
|
|
4571
|
+
/** When the session was created. */
|
|
4572
|
+
createdAt: Scalars['DateTime']['output'];
|
|
4546
4573
|
/** The user who created the session. */
|
|
4547
4574
|
createdByUserId: Maybe<Scalars['BigInt']['output']>;
|
|
4548
4575
|
/** The user whose turn it currently is (turn-based play), or null. */
|
|
4549
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']>;
|
|
4550
4587
|
/** JSON object of developer metadata. */
|
|
4551
4588
|
metadataJson: Scalars['String']['output'];
|
|
4552
4589
|
/** Optional session name. */
|
|
4553
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'];
|
|
4554
4597
|
/** Unique session id. */
|
|
4555
4598
|
sessionId: Scalars['String']['output'];
|
|
4556
4599
|
/** Lifecycle status (e.g. active). */
|
|
4557
4600
|
status: Scalars['String']['output'];
|
|
4558
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
|
+
};
|
|
4559
4628
|
/** A user's participation in a session. */
|
|
4560
4629
|
export type GmSessionParticipant = {
|
|
4561
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']>;
|
|
4562
4641
|
/** The participant role within the session. */
|
|
4563
4642
|
role: Scalars['String']['output'];
|
|
4564
4643
|
/** The session id. */
|
|
4565
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'];
|
|
4566
4647
|
/** The participant user id. */
|
|
4567
4648
|
userId: Scalars['BigInt']['output'];
|
|
4568
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
|
+
};
|
|
4569
4670
|
/** A grant of a feature key to an access tier. */
|
|
4570
4671
|
export type GmTierFeature = {
|
|
4571
4672
|
__typename?: 'GmTierFeature';
|
|
@@ -5066,15 +5167,30 @@ export type InvokeFunctionInput = {
|
|
|
5066
5167
|
/** Optional session context for the invocation. */
|
|
5067
5168
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
5068
5169
|
};
|
|
5069
|
-
/** Join an existing session. */
|
|
5170
|
+
/** Join an existing session, or reconnect to one you are already in. */
|
|
5070
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']>;
|
|
5071
5174
|
/** The app (tenant) that owns the session. */
|
|
5072
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']>;
|
|
5073
5178
|
/** Optional participant role to join as. */
|
|
5074
5179
|
role?: InputMaybe<Scalars['String']['input']>;
|
|
5075
5180
|
/** The session id to join. */
|
|
5076
5181
|
sessionId: Scalars['String']['input'];
|
|
5077
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
|
+
};
|
|
5078
5194
|
/** Link an additional federated identity to the signed-in account. */
|
|
5079
5195
|
export type LinkIdentityInput = {
|
|
5080
5196
|
code: Scalars['String']['input'];
|
|
@@ -5326,7 +5442,7 @@ export type Mutation = {
|
|
|
5326
5442
|
gameModelCancelTimer: Scalars['Int']['output'];
|
|
5327
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. */
|
|
5328
5444
|
gameModelCreateContainer: GmContainer;
|
|
5329
|
-
/** 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. */
|
|
5330
5446
|
gameModelCreateSession: GmSession;
|
|
5331
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'). */
|
|
5332
5448
|
gameModelDefineFeature: GmAppFeature;
|
|
@@ -5344,14 +5460,18 @@ export type Mutation = {
|
|
|
5344
5460
|
gameModelDeleteFunction: Scalars['Boolean']['output'];
|
|
5345
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. */
|
|
5346
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;
|
|
5347
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. */
|
|
5348
5466
|
gameModelEnsureContainer: GmEnsureContainerResult;
|
|
5349
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'). */
|
|
5350
5468
|
gameModelGrantTierFeature: GmTierFeature;
|
|
5351
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. */
|
|
5352
5470
|
gameModelInvoke: GmInvokeResult;
|
|
5353
|
-
/** 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. */
|
|
5354
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;
|
|
5355
5475
|
/** Revoke a feature key from an access tier. Requires app-admin ('manage_apps'). Returns true if a grant was removed. */
|
|
5356
5476
|
gameModelRevokeTierFeature: Scalars['Boolean']['output'];
|
|
5357
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'). */
|
|
@@ -5368,8 +5488,12 @@ export type Mutation = {
|
|
|
5368
5488
|
gameModelSetPolicy: GmAppPolicy;
|
|
5369
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. */
|
|
5370
5490
|
gameModelSetProperty: GmContainer;
|
|
5371
|
-
/**
|
|
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. */
|
|
5372
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;
|
|
5373
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. */
|
|
5374
5498
|
gameModelUpsertAutomation: GmAutomation;
|
|
5375
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'). */
|
|
@@ -5966,6 +6090,9 @@ export type MutationGameModelDeletePropertyDefArgs = {
|
|
|
5966
6090
|
containerTypeName: Scalars['String']['input'];
|
|
5967
6091
|
key: Scalars['String']['input'];
|
|
5968
6092
|
};
|
|
6093
|
+
export type MutationGameModelEndSessionArgs = {
|
|
6094
|
+
input: EndSessionInput;
|
|
6095
|
+
};
|
|
5969
6096
|
export type MutationGameModelEnsureContainerArgs = {
|
|
5970
6097
|
input: EnsureContainerInput;
|
|
5971
6098
|
};
|
|
@@ -5978,6 +6105,9 @@ export type MutationGameModelInvokeArgs = {
|
|
|
5978
6105
|
export type MutationGameModelJoinSessionArgs = {
|
|
5979
6106
|
input: JoinSessionInput;
|
|
5980
6107
|
};
|
|
6108
|
+
export type MutationGameModelLeaveSessionArgs = {
|
|
6109
|
+
input: LeaveSessionInput;
|
|
6110
|
+
};
|
|
5981
6111
|
export type MutationGameModelRevokeTierFeatureArgs = {
|
|
5982
6112
|
input: GrantTierFeatureInput;
|
|
5983
6113
|
};
|
|
@@ -6005,9 +6135,15 @@ export type MutationGameModelSetPolicyArgs = {
|
|
|
6005
6135
|
export type MutationGameModelSetPropertyArgs = {
|
|
6006
6136
|
input: SetContainerPropertyInput;
|
|
6007
6137
|
};
|
|
6138
|
+
export type MutationGameModelSetSessionAdmissionArgs = {
|
|
6139
|
+
input: SetSessionAdmissionInput;
|
|
6140
|
+
};
|
|
6008
6141
|
export type MutationGameModelSetSessionTurnArgs = {
|
|
6009
6142
|
input: SetSessionTurnInput;
|
|
6010
6143
|
};
|
|
6144
|
+
export type MutationGameModelTransferSessionHostArgs = {
|
|
6145
|
+
input: TransferSessionHostInput;
|
|
6146
|
+
};
|
|
6011
6147
|
export type MutationGameModelUpsertAutomationArgs = {
|
|
6012
6148
|
input: UpsertAutomationInput;
|
|
6013
6149
|
};
|
|
@@ -7917,9 +8053,15 @@ export type Query = {
|
|
|
7917
8053
|
gameModelPolicy: GmAppPolicy;
|
|
7918
8054
|
/** List the property definitions for a container type. Requires app-admin ('manage_apps'). */
|
|
7919
8055
|
gameModelPropertyDefs: Array<GmPropertyDef>;
|
|
7920
|
-
/** 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. */
|
|
7921
8057
|
gameModelSession: GmSession;
|
|
7922
|
-
/**
|
|
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. */
|
|
7923
8065
|
gameModelSessions: Array<GmSession>;
|
|
7924
8066
|
/** List tier -> feature grants for an app, optionally filtered to one tier. Requires app-admin ('manage_apps'). */
|
|
7925
8067
|
gameModelTierFeatures: Array<GmTierFeature>;
|
|
@@ -8540,8 +8682,25 @@ export type QueryGameModelSessionArgs = {
|
|
|
8540
8682
|
appId: Scalars['BigInt']['input'];
|
|
8541
8683
|
sessionId: Scalars['String']['input'];
|
|
8542
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
|
+
};
|
|
8543
8699
|
export type QueryGameModelSessionsArgs = {
|
|
8700
|
+
admission?: InputMaybe<Scalars['String']['input']>;
|
|
8544
8701
|
appId: Scalars['BigInt']['input'];
|
|
8702
|
+
hostUserId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
8703
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
8545
8704
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
8546
8705
|
};
|
|
8547
8706
|
export type QueryGameModelTierFeaturesArgs = {
|
|
@@ -9769,10 +9928,27 @@ export type SetRateCardResult = {
|
|
|
9769
9928
|
/** The dimension as it now stands. */
|
|
9770
9929
|
entry: RateCardEntryType;
|
|
9771
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
|
+
};
|
|
9772
9944
|
/** Set or clear the current-turn user of a session. */
|
|
9773
9945
|
export type SetSessionTurnInput = {
|
|
9774
9946
|
/** The app (tenant) that owns the session. */
|
|
9775
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']>;
|
|
9776
9952
|
/** The session id to update. */
|
|
9777
9953
|
sessionId: Scalars['String']['input'];
|
|
9778
9954
|
/** The user whose turn it now is (NULL clears the turn). */
|
|
@@ -9872,6 +10048,8 @@ export type Subscription = {
|
|
|
9872
10048
|
gameModelActivePlayerCountChanged: GameModelActivePlayerCountChange;
|
|
9873
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. */
|
|
9874
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;
|
|
9875
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. */
|
|
9876
10054
|
udpNotifications: Maybe<UdpNotification>;
|
|
9877
10055
|
};
|
|
@@ -9883,6 +10061,11 @@ export type SubscriptionGameModelContainerChangedArgs = {
|
|
|
9883
10061
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
9884
10062
|
typeName?: InputMaybe<Scalars['String']['input']>;
|
|
9885
10063
|
};
|
|
10064
|
+
export type SubscriptionGameModelSessionChangedArgs = {
|
|
10065
|
+
afterRevision?: InputMaybe<Scalars['String']['input']>;
|
|
10066
|
+
appId: Scalars['BigInt']['input'];
|
|
10067
|
+
sessionId: Scalars['String']['input'];
|
|
10068
|
+
};
|
|
9886
10069
|
export type TeleportRequestInput = {
|
|
9887
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. */
|
|
9888
10071
|
appId: Scalars['BigInt']['input'];
|
|
@@ -9929,6 +10112,19 @@ export type TransferPlayerCodeListingInput = {
|
|
|
9929
10112
|
/** Numeric user id or org id of the new owner, per toOwnerKind. */
|
|
9930
10113
|
toOwnerRef: Scalars['BigInt']['input'];
|
|
9931
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
|
+
};
|
|
9932
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). */
|
|
9933
10129
|
export declare enum UdpErrorCode {
|
|
9934
10130
|
/** No app matches the supplied appId. */
|
|
@@ -14472,6 +14668,37 @@ export type GmSessionFieldsFragment = {
|
|
|
14472
14668
|
createdByUserId: string | null;
|
|
14473
14669
|
currentTurnUserId: string | null;
|
|
14474
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;
|
|
14475
14702
|
};
|
|
14476
14703
|
export type GmContainerFieldsFragment = {
|
|
14477
14704
|
__typename?: 'GmContainer';
|
|
@@ -14521,6 +14748,16 @@ export type GameModelCreateSessionMutation = {
|
|
|
14521
14748
|
createdByUserId: string | null;
|
|
14522
14749
|
currentTurnUserId: string | null;
|
|
14523
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;
|
|
14524
14761
|
};
|
|
14525
14762
|
};
|
|
14526
14763
|
export type GameModelJoinSessionMutationVariables = Exact<{
|
|
@@ -14533,6 +14770,30 @@ export type GameModelJoinSessionMutation = {
|
|
|
14533
14770
|
sessionId: string;
|
|
14534
14771
|
userId: string;
|
|
14535
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;
|
|
14536
14797
|
};
|
|
14537
14798
|
};
|
|
14538
14799
|
export type GameModelSetSessionTurnMutationVariables = Exact<{
|
|
@@ -14549,6 +14810,94 @@ export type GameModelSetSessionTurnMutation = {
|
|
|
14549
14810
|
createdByUserId: string | null;
|
|
14550
14811
|
currentTurnUserId: string | null;
|
|
14551
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;
|
|
14552
14901
|
};
|
|
14553
14902
|
};
|
|
14554
14903
|
export type GameModelCreateContainerMutationVariables = Exact<{
|
|
@@ -14767,11 +15116,24 @@ export type GameModelSessionQuery = {
|
|
|
14767
15116
|
createdByUserId: string | null;
|
|
14768
15117
|
currentTurnUserId: string | null;
|
|
14769
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;
|
|
14770
15129
|
};
|
|
14771
15130
|
};
|
|
14772
15131
|
export type GameModelSessionsQueryVariables = Exact<{
|
|
14773
15132
|
appId: Scalars['BigInt']['input'];
|
|
14774
15133
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
15134
|
+
admission?: InputMaybe<Scalars['String']['input']>;
|
|
15135
|
+
hostUserId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
15136
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
14775
15137
|
}>;
|
|
14776
15138
|
export type GameModelSessionsQuery = {
|
|
14777
15139
|
__typename?: 'Query';
|
|
@@ -14784,8 +15146,152 @@ export type GameModelSessionsQuery = {
|
|
|
14784
15146
|
createdByUserId: string | null;
|
|
14785
15147
|
currentTurnUserId: string | null;
|
|
14786
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;
|
|
14787
15159
|
}>;
|
|
14788
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
|
+
};
|
|
14789
15295
|
export type GameModelEventsQueryVariables = Exact<{
|
|
14790
15296
|
appId: Scalars['BigInt']['input'];
|
|
14791
15297
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -19347,6 +19853,8 @@ export declare const GmAutomationPolicyFieldsFragmentDoc: DocumentNode<GmAutomat
|
|
|
19347
19853
|
export declare const GmAutomationRunFieldsFragmentDoc: DocumentNode<GmAutomationRunFieldsFragment, unknown>;
|
|
19348
19854
|
export declare const GmTimerFieldsFragmentDoc: DocumentNode<GmTimerFieldsFragment, unknown>;
|
|
19349
19855
|
export declare const GmSessionFieldsFragmentDoc: DocumentNode<GmSessionFieldsFragment, unknown>;
|
|
19856
|
+
export declare const GmSessionParticipantFieldsFragmentDoc: DocumentNode<GmSessionParticipantFieldsFragment, unknown>;
|
|
19857
|
+
export declare const GmSessionEventFieldsFragmentDoc: DocumentNode<GmSessionEventFieldsFragment, unknown>;
|
|
19350
19858
|
export declare const GmContainerFieldsFragmentDoc: DocumentNode<GmContainerFieldsFragment, unknown>;
|
|
19351
19859
|
export declare const GmInvokeResultFieldsFragmentDoc: DocumentNode<GmInvokeResultFieldsFragment, unknown>;
|
|
19352
19860
|
export declare const GmFunctionFieldsFragmentDoc: DocumentNode<GmFunctionFieldsFragment, unknown>;
|
|
@@ -19516,7 +20024,11 @@ export declare const GameModelActivePlayerCountDocument: DocumentNode<GameModelA
|
|
|
19516
20024
|
export declare const GameModelActivePlayerCountChangedDocument: DocumentNode<GameModelActivePlayerCountChangedSubscription, GameModelActivePlayerCountChangedSubscriptionVariables>;
|
|
19517
20025
|
export declare const GameModelCreateSessionDocument: DocumentNode<GameModelCreateSessionMutation, GameModelCreateSessionMutationVariables>;
|
|
19518
20026
|
export declare const GameModelJoinSessionDocument: DocumentNode<GameModelJoinSessionMutation, GameModelJoinSessionMutationVariables>;
|
|
20027
|
+
export declare const GameModelLeaveSessionDocument: DocumentNode<GameModelLeaveSessionMutation, GameModelLeaveSessionMutationVariables>;
|
|
19519
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>;
|
|
19520
20032
|
export declare const GameModelCreateContainerDocument: DocumentNode<GameModelCreateContainerMutation, GameModelCreateContainerMutationVariables>;
|
|
19521
20033
|
export declare const GameModelDeleteContainerDocument: DocumentNode<GameModelDeleteContainerMutation, GameModelDeleteContainerMutationVariables>;
|
|
19522
20034
|
export declare const GameModelSetPropertyDocument: DocumentNode<GameModelSetPropertyMutation, GameModelSetPropertyMutationVariables>;
|
|
@@ -19530,6 +20042,10 @@ export declare const GameModelContainerStateDocument: DocumentNode<GameModelCont
|
|
|
19530
20042
|
export declare const GameModelTraverseDocument: DocumentNode<GameModelTraverseQuery, GameModelTraverseQueryVariables>;
|
|
19531
20043
|
export declare const GameModelSessionDocument: DocumentNode<GameModelSessionQuery, GameModelSessionQueryVariables>;
|
|
19532
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>;
|
|
19533
20049
|
export declare const GameModelEventsDocument: DocumentNode<GameModelEventsQuery, GameModelEventsQueryVariables>;
|
|
19534
20050
|
export declare const GameModelEventsConnectionDocument: DocumentNode<GameModelEventsConnectionQuery, GameModelEventsConnectionQueryVariables>;
|
|
19535
20051
|
export declare const GameModelFlowDocument: DocumentNode<GameModelFlowQuery, GameModelFlowQueryVariables>;
|