@crowdedkingdoms/crowdyjs 1.0.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 (124) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION.md +247 -0
  3. package/README.md +303 -0
  4. package/dist/auth-state.d.ts +11 -0
  5. package/dist/auth-state.d.ts.map +1 -0
  6. package/dist/auth-state.js +13 -0
  7. package/dist/client.d.ts +135 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +150 -0
  10. package/dist/crowdy-client.d.ts +182 -0
  11. package/dist/crowdy-client.d.ts.map +1 -0
  12. package/dist/crowdy-client.js +146 -0
  13. package/dist/domains/actors.d.ts +117 -0
  14. package/dist/domains/actors.d.ts.map +1 -0
  15. package/dist/domains/actors.js +140 -0
  16. package/dist/domains/admin.d.ts +61 -0
  17. package/dist/domains/admin.d.ts.map +1 -0
  18. package/dist/domains/admin.js +33 -0
  19. package/dist/domains/appAccess.d.ts +141 -0
  20. package/dist/domains/appAccess.d.ts.map +1 -0
  21. package/dist/domains/appAccess.js +198 -0
  22. package/dist/domains/apps.d.ts +192 -0
  23. package/dist/domains/apps.d.ts.map +1 -0
  24. package/dist/domains/apps.js +217 -0
  25. package/dist/domains/auth.d.ts +163 -0
  26. package/dist/domains/auth.d.ts.map +1 -0
  27. package/dist/domains/auth.js +208 -0
  28. package/dist/domains/avatars.d.ts +94 -0
  29. package/dist/domains/avatars.d.ts.map +1 -0
  30. package/dist/domains/avatars.js +137 -0
  31. package/dist/domains/billing.d.ts +97 -0
  32. package/dist/domains/billing.d.ts.map +1 -0
  33. package/dist/domains/billing.js +131 -0
  34. package/dist/domains/channels.d.ts +293 -0
  35. package/dist/domains/channels.d.ts.map +1 -0
  36. package/dist/domains/channels.js +353 -0
  37. package/dist/domains/chunks.d.ts +133 -0
  38. package/dist/domains/chunks.d.ts.map +1 -0
  39. package/dist/domains/chunks.js +153 -0
  40. package/dist/domains/controlPlane.d.ts +174 -0
  41. package/dist/domains/controlPlane.d.ts.map +1 -0
  42. package/dist/domains/controlPlane.js +252 -0
  43. package/dist/domains/environments.d.ts +155 -0
  44. package/dist/domains/environments.d.ts.map +1 -0
  45. package/dist/domains/environments.js +223 -0
  46. package/dist/domains/gameApps.d.ts +114 -0
  47. package/dist/domains/gameApps.d.ts.map +1 -0
  48. package/dist/domains/gameApps.js +169 -0
  49. package/dist/domains/gameModel.d.ts +668 -0
  50. package/dist/domains/gameModel.d.ts.map +1 -0
  51. package/dist/domains/gameModel.js +816 -0
  52. package/dist/domains/host.d.ts +35 -0
  53. package/dist/domains/host.d.ts.map +1 -0
  54. package/dist/domains/host.js +40 -0
  55. package/dist/domains/organizations.d.ts +179 -0
  56. package/dist/domains/organizations.d.ts.map +1 -0
  57. package/dist/domains/organizations.js +269 -0
  58. package/dist/domains/payments.d.ts +104 -0
  59. package/dist/domains/payments.d.ts.map +1 -0
  60. package/dist/domains/payments.js +129 -0
  61. package/dist/domains/platform.d.ts +49 -0
  62. package/dist/domains/platform.d.ts.map +1 -0
  63. package/dist/domains/platform.js +50 -0
  64. package/dist/domains/quotas.d.ts +62 -0
  65. package/dist/domains/quotas.d.ts.map +1 -0
  66. package/dist/domains/quotas.js +79 -0
  67. package/dist/domains/serverStatus.d.ts +90 -0
  68. package/dist/domains/serverStatus.d.ts.map +1 -0
  69. package/dist/domains/serverStatus.js +104 -0
  70. package/dist/domains/sharedEnvironment.d.ts +133 -0
  71. package/dist/domains/sharedEnvironment.d.ts.map +1 -0
  72. package/dist/domains/sharedEnvironment.js +179 -0
  73. package/dist/domains/state.d.ts +64 -0
  74. package/dist/domains/state.d.ts.map +1 -0
  75. package/dist/domains/state.js +75 -0
  76. package/dist/domains/teams.d.ts +292 -0
  77. package/dist/domains/teams.d.ts.map +1 -0
  78. package/dist/domains/teams.js +352 -0
  79. package/dist/domains/teleport.d.ts +41 -0
  80. package/dist/domains/teleport.d.ts.map +1 -0
  81. package/dist/domains/teleport.js +43 -0
  82. package/dist/domains/udp.d.ts +405 -0
  83. package/dist/domains/udp.d.ts.map +1 -0
  84. package/dist/domains/udp.js +457 -0
  85. package/dist/domains/usage.d.ts +76 -0
  86. package/dist/domains/usage.d.ts.map +1 -0
  87. package/dist/domains/usage.js +110 -0
  88. package/dist/domains/users.d.ts +147 -0
  89. package/dist/domains/users.d.ts.map +1 -0
  90. package/dist/domains/users.js +195 -0
  91. package/dist/domains/voxels.d.ts +136 -0
  92. package/dist/domains/voxels.d.ts.map +1 -0
  93. package/dist/domains/voxels.js +153 -0
  94. package/dist/errors.d.ts +158 -0
  95. package/dist/errors.d.ts.map +1 -0
  96. package/dist/errors.js +142 -0
  97. package/dist/generated/graphql.d.ts +12206 -0
  98. package/dist/generated/graphql.d.ts.map +1 -0
  99. package/dist/generated/graphql.js +474 -0
  100. package/dist/index.d.ts +84 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +85 -0
  103. package/dist/logger.d.ts +8 -0
  104. package/dist/logger.d.ts.map +1 -0
  105. package/dist/logger.js +1 -0
  106. package/dist/realtime.d.ts +319 -0
  107. package/dist/realtime.d.ts.map +1 -0
  108. package/dist/realtime.js +390 -0
  109. package/dist/session.d.ts +73 -0
  110. package/dist/session.d.ts.map +1 -0
  111. package/dist/session.js +96 -0
  112. package/dist/subscriptions.d.ts +2 -0
  113. package/dist/subscriptions.d.ts.map +1 -0
  114. package/dist/subscriptions.js +1 -0
  115. package/dist/types.d.ts +658 -0
  116. package/dist/types.d.ts.map +1 -0
  117. package/dist/types.js +61 -0
  118. package/dist/utils.d.ts +98 -0
  119. package/dist/utils.d.ts.map +1 -0
  120. package/dist/utils.js +136 -0
  121. package/dist/world.d.ts +236 -0
  122. package/dist/world.d.ts.map +1 -0
  123. package/dist/world.js +275 -0
  124. package/package.json +73 -0
@@ -0,0 +1,658 @@
1
+ /**
2
+ * Type definitions for Crowded Kingdoms SDK
3
+ */
4
+ /**
5
+ * A GraphQL `BigInt` scalar as carried by the SDK: the **decimal-string**
6
+ * representation of a 64-bit integer (e.g. `"1"`, `"9223372036854775807"`).
7
+ * Ids and coordinates that can exceed JavaScript's safe-integer range use this
8
+ * so they are never lossy; parse with the native `BigInt()` when you need to do
9
+ * arithmetic.
10
+ */
11
+ export type BigInt = string;
12
+ /**
13
+ * Address of a chunk in the world grid as returned by the API. A chunk is a
14
+ * 16×16×16 voxel cube; each axis is a signed int64 carried as a {@link BigInt}
15
+ * decimal string.
16
+ */
17
+ export interface ChunkCoordinates {
18
+ /** Chunk X coordinate (signed int64 as a decimal string). */
19
+ x: BigInt;
20
+ /** Chunk Y coordinate (signed int64 as a decimal string). */
21
+ y: BigInt;
22
+ /** Chunk Z coordinate (signed int64 as a decimal string). */
23
+ z: BigInt;
24
+ }
25
+ /**
26
+ * Chunk address supplied as input, with each axis as a plain JavaScript
27
+ * `number`. Values must fall within signed int64 range — use
28
+ * {@link validateChunkCoordinates} to check before sending.
29
+ */
30
+ export interface ChunkCoordinatesInput {
31
+ /** Chunk X coordinate. */
32
+ x: number;
33
+ /** Chunk Y coordinate. */
34
+ y: number;
35
+ /** Chunk Z coordinate. */
36
+ z: number;
37
+ }
38
+ /**
39
+ * Position of a single voxel **within** its chunk (a 16×16×16 cube). Each axis
40
+ * is a plain `number`; on the wire voxel coordinates are int16 (−32768…32767).
41
+ */
42
+ export interface VoxelCoordinates {
43
+ /** Voxel X coordinate within the chunk. */
44
+ x: number;
45
+ /** Voxel Y coordinate within the chunk. */
46
+ y: number;
47
+ /** Voxel Z coordinate within the chunk. */
48
+ z: number;
49
+ }
50
+ /**
51
+ * Voxel position supplied as input on a voxel update. Each axis must be in the
52
+ * int16 range (−32768…32767).
53
+ */
54
+ export interface VoxelCoordinatesInput {
55
+ /** Voxel X coordinate within the chunk (int16). */
56
+ x: number;
57
+ /** Voxel Y coordinate within the chunk (int16). */
58
+ y: number;
59
+ /** Voxel Z coordinate within the chunk (int16). */
60
+ z: number;
61
+ }
62
+ /**
63
+ * Reason codes returned by the UDP game servers and surfaced on
64
+ * {@link GenericErrorResponse}'s `errorCode` (re-exported from the codegen enum
65
+ * so the SDK has exactly one canonical shape). `NoError` means success; every
66
+ * other value is a failure. The numeric value is the byte sent on the wire;
67
+ * the SDK exposes the name. Note that a failed message does **not** always
68
+ * produce an error — some auth failures are dropped silently.
69
+ *
70
+ * Each member and the server condition it represents:
71
+ * - `NoError` — no error (the byte `0`); the message was accepted.
72
+ * - `UnknownError` — unspecified server error (the byte `1`); retry, and report
73
+ * it if it persists.
74
+ * - `AppNotFound` — no app matches the supplied appId.
75
+ * - `AppNotLoaded` — the app exists but isn't currently loaded/active on this
76
+ * server.
77
+ * - `InvalidAppId` — the appId was missing, zero, or otherwise not valid.
78
+ * - `ChunkNotFound` — no chunk exists at the referenced coordinates.
79
+ * - `InvalidRequest` — the message was malformed or failed validation; check the
80
+ * byte layout.
81
+ * - `InvalidStateData` — the state/payload bytes were invalid for this message
82
+ * type.
83
+ * - `NameTooLong` — a supplied name exceeded the maximum length.
84
+ * - `UserNotAuthenticated` — this client has no authenticated session on the
85
+ * server; complete the UDP token handshake (or open the UDP proxy) before
86
+ * sending spatial messages.
87
+ * - `Unauthorized` — the caller lacks the runtime/grid permission for this
88
+ * action. Grid permissions can load asynchronously, so the first message into
89
+ * a newly entered region may transiently return this — retry shortly.
90
+ * - `UserNotAppAdmin` — the action requires app-admin privileges (the
91
+ * `manage_apps` permission).
92
+ * - `InvalidToken` — the game token was rejected (expired, malformed, or
93
+ * revoked); re-authenticate against the Management API for a fresh token.
94
+ * - `InvalidTokenLength` — the supplied token was not a valid length.
95
+ * - `GameTokenWrongSize` — the game token isn't the expected length; send the
96
+ * exact token returned by login (don't trim or re-encode it).
97
+ * - `GridAlreadyExists` — a grid already exists at these coordinates.
98
+ * - `GridOverlapsExisting` — the requested grid overlaps an existing grid.
99
+ * - `GridOutsideAssignment` — the target coordinates fall outside any grid
100
+ * assigned to the caller.
101
+ * - `InvalidGridCoordinates` — the grid coordinates were invalid.
102
+ * - `NoMatchingGridAssignment` — no grid assignment covers the referenced
103
+ * coordinates.
104
+ * - `BadPassword` — the password did not match (login validation).
105
+ * - `EmailNotFound` — no account matches the supplied email (login validation).
106
+ * - `EmailAlreadyExists` — registration failed because the email is already in
107
+ * use.
108
+ * - `EmailInvalid` — email failed format validation.
109
+ * - `EmailTooLong` / `EmailTooShort` — email failed maximum-/minimum-length
110
+ * validation.
111
+ * - `PasswordTooLong` / `PasswordTooShort` — password failed maximum-/minimum-
112
+ * length validation.
113
+ * - `GamertagAlreadyExists` — the requested gamertag is already taken.
114
+ */
115
+ export { UdpErrorCode } from './generated/graphql.js';
116
+ import type { UdpErrorCode } from './generated/graphql.js';
117
+ /**
118
+ * A Crowded Kingdoms user/account record. Returned by the auth/profile reads
119
+ * (e.g. `client.users.me`). Several fields are optional because the server
120
+ * omits them when they are unset or the caller isn't authorized to see them.
121
+ */
122
+ export interface User {
123
+ /** Unique user id and primary key ({@link BigInt} decimal string). */
124
+ userId: BigInt;
125
+ /** Account email; omitted for anonymized/soft-deleted accounts. */
126
+ email?: string;
127
+ /**
128
+ * Public display name; omitted when unset or anonymized. Unique in
129
+ * combination with {@link disambiguation}.
130
+ */
131
+ gamertag?: string;
132
+ /**
133
+ * Discriminator paired with {@link gamertag} to form a unique handle;
134
+ * omitted when unset.
135
+ */
136
+ disambiguation?: string;
137
+ /** User-level state blob, base64-encoded binary; omitted when cleared. */
138
+ state?: string;
139
+ /** Whether the account email has been confirmed. */
140
+ isConfirmed: boolean;
141
+ /** Account creation timestamp (ISO-8601 string). */
142
+ createdAt: string;
143
+ /**
144
+ * Whether the user qualifies for early access through normal eligibility
145
+ * (the free-play window/rollout).
146
+ */
147
+ grantEarlyAccess: boolean;
148
+ /**
149
+ * Admin override that forces early access on/off regardless of normal
150
+ * eligibility.
151
+ */
152
+ grantEarlyAccessOverride: boolean;
153
+ /**
154
+ * Organization the user belongs to ({@link BigInt} decimal string); omitted
155
+ * when the user isn't in an org.
156
+ */
157
+ orgId?: BigInt;
158
+ /** External identity-provider id for federated accounts; omitted otherwise. */
159
+ externalId?: string;
160
+ /** Account type, e.g. `"direct"` or `"deleted"`. */
161
+ userType: string;
162
+ }
163
+ /**
164
+ * Result of a successful login/registration. Carries the session token to send
165
+ * on subsequent requests plus the authenticated {@link User}.
166
+ */
167
+ export interface AuthResponse {
168
+ /**
169
+ * Opaque session token. Send it on subsequent requests as the
170
+ * `Authorization: Bearer <token>` header (the SDK does this for you once it's
171
+ * stored).
172
+ */
173
+ token: string;
174
+ /** Identifier of the underlying session (game_token) row. */
175
+ gameTokenId: string;
176
+ /** The authenticated user. */
177
+ user: User;
178
+ }
179
+ /**
180
+ * Status of the per-session UDP proxy connection between the game-api and a UDP
181
+ * game server. Returned by `udpProxyConnectionStatus` / `connectUdpProxy`.
182
+ */
183
+ export interface UdpProxyConnectionStatus {
184
+ /** Whether the user is currently connected to a UDP game server via the proxy. */
185
+ connected: boolean;
186
+ /** IPv6 address of the UDP game server; present only when {@link connected}. */
187
+ serverIp6?: string;
188
+ /**
189
+ * Client port of the UDP game server (what native clients connect to
190
+ * directly); present only when {@link connected}.
191
+ */
192
+ serverClientPort?: number;
193
+ /**
194
+ * Timestamp of the last message received from the UDP server (present only
195
+ * when {@link connected}); useful for detecting connection health.
196
+ */
197
+ lastMessageTime?: string;
198
+ }
199
+ /**
200
+ * Input for sending an actor (player/NPC) update to the UDP game server,
201
+ * replicated to nearby clients in the target chunk.
202
+ */
203
+ export interface ActorUpdateRequestInput {
204
+ /** Id of the app the actor belongs to. */
205
+ appId: number;
206
+ /** Chunk the actor is located in (a 16×16×16 voxel cube). */
207
+ chunk: ChunkCoordinatesInput;
208
+ /** The actor's 32-ASCII-character id (see {@link generateCrowdyUuid}). */
209
+ uuid: string;
210
+ /**
211
+ * Actor state data, base64-encoded. May be an empty string for
212
+ * registration-only updates that carry no state payload.
213
+ */
214
+ state: string;
215
+ /**
216
+ * Chunk replication distance, `0`–`8` (clamped). Higher reaches more
217
+ * surrounding chunks. Defaults server-side to `8` for actor updates.
218
+ */
219
+ distance?: number;
220
+ /**
221
+ * Decay algorithm controlling how replication weakens with distance:
222
+ * `0` none, `1` exponential, `2` linear 50%, `3` linear 25%, `4` linear 10%,
223
+ * `5` linear 5%. Defaults server-side to `1` (exponential) for actor updates.
224
+ */
225
+ decayRate?: number;
226
+ /**
227
+ * Client-assigned correlation id for this datagram: a uint8 (`0`–`255`) that
228
+ * wraps modulo 256. **Correlation only** — not an idempotency key. Echoed on
229
+ * the matching response and on any `GenericErrorResponse` for this send.
230
+ */
231
+ sequenceNumber?: number;
232
+ }
233
+ /**
234
+ * Input for setting/changing a single voxel and replicating the change to
235
+ * nearby clients.
236
+ */
237
+ export interface VoxelUpdateRequestInput {
238
+ /** Id of the app the voxel belongs to. */
239
+ appId: number;
240
+ /** Chunk containing the voxel (a 16×16×16 voxel cube). */
241
+ chunk: ChunkCoordinatesInput;
242
+ /** A 32-ASCII-character id for this voxel update. */
243
+ uuid: string;
244
+ /** The voxel's coordinates within the chunk (int16 per axis). */
245
+ voxel: VoxelCoordinatesInput;
246
+ /** The new voxel type id, which determines its appearance/properties. */
247
+ voxelType: number;
248
+ /** Voxel state data, base64-encoded. */
249
+ voxelState: string;
250
+ /** Chunk replication distance, `0`–`8` (clamped). Defaults to `8`. */
251
+ distance?: number;
252
+ /**
253
+ * Decay algorithm (`0` none, `1` exponential, `2`–`5` linear 50/25/10/5%).
254
+ * Defaults server-side to `0` (none) for voxel updates.
255
+ */
256
+ decayRate?: number;
257
+ /**
258
+ * Client-assigned correlation id (uint8 `0`–`255`, wraps modulo 256).
259
+ * **Correlation only** — not an idempotency key. Echoed on the matching
260
+ * response and on any `GenericErrorResponse` for this send.
261
+ */
262
+ sequenceNumber?: number;
263
+ }
264
+ /**
265
+ * Input for sending a voice/audio packet, broadcast to nearby players.
266
+ */
267
+ export interface ClientAudioPacketInput {
268
+ /** Id of the app the audio is sent from. */
269
+ appId: number;
270
+ /** Chunk the audio source is located in. */
271
+ chunk: ChunkCoordinatesInput;
272
+ /** The audio source's 32-ASCII-character id (typically the player's). */
273
+ uuid: string;
274
+ /** Compressed audio data, base64-encoded. */
275
+ audioData: string;
276
+ /** Chunk replication distance, `0`–`8` (clamped). Defaults to `1` for audio. */
277
+ distance?: number;
278
+ /**
279
+ * Decay algorithm (`0` none, `1` exponential, `2`–`5` linear 50/25/10/5%).
280
+ * Defaults server-side to `0` (none) for audio packets.
281
+ */
282
+ decayRate?: number;
283
+ /**
284
+ * Client-assigned correlation id (uint8 `0`–`255`, wraps modulo 256).
285
+ * **Correlation only** — not an idempotency key. Echoed on any
286
+ * `GenericErrorResponse` for this send.
287
+ */
288
+ sequenceNumber?: number;
289
+ }
290
+ /**
291
+ * Input for sending a text/chat message, broadcast to nearby players.
292
+ */
293
+ export interface ClientTextPacketInput {
294
+ /** Id of the app the message is sent from. */
295
+ appId: number;
296
+ /** Chunk the text source is located in. */
297
+ chunk: ChunkCoordinatesInput;
298
+ /** The text source's 32-ASCII-character id (typically the player's). */
299
+ uuid: string;
300
+ /** The text message content, UTF-8 encoded; displayed to nearby players. */
301
+ text: string;
302
+ /** Chunk replication distance, `0`–`8` (clamped). Defaults to `8` for text. */
303
+ distance?: number;
304
+ /**
305
+ * Decay algorithm (`0` none, `1` exponential, `2`–`5` linear 50/25/10/5%).
306
+ * Defaults server-side to `0` (none) for text packets.
307
+ */
308
+ decayRate?: number;
309
+ /**
310
+ * Client-assigned correlation id (uint8 `0`–`255`, wraps modulo 256).
311
+ * **Correlation only** — not an idempotency key. Echoed on any
312
+ * `GenericErrorResponse` for this send.
313
+ */
314
+ sequenceNumber?: number;
315
+ }
316
+ /**
317
+ * Input for sending a custom client event — a client/mod-defined gameplay
318
+ * signal replicated to nearby players. The `eventType` and `state` format are
319
+ * defined by your application.
320
+ */
321
+ export interface ClientEventNotificationInput {
322
+ /** Id of the app where the event occurs. */
323
+ appId: number;
324
+ /** Chunk the event is located in. */
325
+ chunk: ChunkCoordinatesInput;
326
+ /** A 32-ASCII-character id for the object controlling this event. */
327
+ uuid: string;
328
+ /**
329
+ * Client-defined event type id (uint16, `0`–`65535`) that determines how the
330
+ * event is processed.
331
+ */
332
+ eventType: number;
333
+ /** Event state data, base64-encoded; its format is defined by {@link eventType}. */
334
+ state: string;
335
+ /** Chunk replication distance, `0`–`8` (clamped). Defaults to `8` for events. */
336
+ distance?: number;
337
+ /**
338
+ * Decay algorithm (`0` none, `1` exponential, `2`–`5` linear 50/25/10/5%).
339
+ * Defaults server-side to `0` (none) for events.
340
+ */
341
+ decayRate?: number;
342
+ /**
343
+ * Client-assigned correlation id (uint8 `0`–`255`, wraps modulo 256).
344
+ * **Correlation only** — not an idempotency key. Echoed on any
345
+ * `GenericErrorResponse` for this send.
346
+ */
347
+ sequenceNumber?: number;
348
+ }
349
+ /**
350
+ * Fan-out notification that another actor's position/state changed within your
351
+ * area of interest. Delivered on the `udpNotifications` subscription.
352
+ */
353
+ export interface ActorUpdateNotification {
354
+ /** Discriminator for the {@link UdpNotification} union. */
355
+ __typename: 'ActorUpdateNotification';
356
+ /** Id of the app the actor is in ({@link BigInt} decimal string). */
357
+ appId: BigInt;
358
+ /** X coordinate of the actor's chunk ({@link BigInt} int64 decimal string). */
359
+ chunkX: BigInt;
360
+ /** Y coordinate of the actor's chunk ({@link BigInt} int64 decimal string). */
361
+ chunkY: BigInt;
362
+ /** Z coordinate of the actor's chunk ({@link BigInt} int64 decimal string). */
363
+ chunkZ: BigInt;
364
+ /** Chunk replication distance (`0`–`8`) from the original message. */
365
+ distance: number;
366
+ /** Decay algorithm (`0`–`5`) from the original message. */
367
+ decayRate: number;
368
+ /** The 32-ASCII-character id of the actor that was updated. */
369
+ uuid: string;
370
+ /**
371
+ * Actor state data, base64-encoded. Decode it (e.g. with
372
+ * {@link decodeBase64}) to read position, rotation, velocity, animation
373
+ * flags, etc.
374
+ */
375
+ state: string;
376
+ /** The sender's sequence number for this message (`0`–`255`). */
377
+ sequenceNumber: number;
378
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
379
+ epochMillis: BigInt;
380
+ }
381
+ /**
382
+ * Server acknowledgement echoing one of **your own** actor updates — the
383
+ * correlation target for `sendActorUpdateAndWait`. Has no `state` payload.
384
+ */
385
+ export interface ActorUpdateResponse {
386
+ /** Discriminator for the {@link UdpNotification} union. */
387
+ __typename: 'ActorUpdateResponse';
388
+ /** Id of the app where the update was processed ({@link BigInt} decimal string). */
389
+ appId: BigInt;
390
+ /** X coordinate of the actor's chunk ({@link BigInt} int64 decimal string). */
391
+ chunkX: BigInt;
392
+ /** Y coordinate of the actor's chunk ({@link BigInt} int64 decimal string). */
393
+ chunkY: BigInt;
394
+ /** Z coordinate of the actor's chunk ({@link BigInt} int64 decimal string). */
395
+ chunkZ: BigInt;
396
+ /** Chunk replication distance (`0`–`8`) from the original message. */
397
+ distance: number;
398
+ /** Decay algorithm (`0`–`5`) from the original message. */
399
+ decayRate: number;
400
+ /** The 32-ASCII-character id of the actor that was updated. */
401
+ uuid: string;
402
+ /**
403
+ * The `sequenceNumber` echoed from the originating `sendActorUpdate`
404
+ * (uint8 `0`–`255`, wrapping modulo 256). Use it to correlate this response
405
+ * with that send. Correlation only — not an idempotency key.
406
+ */
407
+ sequenceNumber: number;
408
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
409
+ epochMillis: BigInt;
410
+ }
411
+ /**
412
+ * Fan-out notification that a voxel changed within range (another client's
413
+ * voxel edit). Delivered on the `udpNotifications` subscription.
414
+ */
415
+ export interface VoxelUpdateNotification {
416
+ /** Discriminator for the {@link UdpNotification} union. */
417
+ __typename: 'VoxelUpdateNotification';
418
+ /** Id of the app the voxel is in ({@link BigInt} decimal string). */
419
+ appId: BigInt;
420
+ /** X coordinate of the voxel's chunk ({@link BigInt} int64 decimal string). */
421
+ chunkX: BigInt;
422
+ /** Y coordinate of the voxel's chunk ({@link BigInt} int64 decimal string). */
423
+ chunkY: BigInt;
424
+ /** Z coordinate of the voxel's chunk ({@link BigInt} int64 decimal string). */
425
+ chunkZ: BigInt;
426
+ /** Chunk replication distance (`0`–`8`) from the original message. */
427
+ distance: number;
428
+ /** Decay algorithm (`0`–`5`) from the original message. */
429
+ decayRate: number;
430
+ /** The 32-ASCII-character id for this voxel update. */
431
+ uuid: string;
432
+ /** X coordinate of the voxel within its chunk (int16). */
433
+ voxelX: number;
434
+ /** Y coordinate of the voxel within its chunk (int16). */
435
+ voxelY: number;
436
+ /** Z coordinate of the voxel within its chunk (int16). */
437
+ voxelZ: number;
438
+ /** The voxel type id that was set. */
439
+ voxelType: number;
440
+ /** Voxel state data, base64-encoded. */
441
+ voxelState: string;
442
+ /** The sender's sequence number for this message (`0`–`255`). */
443
+ sequenceNumber: number;
444
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
445
+ epochMillis: BigInt;
446
+ }
447
+ /**
448
+ * Server acknowledgement echoing one of **your own** voxel updates — the
449
+ * correlation target for `sendVoxelUpdateAndWait`. Has no voxel payload.
450
+ */
451
+ export interface VoxelUpdateResponse {
452
+ /** Discriminator for the {@link UdpNotification} union. */
453
+ __typename: 'VoxelUpdateResponse';
454
+ /** Id of the app where the update was processed ({@link BigInt} decimal string). */
455
+ appId: BigInt;
456
+ /** X coordinate of the voxel's chunk ({@link BigInt} int64 decimal string). */
457
+ chunkX: BigInt;
458
+ /** Y coordinate of the voxel's chunk ({@link BigInt} int64 decimal string). */
459
+ chunkY: BigInt;
460
+ /** Z coordinate of the voxel's chunk ({@link BigInt} int64 decimal string). */
461
+ chunkZ: BigInt;
462
+ /** Chunk replication distance (`0`–`8`) from the original message. */
463
+ distance: number;
464
+ /** Decay algorithm (`0`–`5`) from the original message. */
465
+ decayRate: number;
466
+ /** The 32-ASCII-character id for this voxel update. */
467
+ uuid: string;
468
+ /**
469
+ * The `sequenceNumber` echoed from the originating `sendVoxelUpdate`
470
+ * (uint8 `0`–`255`, wrapping modulo 256). Use it to correlate this response
471
+ * with that send. Correlation only — not an idempotency key.
472
+ */
473
+ sequenceNumber: number;
474
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
475
+ epochMillis: BigInt;
476
+ }
477
+ /**
478
+ * Fan-out notification carrying a nearby client's voice/audio packet.
479
+ * Delivered on the `udpNotifications` subscription.
480
+ */
481
+ export interface ClientAudioNotification {
482
+ /** Discriminator for the {@link UdpNotification} union. */
483
+ __typename: 'ClientAudioNotification';
484
+ /** Id of the app the audio is from ({@link BigInt} decimal string). */
485
+ appId: BigInt;
486
+ /** X coordinate of the audio source's chunk ({@link BigInt} int64 decimal string). */
487
+ chunkX: BigInt;
488
+ /** Y coordinate of the audio source's chunk ({@link BigInt} int64 decimal string). */
489
+ chunkY: BigInt;
490
+ /** Z coordinate of the audio source's chunk ({@link BigInt} int64 decimal string). */
491
+ chunkZ: BigInt;
492
+ /** Chunk replication distance (`0`–`8`) from the original message. */
493
+ distance: number;
494
+ /** Decay algorithm (`0`–`5`) from the original message. */
495
+ decayRate: number;
496
+ /** The 32-ASCII-character id of the audio source (typically the player). */
497
+ uuid: string;
498
+ /** Compressed audio data, base64-encoded (decode with {@link decodeBase64}). */
499
+ audioData: string;
500
+ /** The sender's sequence number for this message (`0`–`255`). */
501
+ sequenceNumber: number;
502
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
503
+ epochMillis: BigInt;
504
+ }
505
+ /**
506
+ * Fan-out notification carrying a nearby client's text/chat message.
507
+ * Delivered on the `udpNotifications` subscription.
508
+ */
509
+ export interface ClientTextNotification {
510
+ /** Discriminator for the {@link UdpNotification} union. */
511
+ __typename: 'ClientTextNotification';
512
+ /** Id of the app the message is from ({@link BigInt} decimal string). */
513
+ appId: BigInt;
514
+ /** X coordinate of the text source's chunk ({@link BigInt} int64 decimal string). */
515
+ chunkX: BigInt;
516
+ /** Y coordinate of the text source's chunk ({@link BigInt} int64 decimal string). */
517
+ chunkY: BigInt;
518
+ /** Z coordinate of the text source's chunk ({@link BigInt} int64 decimal string). */
519
+ chunkZ: BigInt;
520
+ /** Chunk replication distance (`0`–`8`) from the original message. */
521
+ distance: number;
522
+ /** Decay algorithm (`0`–`5`) from the original message. */
523
+ decayRate: number;
524
+ /** The 32-ASCII-character id of the text source (typically the player). */
525
+ uuid: string;
526
+ /** The text message content, UTF-8 encoded; display it to the user. */
527
+ text: string;
528
+ /** The sender's sequence number for this message (`0`–`255`). */
529
+ sequenceNumber: number;
530
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
531
+ epochMillis: BigInt;
532
+ }
533
+ /**
534
+ * Fan-out notification carrying a nearby client's custom event (a
535
+ * client/mod-defined gameplay signal). Delivered on the `udpNotifications`
536
+ * subscription.
537
+ */
538
+ export interface ClientEventNotification {
539
+ /** Discriminator for the {@link UdpNotification} union. */
540
+ __typename: 'ClientEventNotification';
541
+ /** Id of the app where the event occurs ({@link BigInt} decimal string). */
542
+ appId: BigInt;
543
+ /** X coordinate of the event's chunk ({@link BigInt} int64 decimal string). */
544
+ chunkX: BigInt;
545
+ /** Y coordinate of the event's chunk ({@link BigInt} int64 decimal string). */
546
+ chunkY: BigInt;
547
+ /** Z coordinate of the event's chunk ({@link BigInt} int64 decimal string). */
548
+ chunkZ: BigInt;
549
+ /** Chunk replication distance (`0`–`8`) from the original message. */
550
+ distance: number;
551
+ /** Decay algorithm (`0`–`5`) from the original message. */
552
+ decayRate: number;
553
+ /** The 32-ASCII-character id of the object controlling this event. */
554
+ uuid: string;
555
+ /** The client-defined event type id (uint16) that determines processing. */
556
+ eventType: number;
557
+ /** Event state data, base64-encoded; format is defined by {@link eventType}. */
558
+ state: string;
559
+ /** The sender's sequence number for this message (`0`–`255`). */
560
+ sequenceNumber: number;
561
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
562
+ epochMillis: BigInt;
563
+ }
564
+ /**
565
+ * Notification carrying a server-originated spatial event broadcast to a region
566
+ * (e.g. world or NPC events). Same shape as {@link ClientEventNotification} but
567
+ * emitted by the server. Delivered on the `udpNotifications` subscription.
568
+ */
569
+ export interface ServerEventNotification {
570
+ /** Discriminator for the {@link UdpNotification} union. */
571
+ __typename: 'ServerEventNotification';
572
+ /** Id of the app where the event occurs ({@link BigInt} decimal string). */
573
+ appId: BigInt;
574
+ /** X coordinate of the event's chunk ({@link BigInt} int64 decimal string). */
575
+ chunkX: BigInt;
576
+ /** Y coordinate of the event's chunk ({@link BigInt} int64 decimal string). */
577
+ chunkY: BigInt;
578
+ /** Z coordinate of the event's chunk ({@link BigInt} int64 decimal string). */
579
+ chunkZ: BigInt;
580
+ /** Chunk replication distance (`0`–`8`) from the original message. */
581
+ distance: number;
582
+ /** Decay algorithm (`0`–`5`) from the original message. */
583
+ decayRate: number;
584
+ /** The 32-ASCII-character id of the object controlling this event. */
585
+ uuid: string;
586
+ /** The event type id (uint16) that determines processing. */
587
+ eventType: number;
588
+ /** Event state data, base64-encoded; format is defined by {@link eventType}. */
589
+ state: string;
590
+ /** The sender's sequence number for this message (`0`–`255`). */
591
+ sequenceNumber: number;
592
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
593
+ epochMillis: BigInt;
594
+ }
595
+ /**
596
+ * Asynchronous error for a previously sent datagram (e.g. a `send*` request).
597
+ * Delivered as a member of the {@link UdpNotification} union on the
598
+ * subscription — **not** as a GraphQL error on the mutation. Match it to the
599
+ * originating send via {@link sequenceNumber} and read {@link errorCode} for
600
+ * the reason. Note: not every failure produces one — some auth failures are
601
+ * dropped silently (see {@link UdpErrorCode}).
602
+ */
603
+ export interface GenericErrorResponse {
604
+ /** Discriminator for the {@link UdpNotification} union. */
605
+ __typename: 'GenericErrorResponse';
606
+ /**
607
+ * Echoes the `sequenceNumber` of the request that failed (uint8 `0`–`255`,
608
+ * wrapping modulo 256) so you can correlate this error with the `send*` that
609
+ * produced it. Correlation only — not an idempotency key.
610
+ */
611
+ sequenceNumber: number;
612
+ /** Code indicating the reason for the failure. See {@link UdpErrorCode}. */
613
+ errorCode: UdpErrorCode;
614
+ }
615
+ /**
616
+ * Discriminated union of every realtime payload a consumer can receive on the
617
+ * subscription. Narrow it by switching on the `__typename` field. (The realtime
618
+ * client uses the equivalent codegen-derived {@link SpatialNotification}
619
+ * /`UdpNotification` shapes; these hand-written interfaces mirror them.)
620
+ */
621
+ export type UdpNotification = ActorUpdateNotification | ActorUpdateResponse | VoxelUpdateNotification | VoxelUpdateResponse | ClientAudioNotification | ClientTextNotification | ClientEventNotification | ServerEventNotification | GenericErrorResponse;
622
+ /**
623
+ * Minimal endpoint/timeout configuration shape (HTTP + WebSocket endpoints and
624
+ * a request timeout). The full client options used by the package entry point
625
+ * live on `CrowdyClient`'s own config.
626
+ */
627
+ export interface CrowdyClientConfig {
628
+ /** GraphQL HTTP endpoint URL. */
629
+ graphqlEndpoint?: string;
630
+ /** GraphQL WebSocket endpoint URL for the subscription stream. */
631
+ wsEndpoint?: string;
632
+ /** Request timeout in milliseconds. */
633
+ timeout?: number;
634
+ }
635
+ /** Callback for an {@link ActorUpdateNotification} (another actor moved/changed). */
636
+ export type ActorUpdateHandler = (notification: ActorUpdateNotification) => void;
637
+ /** Callback for an {@link ActorUpdateResponse} (echo of your own actor update). */
638
+ export type ActorUpdateResponseHandler = (response: ActorUpdateResponse) => void;
639
+ /** Callback for a {@link VoxelUpdateNotification} (a nearby voxel changed). */
640
+ export type VoxelUpdateHandler = (notification: VoxelUpdateNotification) => void;
641
+ /** Callback for a {@link VoxelUpdateResponse} (echo of your own voxel update). */
642
+ export type VoxelUpdateResponseHandler = (response: VoxelUpdateResponse) => void;
643
+ /** Callback for a {@link ClientAudioNotification} (nearby voice/audio packet). */
644
+ export type ClientAudioHandler = (notification: ClientAudioNotification) => void;
645
+ /** Callback for a {@link ClientTextNotification} (nearby text/chat message). */
646
+ export type ClientTextHandler = (notification: ClientTextNotification) => void;
647
+ /** Callback for a {@link ClientEventNotification} (nearby custom client event). */
648
+ export type ClientEventHandler = (notification: ClientEventNotification) => void;
649
+ /** Callback for a {@link ServerEventNotification} (server-originated spatial event). */
650
+ export type ServerEventHandler = (notification: ServerEventNotification) => void;
651
+ /** Callback for a {@link GenericErrorResponse} (async error for a prior send). */
652
+ export type GenericErrorHandler = (response: GenericErrorResponse) => void;
653
+ /**
654
+ * Function returned by subscribe-style helpers; call it (no arguments) to
655
+ * remove the listener/subscription it represents.
656
+ */
657
+ export type UnsubscribeFn = () => void;
658
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}