@crowdedkingdomstudios/crowdyjs 5.2.0 → 5.3.0

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.
Files changed (74) hide show
  1. package/MIGRATION.md +22 -0
  2. package/dist/client.d.ts +98 -5
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +74 -5
  5. package/dist/crowdy-client.d.ts +31 -0
  6. package/dist/crowdy-client.d.ts.map +1 -1
  7. package/dist/crowdy-client.js +8 -0
  8. package/dist/domains/actors.d.ts +87 -4
  9. package/dist/domains/actors.d.ts.map +1 -1
  10. package/dist/domains/actors.js +87 -4
  11. package/dist/domains/apps.d.ts +95 -41
  12. package/dist/domains/apps.d.ts.map +1 -1
  13. package/dist/domains/apps.js +80 -33
  14. package/dist/domains/auth.d.ts +139 -19
  15. package/dist/domains/auth.d.ts.map +1 -1
  16. package/dist/domains/auth.js +137 -17
  17. package/dist/domains/channels.d.ts +264 -5
  18. package/dist/domains/channels.d.ts.map +1 -1
  19. package/dist/domains/channels.js +264 -5
  20. package/dist/domains/chunks.d.ts +116 -3
  21. package/dist/domains/chunks.d.ts.map +1 -1
  22. package/dist/domains/chunks.js +116 -3
  23. package/dist/domains/gameModel.d.ts +412 -6
  24. package/dist/domains/gameModel.d.ts.map +1 -1
  25. package/dist/domains/gameModel.js +412 -6
  26. package/dist/domains/platform.d.ts +36 -20
  27. package/dist/domains/platform.d.ts.map +1 -1
  28. package/dist/domains/platform.js +29 -18
  29. package/dist/domains/serverStatus.d.ts +74 -6
  30. package/dist/domains/serverStatus.d.ts.map +1 -1
  31. package/dist/domains/serverStatus.js +74 -6
  32. package/dist/domains/state.d.ts +50 -2
  33. package/dist/domains/state.d.ts.map +1 -1
  34. package/dist/domains/state.js +50 -2
  35. package/dist/domains/teams.d.ts +263 -5
  36. package/dist/domains/teams.d.ts.map +1 -1
  37. package/dist/domains/teams.js +263 -5
  38. package/dist/domains/teleport.d.ts +30 -2
  39. package/dist/domains/teleport.d.ts.map +1 -1
  40. package/dist/domains/teleport.js +30 -2
  41. package/dist/domains/udp.d.ts +341 -5
  42. package/dist/domains/udp.d.ts.map +1 -1
  43. package/dist/domains/udp.js +341 -5
  44. package/dist/domains/users.d.ts +42 -11
  45. package/dist/domains/users.d.ts.map +1 -1
  46. package/dist/domains/users.js +41 -10
  47. package/dist/domains/voxels.d.ts +107 -2
  48. package/dist/domains/voxels.d.ts.map +1 -1
  49. package/dist/domains/voxels.js +107 -2
  50. package/dist/errors.d.ts +116 -0
  51. package/dist/errors.d.ts.map +1 -1
  52. package/dist/errors.js +100 -0
  53. package/dist/generated/graphql.d.ts +5 -1
  54. package/dist/generated/graphql.d.ts.map +1 -1
  55. package/dist/generated/graphql.js +5 -1
  56. package/dist/index.d.ts +2 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -1
  59. package/dist/realtime.d.ts +226 -0
  60. package/dist/realtime.d.ts.map +1 -1
  61. package/dist/realtime.js +90 -0
  62. package/dist/session.d.ts +46 -0
  63. package/dist/session.d.ts.map +1 -1
  64. package/dist/session.js +35 -0
  65. package/dist/types.d.ts +429 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/types.js +53 -0
  68. package/dist/utils.d.ts +86 -0
  69. package/dist/utils.d.ts.map +1 -1
  70. package/dist/utils.js +86 -0
  71. package/dist/world.d.ts +192 -0
  72. package/dist/world.d.ts.map +1 -1
  73. package/dist/world.js +170 -0
  74. package/package.json +1 -1
@@ -1,40 +1,446 @@
1
1
  import type { GraphQLClient } from '../client.js';
2
2
  import { type GameModelCreateSessionMutation, type GameModelCreateSessionMutationVariables, type GameModelJoinSessionMutation, type GameModelJoinSessionMutationVariables, type GameModelSetSessionTurnMutation, type GameModelSetSessionTurnMutationVariables, type GameModelCreateContainerMutation, type GameModelCreateContainerMutationVariables, type GameModelSetPropertyMutation, type GameModelSetPropertyMutationVariables, type GameModelAddEdgeMutation, type GameModelAddEdgeMutationVariables, type GameModelInvokeMutation, type GameModelInvokeMutationVariables, type GameModelContainerQuery, type GameModelContainerQueryVariables, type GameModelContainersQuery, type GameModelContainersQueryVariables, type GameModelContainerStateQuery, type GameModelContainerStateQueryVariables, type GameModelTraverseQuery, type GameModelTraverseQueryVariables, type GameModelSessionQuery, type GameModelSessionQueryVariables, type GameModelSessionsQuery, type GameModelSessionsQueryVariables, type GameModelEventsQuery, type GameModelEventsQueryVariables, type GameModelSeedMutation, type GameModelSeedMutationVariables, type GameModelUpsertContainerTypeMutation, type GameModelUpsertContainerTypeMutationVariables, type GameModelUpsertPropertyDefMutation, type GameModelUpsertPropertyDefMutationVariables, type GameModelUpsertFunctionMutation, type GameModelUpsertFunctionMutationVariables, type GameModelDeleteFunctionMutation, type GameModelDeleteFunctionMutationVariables, type GameModelDefineFeatureMutation, type GameModelDefineFeatureMutationVariables, type GameModelGrantTierFeatureMutation, type GameModelGrantTierFeatureMutationVariables, type GameModelSetPolicyMutation, type GameModelSetPolicyMutationVariables, type GameModelTypeSchemaQuery, type GameModelTypeSchemaQueryVariables } from '../generated/graphql.js';
3
3
  /**
4
- * Abstract game model sub-client (cks-game-api). Studios author the model
5
- * (container types, property schemas, functions, tier features) and players
6
- * query state + invoke functions at runtime.
4
+ * Abstract **game-model** sub-client on the **game-api** a schema-driven,
5
+ * server-authoritative layer for modelling game/world logic on top of the
6
+ * spatial voxel world. Studios *author* the model; players *query* state and
7
+ * *invoke* functions at runtime. Exposed as `client.gameModel`.
7
8
  *
8
- * Arbitrary JSON values are passed/returned as JSON-encoded strings (the
9
- * `*Json` fields); callers JSON.parse / JSON.stringify around them.
9
+ * The model is a typed graph of entities:
10
+ * - **Container types** are the schemas (like classes) for a kind of entity.
11
+ * **Property definitions** are their typed fields, each with a default value,
12
+ * a read **visibility** (`public | owner | hidden`) and a **writability**
13
+ * (`function | owner | admin`). See {@link upsertContainerType} /
14
+ * {@link upsertPropertyDef} / {@link typeSchema}.
15
+ * - **Containers** are the runtime instances of a type, optionally scoped to a
16
+ * session and carrying property values. See {@link createContainer},
17
+ * {@link container}, {@link containers}, {@link containerState}.
18
+ * - **Functions** are named, sandboxed behaviours over containers: typed
19
+ * parameters, declared property **mutations** (expressions compiled to an AST
20
+ * server-side — never `eval`'d), an optional return expression, an
21
+ * `invokeScope` (`player | server | internal`), and an **invoke policy** — an
22
+ * authority rule tree of `owner_of_self`, `is_host`, `is_current_turn`,
23
+ * `is_participant`, `tier_feature`, `group_permission`, `grid_permission`, and
24
+ * `condition` rules. {@link invoke} is the primary, *safe* way for players to
25
+ * mutate state: the server checks the policy, evaluates the expressions,
26
+ * applies the mutations atomically, and logs an **event**.
27
+ * - **Sessions** are isolated instance scopes (a match, room, or save) with
28
+ * **participants**, a creator, and an optional current-**turn** user for
29
+ * turn-based play. See {@link createSession}, {@link joinSession},
30
+ * {@link setSessionTurn}, {@link session}, {@link sessions}.
31
+ * - **Edges** are directed, typed relationships between containers (the model is
32
+ * a graph); {@link traverse} walks them from a root up to a depth. See
33
+ * {@link addEdge}.
34
+ * - **Events** are an audit log of every function invocation and its outcome.
35
+ * See {@link events}.
36
+ * - **App features** are keys functions gate on (via `tier_feature` rules) and
37
+ * that **access tiers** can be granted ({@link defineFeature},
38
+ * {@link grantTierFeature}); **policy** governs who may create sessions and the
39
+ * default participant role ({@link setPolicy}).
40
+ * - {@link seed} bulk-creates definitions *and* instances in one transaction for
41
+ * model init/import.
10
42
  *
11
- * Exposed as `client.gameModel`.
43
+ * **Encoding.** `BigInt` ids (`appId`, `tierId`, every `*UserId`) are sent and
44
+ * received as decimal **strings**. Container, session, function, edge, and event
45
+ * ids are opaque **UUID strings**. All structured values travel as JSON-encoded
46
+ * strings in the `*Json` fields (`metadataJson`, `propertiesJson`, `paramsJson`,
47
+ * `valueJson`, `returnValueJson`, `invokePolicyJson`, `idMapJson`, …) — callers
48
+ * `JSON.parse` / `JSON.stringify` around them. (Unlike actor/state blobs, these
49
+ * are JSON text, not base64.)
50
+ *
51
+ * **Auth.** Every call requires an authenticated session (a Bearer token set via
52
+ * `client.auth.login()` or `client.setToken()`) scoped to the target app, or it
53
+ * throws {@link CrowdyGraphQLError} (`UNAUTHENTICATED` / `SCOPE_MISSING`). The
54
+ * **studio-authoring** methods ({@link seed}, {@link upsertContainerType},
55
+ * {@link upsertPropertyDef}, {@link upsertFunction}, {@link deleteFunction},
56
+ * {@link defineFeature}, {@link grantTierFeature}, {@link setPolicy}) and the
57
+ * {@link typeSchema} query additionally require the app-admin **`manage_apps`**
58
+ * permission (otherwise `FORBIDDEN`, with `extensions.requiredPermission ===
59
+ * 'manage_apps'`); the runtime/player methods need only a valid token plus
60
+ * whatever per-operation policy applies (session-creation policy, a type's
61
+ * `instantiableBy` rule, a property's `writable` rule, or a function's invoke
62
+ * policy).
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * // Studio authors a type, then a player creates a session and invokes a function.
67
+ * await client.gameModel.upsertContainerType({ appId, typeName: 'Player', displayName: 'Player' });
68
+ * const session = await client.gameModel.createSession({ appId, name: 'Match 1' });
69
+ * const result = await client.gameModel.invoke({
70
+ * appId,
71
+ * functionName: 'takeDamage',
72
+ * selfContainerId,
73
+ * paramsJson: JSON.stringify({ amount: 10 }),
74
+ * });
75
+ * if (!result.success) console.warn(result.errorMessage); // authority/eval failures don't throw
76
+ * ```
12
77
  */
13
78
  export declare class GameModelAPI {
14
79
  private gql;
15
80
  constructor(gql: GraphQLClient);
81
+ /**
82
+ * **Sessions** — create a runtime session: an isolated instance scope for
83
+ * containers (e.g. a match, room, or save). Subject to the app's
84
+ * session-creation policy ({@link setPolicy}); the caller becomes the creator
85
+ * and a participant.
86
+ *
87
+ * @param input - {@link CreateSessionInput}: `appId` (decimal string), an
88
+ * optional `name`, optional `metadataJson` (a JSON-object string), and
89
+ * optional `participantUserIds` (decimal-string ids of initial participants
90
+ * besides the creator).
91
+ * @returns The created {@link GmSession} (`sessionId`, `status`, creator,
92
+ * current turn, metadata, …).
93
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING` if the token
94
+ * is missing or not scoped to the app, `FORBIDDEN` if the session-creation
95
+ * policy disallows the caller, or `BAD_USER_INPUT` for malformed input.
96
+ */
16
97
  createSession(input: GameModelCreateSessionMutationVariables['input']): Promise<GameModelCreateSessionMutation['gameModelCreateSession']>;
98
+ /**
99
+ * **Sessions** — join an existing session as a participant, optionally with a
100
+ * role. Requires a valid token and access to the app.
101
+ *
102
+ * @param input - {@link JoinSessionInput}: `appId` (decimal string),
103
+ * `sessionId`, and an optional participant `role`.
104
+ * @returns The {@link GmSessionParticipant} record (`sessionId`, `userId`,
105
+ * `role`).
106
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
107
+ * `NOT_FOUND` if no such session, or `FORBIDDEN` if joining isn't permitted.
108
+ */
17
109
  joinSession(input: GameModelJoinSessionMutationVariables['input']): Promise<GameModelJoinSessionMutation['gameModelJoinSession']>;
110
+ /**
111
+ * **Sessions** — set or clear the session's current-turn user, for turn-based
112
+ * play (turn authority is enforced by the service).
113
+ *
114
+ * @param input - {@link SetSessionTurnInput}: `appId` (decimal string),
115
+ * `sessionId`, and `userId` (the decimal-string id of the user whose turn it
116
+ * now is) — pass `userId: null` to **clear** the turn.
117
+ * @returns The updated {@link GmSession} (with `currentTurnUserId` reflecting
118
+ * the change).
119
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
120
+ * `NOT_FOUND` if the session doesn't exist, or `FORBIDDEN` if the caller may
121
+ * not change the turn.
122
+ */
18
123
  setSessionTurn(input: GameModelSetSessionTurnMutationVariables['input']): Promise<GameModelSetSessionTurnMutation['gameModelSetSessionTurn']>;
124
+ /**
125
+ * **Containers** — instantiate a container (a runtime entity of a given type),
126
+ * optionally within a session, with an owner and initial property values.
127
+ * Subject to the type's `instantiableBy` rule (`admin | member | owner`).
128
+ *
129
+ * @param input - {@link CreateContainerInput}: `appId` (decimal string), an
130
+ * optional `sessionId` (omit for an app-global container), the `typeName` to
131
+ * instantiate, a `displayName`, optional `description`, optional
132
+ * `ownerUserId` (decimal string; defaults to the caller for member/owner
133
+ * instantiation), optional `metadataJson` (JSON-object string), and optional
134
+ * initial `properties` (each `{ key, valueType, valueJson }` with a
135
+ * JSON-encoded value).
136
+ * @returns The created {@link GmContainer}.
137
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
138
+ * `FORBIDDEN` if `instantiableBy` disallows the caller, `NOT_FOUND` for an
139
+ * unknown type, or `BAD_USER_INPUT` for malformed properties.
140
+ */
19
141
  createContainer(input: GameModelCreateContainerMutationVariables['input']): Promise<GameModelCreateContainerMutation['gameModelCreateContainer']>;
142
+ /**
143
+ * **Containers** — set a single property value on a container directly (outside
144
+ * a function). Allowed only when the property's `writable` rule
145
+ * (`function | owner | admin`) permits the caller; the value is JSON-encoded
146
+ * and coerced to the property's declared value type. For game-logic changes
147
+ * prefer {@link invoke}, which enforces an authority policy and logs an event.
148
+ *
149
+ * @param input - {@link SetContainerPropertyInput}: `appId` (decimal string),
150
+ * `containerId`, the property `key`, its `valueType` (must match the property
151
+ * definition), and `valueJson` (the JSON-encoded value to write).
152
+ * @returns The updated {@link GmContainer}.
153
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
154
+ * `FORBIDDEN` if the property's `writable` rule forbids a direct write,
155
+ * `NOT_FOUND` for an unknown container/property, or `BAD_USER_INPUT` for a
156
+ * value-type mismatch.
157
+ */
20
158
  setProperty(input: GameModelSetPropertyMutationVariables['input']): Promise<GameModelSetPropertyMutation['gameModelSetProperty']>;
159
+ /**
160
+ * **Edges** — create a directed relationship edge between two containers (the
161
+ * game model is a graph), with a relationship type and optional weight.
162
+ *
163
+ * @param input - {@link AddEdgeInput}: `appId` (decimal string),
164
+ * `fromContainerId` (source) and `toContainerId` (target), a
165
+ * `relationshipType` label, an optional numeric `weight`, and optional
166
+ * `metadataJson` (JSON-object string).
167
+ * @returns The created {@link GmEdge} (`edgeId`, endpoints, type, weight).
168
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
169
+ * `NOT_FOUND` if either container is unknown, or `BAD_USER_INPUT`.
170
+ */
21
171
  addEdge(input: GameModelAddEdgeMutationVariables['input']): Promise<GameModelAddEdgeMutation['gameModelAddEdge']>;
172
+ /**
173
+ * **Functions** — invoke a studio-defined function against a `self` container
174
+ * with JSON params. This is the primary, *safe* way for players to mutate game
175
+ * state: the server enforces the function's invoke policy (the authority rule
176
+ * tree — `owner_of_self` / `is_host` / `is_current_turn` / `is_participant` /
177
+ * `tier_feature` / `group_permission` / `grid_permission` / `condition`),
178
+ * evaluates its expressions, atomically applies its declared property
179
+ * mutations, and logs an {@link events | event}. Only `player`-scope functions
180
+ * are invocable here.
181
+ *
182
+ * Note: an authority denial or an expression-evaluation error is **not** a
183
+ * thrown exception — it comes back as a resolved result with `success: false`
184
+ * and an `errorMessage`. Inspect `result.success` rather than relying on
185
+ * `try/catch` for those cases.
186
+ *
187
+ * @param input - {@link InvokeFunctionInput}: `appId` (decimal string), the
188
+ * `functionName`, the `selfContainerId` (the container the function runs
189
+ * against, referenced as `self` in expressions), an optional `sessionId`
190
+ * context, and `paramsJson` (a JSON-object string of params).
191
+ * @returns A {@link GmInvokeResult}: `success`, the logged `eventId`, the
192
+ * JSON-encoded `returnValueJson`, the `mutationsApplied` (each with
193
+ * before/after JSON values), and `errorMessage` when `success` is `false`.
194
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
195
+ * `NOT_FOUND` for an unknown function/container, `FORBIDDEN` if the function
196
+ * isn't `player`-scope, or `BAD_USER_INPUT` for malformed params. (Authority
197
+ * and evaluation failures surface as `success: false`, see above.)
198
+ */
22
199
  invoke(input: GameModelInvokeMutationVariables['input']): Promise<GameModelInvokeMutation['gameModelInvoke']>;
200
+ /**
201
+ * **Containers** — fetch one container (instance) by id, with its full record
202
+ * (unfiltered metadata). For a player-facing view whose property values are
203
+ * filtered to what the caller may see, use {@link containerState} instead.
204
+ *
205
+ * @param variables - `{ appId, containerId }`: `appId` (decimal string) is the
206
+ * owning app and `containerId` is the container UUID to fetch.
207
+ * @returns The {@link GmContainer}.
208
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`, or
209
+ * `NOT_FOUND` if no such container.
210
+ */
23
211
  container(variables: GameModelContainerQueryVariables): Promise<GameModelContainerQuery['gameModelContainer']>;
212
+ /**
213
+ * **Containers** — list containers in an app, optionally narrowed by container
214
+ * type and/or session.
215
+ *
216
+ * @param variables - `{ appId, typeName?, sessionId? }`: `appId` (decimal
217
+ * string); optional `typeName` (omit for all types); optional `sessionId`
218
+ * (omit for all containers, including app-global ones).
219
+ * @returns The matching {@link GmContainer}s.
220
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`.
221
+ */
24
222
  containers(variables: GameModelContainersQueryVariables): Promise<GameModelContainersQuery['gameModelContainers']>;
223
+ /**
224
+ * **Containers** — fetch a container together with its property values
225
+ * filtered to what the **calling** user is allowed to see (`public` always;
226
+ * `owner`/`hidden` depend on the caller's relationship to the container). Use
227
+ * this for a player-facing view of an entity.
228
+ *
229
+ * @param variables - `{ appId, containerId }`: `appId` (decimal string) and
230
+ * the `containerId` UUID whose visible state to fetch.
231
+ * @returns A {@link GmContainerState}; its `propertiesJson` is a JSON-object
232
+ * string of the properties visible to the caller (`JSON.parse` it).
233
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`, or
234
+ * `NOT_FOUND` if no such container.
235
+ */
25
236
  containerState(variables: GameModelContainerStateQueryVariables): Promise<GameModelContainerStateQuery['gameModelContainerState']>;
237
+ /**
238
+ * **Edges** — traverse the container graph from a root container along a
239
+ * relationship type up to a given depth, returning the reachable nodes and the
240
+ * edges between them.
241
+ *
242
+ * @param variables - `{ appId, rootId, relationshipType, depth? }`: `appId`
243
+ * (decimal string); the `rootId` container UUID to start from; the
244
+ * `relationshipType` edge label to follow; and optional `depth`, the number
245
+ * of edge hops to follow from the root (defaults to `1`).
246
+ * @returns A {@link GmTraverseResult}: the `rootId`, the reachable `nodes`
247
+ * ({@link GmContainer}[]), and the traversed `edges` ({@link GmEdge}[]).
248
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`, or
249
+ * `NOT_FOUND` if the root container is unknown.
250
+ */
26
251
  traverse(variables: GameModelTraverseQueryVariables): Promise<GameModelTraverseQuery['gameModelTraverse']>;
252
+ /**
253
+ * **Sessions** — fetch one session by id.
254
+ *
255
+ * @param variables - `{ appId, sessionId }`: `appId` (decimal string) and the
256
+ * `sessionId` to fetch.
257
+ * @returns The {@link GmSession}.
258
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`, or
259
+ * `NOT_FOUND` if no such session.
260
+ */
27
261
  session(variables: GameModelSessionQueryVariables): Promise<GameModelSessionQuery['gameModelSession']>;
262
+ /**
263
+ * **Sessions** — list sessions in an app, optionally filtered by status.
264
+ *
265
+ * @param variables - `{ appId, status? }`: `appId` (decimal string) and an
266
+ * optional `status` filter (e.g. `'active'`; omit for all statuses).
267
+ * @returns The matching {@link GmSession}s.
268
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`.
269
+ */
28
270
  sessions(variables: GameModelSessionsQueryVariables): Promise<GameModelSessionsQuery['gameModelSessions']>;
271
+ /**
272
+ * **Events** — query the function-invocation event log (audit trail) with
273
+ * optional filters and pagination. Useful for debugging functions or showing
274
+ * recent activity.
275
+ *
276
+ * @param variables - `{ appId, sessionId?, selfContainerId?, functionName?,
277
+ * success?, limit?, offset? }`: `appId` (decimal string); optional
278
+ * `sessionId`; optional `selfContainerId` (the UUID the function ran
279
+ * against); optional `functionName`; optional `success` (`true` = succeeded,
280
+ * `false` = failed). `limit` (page size) and `offset` (rows to skip) are
281
+ * **deprecated** — see below.
282
+ * @returns The matching {@link GmEvent}s (each with `paramsJson`,
283
+ * `mutationsAppliedJson`, `returnValueJson`, `success`, `errorMessage`, and
284
+ * `executedAt`).
285
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`.
286
+ * @remarks The `limit`/`offset` fields use deprecated offset pagination. For
287
+ * large logs prefer the Relay-style `gameModelEventsConnection(first:, after:)`
288
+ * cursor query (available on the schema via `client.graphql`). See
289
+ * https://docs.crowdedkingdoms.com/overview/pagination.
290
+ */
29
291
  events(variables: GameModelEventsQueryVariables): Promise<GameModelEventsQuery['gameModelEvents']>;
292
+ /**
293
+ * **Seed** — bulk-create game-model definitions (container types, property
294
+ * defs, functions) and optionally instances (containers + edges) in one
295
+ * transaction; used to initialize or import a model.
296
+ *
297
+ * Requires the app-admin **`manage_apps`** permission.
298
+ *
299
+ * @param input - {@link SeedGameModelInput}: `appId` (decimal string); an
300
+ * optional `sessionId` to seed instances into (omit/`null` = app-global);
301
+ * and arrays of `containerTypes`, `propertyDefinitions`, `functions`,
302
+ * `containers`, and `edges` to create. Seed containers carry a developer
303
+ * `tempId`; seed edges reference containers by those temp ids
304
+ * (`fromTempId`/`toTempId`).
305
+ * @returns A {@link GmSeedResult}: the counts created, non-fatal `warnings`,
306
+ * and `idMapJson` — a JSON-object string mapping each seed `tempId` to the
307
+ * created container UUID (`JSON.parse` it to wire up follow-up calls).
308
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
309
+ * `FORBIDDEN` (with `extensions.requiredPermission === 'manage_apps'`) if the
310
+ * caller lacks app-admin, or `BAD_USER_INPUT` for malformed definitions.
311
+ */
30
312
  seed(input: GameModelSeedMutationVariables['input']): Promise<GameModelSeedMutation['gameModelSeed']>;
313
+ /**
314
+ * **Container types** — create or update a container type: the studio-defined
315
+ * schema for a kind of runtime entity (like a class). Idempotent on
316
+ * `(appId, typeName)`.
317
+ *
318
+ * Requires the app-admin **`manage_apps`** permission.
319
+ *
320
+ * @param input - {@link UpsertContainerTypeInput}: `appId` (decimal string);
321
+ * the `typeName` (the stable upsert key, unique per app); a `displayName`;
322
+ * optional `description`; optional `instantiableBy` (`admin | member |
323
+ * owner`); optional `defaultPropertyVisibility` (`public | owner | hidden`);
324
+ * and optional `metadataJson` (JSON-object string).
325
+ * @returns The upserted {@link GmContainerType}.
326
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
327
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), or `BAD_USER_INPUT`.
328
+ */
31
329
  upsertContainerType(input: GameModelUpsertContainerTypeMutationVariables['input']): Promise<GameModelUpsertContainerTypeMutation['gameModelUpsertContainerType']>;
330
+ /**
331
+ * **Property definitions** — create or update a typed property on a container
332
+ * type (a field with a default value, read visibility, and writability).
333
+ * Idempotent on `(appId, containerTypeName, key)`.
334
+ *
335
+ * Requires the app-admin **`manage_apps`** permission.
336
+ *
337
+ * @param input - {@link UpsertPropertyDefInput}: `appId` (decimal string); the
338
+ * `containerTypeName` to define on; the property `key` (part of the upsert
339
+ * key); a `valueType` (`int | float | string | bool | array | object |
340
+ * container_ref`); optional `defaultValueJson` (JSON-encoded default);
341
+ * optional `visibility` (`public | owner | hidden`); optional `writable`
342
+ * (`function | owner | admin`); and optional `description`.
343
+ * @returns The upserted {@link GmPropertyDef}.
344
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
345
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), `NOT_FOUND` for an
346
+ * unknown container type, or `BAD_USER_INPUT`.
347
+ */
32
348
  upsertPropertyDef(input: GameModelUpsertPropertyDefMutationVariables['input']): Promise<GameModelUpsertPropertyDefMutation['gameModelUpsertPropertyDef']>;
349
+ /**
350
+ * **Functions** — create or update a studio-defined function: a named,
351
+ * sandboxed behaviour with typed parameters, declared property mutations
352
+ * (expressions compiled to an AST server-side — never `eval`'d), an optional
353
+ * return expression, an invoke scope, and an invoke policy (authority rule
354
+ * tree). Idempotent on `(appId, name)`. Players run these via {@link invoke}.
355
+ *
356
+ * Requires the app-admin **`manage_apps`** permission.
357
+ *
358
+ * @param input - {@link UpsertFunctionInput}: `appId` (decimal string); the
359
+ * `name` (upsert key, used to invoke it); optional `containerTypeName` to
360
+ * bind to (omit for a global function); optional `description`; optional
361
+ * `returnType`; `parameters` (typed `{ name, valueType, required?,
362
+ * defaultValueJson?, … }`); `mutations` (declared writes `{ target, property,
363
+ * expression }`, applied atomically); optional `returnExpression`;
364
+ * `invokeScope` (`player | server | internal`); and `invokePolicyJson` (a
365
+ * JSON-encoded authority rule tree).
366
+ * @returns The upserted {@link GmFunction}, including any non-fatal
367
+ * static-analysis `warnings` from this upload.
368
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
369
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), or `BAD_USER_INPUT`
370
+ * for an expression/policy that fails to compile.
371
+ */
33
372
  upsertFunction(input: GameModelUpsertFunctionMutationVariables['input']): Promise<GameModelUpsertFunctionMutation['gameModelUpsertFunction']>;
373
+ /**
374
+ * **Functions** — delete a studio-defined function by name. **Destructive.**
375
+ *
376
+ * Requires the app-admin **`manage_apps`** permission.
377
+ *
378
+ * @param variables - `{ appId, name }`: `appId` (decimal string) and the
379
+ * function `name` to delete.
380
+ * @returns `true` if a function was deleted, `false` if none matched.
381
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`, or
382
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`) if the caller lacks
383
+ * app-admin.
384
+ */
34
385
  deleteFunction(variables: GameModelDeleteFunctionMutationVariables): Promise<GameModelDeleteFunctionMutation['gameModelDeleteFunction']>;
386
+ /**
387
+ * **App features** — define an app feature key that functions can gate on (via
388
+ * a `tier_feature` authority rule) and that access tiers can be granted.
389
+ * Idempotent on `(appId, featureKey)`.
390
+ *
391
+ * Requires the app-admin **`manage_apps`** permission.
392
+ *
393
+ * @param input - {@link DefineAppFeatureInput}: `appId` (decimal string); the
394
+ * `featureKey` (referenced by `tier_feature` rules); and an optional
395
+ * `description`.
396
+ * @returns The defined {@link GmAppFeature}.
397
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
398
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), or `BAD_USER_INPUT`.
399
+ */
35
400
  defineFeature(input: GameModelDefineFeatureMutationVariables['input']): Promise<GameModelDefineFeatureMutation['gameModelDefineFeature']>;
401
+ /**
402
+ * **App features** — grant a feature key to an access tier, so users on that
403
+ * tier satisfy `tier_feature` authority checks for it.
404
+ *
405
+ * Requires the app-admin **`manage_apps`** permission.
406
+ *
407
+ * @param input - {@link GrantTierFeatureInput}: `appId` (decimal string); the
408
+ * `tierId` (decimal string) of the access tier; and the `featureKey` to
409
+ * grant to that tier.
410
+ * @returns The {@link GmTierFeature} grant record.
411
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
412
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), or `NOT_FOUND` for an
413
+ * unknown tier/feature.
414
+ */
36
415
  grantTierFeature(input: GameModelGrantTierFeatureMutationVariables['input']): Promise<GameModelGrantTierFeatureMutation['gameModelGrantTierFeature']>;
416
+ /**
417
+ * **Policy** — set the app's game-model runtime policy: who may create
418
+ * sessions and the default role assigned to new session participants.
419
+ *
420
+ * Requires the app-admin **`manage_apps`** permission.
421
+ *
422
+ * @param input - {@link SetGameModelPolicyInput}: `appId` (decimal string); an
423
+ * optional `sessionCreationPolicy` (`admin | member | anyone`); and an
424
+ * optional `defaultParticipantRole`.
425
+ * @returns The updated {@link GmAppPolicy}.
426
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
427
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), or `BAD_USER_INPUT`.
428
+ */
37
429
  setPolicy(input: GameModelSetPolicyMutationVariables['input']): Promise<GameModelSetPolicyMutation['gameModelSetPolicy']>;
430
+ /**
431
+ * **Container types** — fetch a container type's full schema: its property
432
+ * definitions plus the functions available on it. A studio/authoring read.
433
+ *
434
+ * Requires the app-admin **`manage_apps`** permission.
435
+ *
436
+ * @param variables - `{ appId, typeName }`: `appId` (decimal string) and the
437
+ * `typeName` whose schema to fetch.
438
+ * @returns A {@link GmTypeSchema}: the `typeName`, its `propertyDefinitions`
439
+ * ({@link GmPropertyDef}[]), and its `functions` ({@link GmFunction}[]).
440
+ * @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `SCOPE_MISSING`,
441
+ * `FORBIDDEN` (`requiredPermission === 'manage_apps'`), or `NOT_FOUND` for an
442
+ * unknown type.
443
+ */
38
444
  typeSchema(variables: GameModelTypeSchemaQueryVariables): Promise<GameModelTypeSchemaQuery['gameModelTypeSchema']>;
39
445
  }
40
446
  //# sourceMappingURL=gameModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gameModel.d.ts","sourceRoot":"","sources":["../../src/domains/gameModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gameModel.d.ts","sourceRoot":"","sources":["../../src/domains/gameModel.ts"],"names":[],"mappings":"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"}