@crowdedkingdoms/crowdyjs 18.9.0-test.1 → 18.10.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/MIGRATION.md CHANGED
@@ -120,6 +120,29 @@ super-admin's session). There is no SDK replacement.
120
120
  `dev`'s SDL after #417 merged (`npm run schema:sync:paths -- --schema <that schema.gql>`, then
121
121
  `npm run codegen`).
122
122
 
123
+ ## 18.10.0: bans, the access-ended close, and the block and ban codes
124
+
125
+ Additive. **Needs the Game API release after v2.43.1** for the ban operations (an older Game
126
+ API refuses `banChannelMember` and the other three). The access-ended close needs ck-exec 0.16
127
+ on the tier's hosts; against an older host nothing changes. Promote the Game API and ck-exec
128
+ first on each tier.
129
+
130
+ - **Bans.** `client.channels.ban(groupId, userId, reason?)` and `unban(groupId, userId)`, and
131
+ `client.teams.ban` / `unban` alike, take the `manage_members` permission on the group. A banned
132
+ player is removed, and joining, requesting to join or being added refuses with
133
+ `GROUP_MEMBER_BANNED` until a manager unbans them; leaving or being removed does not lift a
134
+ ban. Read the refusal with `groupMemberBannedOf(error)`.
135
+ - **A blocked account.** A platform administrator can block an account across every app and
136
+ Crowd Altar; every call it makes then refuses with `ACCOUNT_BLOCKED` (HTTP 403), and sign-in
137
+ refuses after the password check. `accountBlockedOf(error)` answers `{ blockedUntil }` for a
138
+ timed block (null for an indefinite one). Show the player the refusal; retrying will not help
139
+ until the block ends.
140
+ - **The access-ended close.** When a player's access to an app ends (suspended, revoked,
141
+ blocked, or an expired grant), ck-exec closes their sessions with `EXEC_CLOSE_ACCESS_ENDED`
142
+ (4403). `ExecConnection` treats it as final: it does not reconnect, pending calls fail
143
+ `Denied`, and `onAccessEnded(listener)` hears the reason the host gave. A token minted before
144
+ the cut is refused for 90 seconds even if the player regains access; mint a new one.
145
+
123
146
  ## 18.9.0: the input log says what it lost, and when to retry
124
147
 
125
148
  Additive. **Needs the Game API release after v2.40.2** (`InputLogSession.missingRecords` is
package/README.md CHANGED
@@ -34,6 +34,7 @@ so it needs that Game API or newer; promote the Game API before the SDK on each
34
34
 
35
35
  | CrowdyJS | Needs the Game API (ck-api) |
36
36
  | --- | --- |
37
+ | 18.10.0 | the release after v2.43.1 (channel and team bans); the access-ended close needs ck-exec 0.16 |
37
38
  | 18.9.0 | the release after v2.40.2 (`InputLogSession.missingRecords`) |
38
39
  | 18.8.0 | v2.40.2 or later (`ExecBuild.sdkVersion`) |
39
40
  | 18.7.0 | v2.40.0 or later (`runtimeGate`, channel audio) |
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * GENERATED — do not edit. The operator tooling's
3
- * `sync-client-origins.mjs --write --tier test` writes this file, and
3
+ * `sync-client-origins.mjs --write --tier dev` writes this file, and
4
4
  * `check-sdk-default-origin.mjs` refuses it when it names the wrong tier or a
5
5
  * host that declaration does not carry. Regenerate; never hand-edit.
6
6
  *
@@ -10,14 +10,14 @@
10
10
  * than no default at all. Every fallback this SDK ever removed named a host that
11
11
  * was already dead. A generated file plus a gate is what makes this one different.
12
12
  *
13
- * Source: the operator's per-tier public CK API origin declaration, tier 'test'
13
+ * Source: the operator's per-tier public CK API origin declaration, tier 'dev'
14
14
  */
15
15
  /** The tier this build of the SDK is published for. */
16
- export declare const CROWDY_DEFAULT_TIER = "test";
16
+ export declare const CROWDY_DEFAULT_TIER = "dev";
17
17
  /** The public CK API origin for that tier. */
18
- export declare const CROWDY_DEFAULT_HTTP_ORIGIN = "https://ck.test.crowdedkingdoms.com";
18
+ export declare const CROWDY_DEFAULT_HTTP_ORIGIN = "https://ck.dev.crowdedkingdoms.com";
19
19
  /** The same host over WebSocket. A scheme is composed; a hostname is looked up. */
20
- export declare const CROWDY_DEFAULT_WS_ORIGIN = "wss://ck.test.crowdedkingdoms.com";
20
+ export declare const CROWDY_DEFAULT_WS_ORIGIN = "wss://ck.dev.crowdedkingdoms.com";
21
21
  /** The bare hostname, for callers that need to compare rather than dial. */
22
- export declare const CROWDY_DEFAULT_HOST = "ck.test.crowdedkingdoms.com";
22
+ export declare const CROWDY_DEFAULT_HOST = "ck.dev.crowdedkingdoms.com";
23
23
  //# sourceMappingURL=default-origin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-origin.d.ts","sourceRoot":"","sources":["../src/default-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAEhF,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAE5E,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,gCAAgC,CAAC"}
1
+ {"version":3,"file":"default-origin.d.ts","sourceRoot":"","sources":["../src/default-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,uCAAuC,CAAC;AAE/E,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,qCAAqC,CAAC;AAE3E,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,+BAA+B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * GENERATED — do not edit. The operator tooling's
3
- * `sync-client-origins.mjs --write --tier test` writes this file, and
3
+ * `sync-client-origins.mjs --write --tier dev` writes this file, and
4
4
  * `check-sdk-default-origin.mjs` refuses it when it names the wrong tier or a
5
5
  * host that declaration does not carry. Regenerate; never hand-edit.
6
6
  *
@@ -10,13 +10,13 @@
10
10
  * than no default at all. Every fallback this SDK ever removed named a host that
11
11
  * was already dead. A generated file plus a gate is what makes this one different.
12
12
  *
13
- * Source: the operator's per-tier public CK API origin declaration, tier 'test'
13
+ * Source: the operator's per-tier public CK API origin declaration, tier 'dev'
14
14
  */
15
15
  /** The tier this build of the SDK is published for. */
16
- export const CROWDY_DEFAULT_TIER = 'test';
16
+ export const CROWDY_DEFAULT_TIER = 'dev';
17
17
  /** The public CK API origin for that tier. */
18
- export const CROWDY_DEFAULT_HTTP_ORIGIN = 'https://ck.test.crowdedkingdoms.com';
18
+ export const CROWDY_DEFAULT_HTTP_ORIGIN = 'https://ck.dev.crowdedkingdoms.com';
19
19
  /** The same host over WebSocket. A scheme is composed; a hostname is looked up. */
20
- export const CROWDY_DEFAULT_WS_ORIGIN = 'wss://ck.test.crowdedkingdoms.com';
20
+ export const CROWDY_DEFAULT_WS_ORIGIN = 'wss://ck.dev.crowdedkingdoms.com';
21
21
  /** The bare hostname, for callers that need to compare rather than dial. */
22
- export const CROWDY_DEFAULT_HOST = 'ck.test.crowdedkingdoms.com';
22
+ export const CROWDY_DEFAULT_HOST = 'ck.dev.crowdedkingdoms.com';
@@ -1,5 +1,5 @@
1
1
  import type { GraphQLClient } from '../client.js';
2
- import { type MyChannelsQuery, type MyChannelsQueryVariables, type ChannelsQuery, type ChannelsQueryVariables, type ChannelQuery, type ChannelQueryVariables, type ChannelMembersQuery, type ChannelMembersQueryVariables, type ChannelRolesQuery, type ChannelRolesQueryVariables, type ChannelPolicyQuery, type ChannelPolicyQueryVariables, type SetChannelPolicyMutation, type SetChannelPolicyMutationVariables, type CreateChannelMutation, type CreateChannelMutationVariables, type UpdateChannelMutation, type UpdateChannelMutationVariables, type DeleteChannelMutationVariables, type JoinChannelMutation, type JoinChannelMutationVariables, type RequestToJoinChannelMutation, type RequestToJoinChannelMutationVariables, type LeaveChannelMutationVariables, type AddChannelMemberMutation, type AddChannelMemberMutationVariables, type RemoveChannelMemberMutationVariables, type SetChannelMemberRolesMutation, type SetChannelMemberRolesMutationVariables, type CreateChannelRoleMutation, type CreateChannelRoleMutationVariables, type UpdateChannelRoleMutation, type UpdateChannelRoleMutationVariables, type DeleteChannelRoleMutationVariables } from '../generated/graphql.js';
2
+ import { type MyChannelsQuery, type MyChannelsQueryVariables, type ChannelsQuery, type ChannelsQueryVariables, type ChannelQuery, type ChannelQueryVariables, type ChannelMembersQuery, type ChannelMembersQueryVariables, type ChannelRolesQuery, type ChannelRolesQueryVariables, type ChannelPolicyQuery, type ChannelPolicyQueryVariables, type SetChannelPolicyMutation, type SetChannelPolicyMutationVariables, type CreateChannelMutation, type CreateChannelMutationVariables, type UpdateChannelMutation, type UpdateChannelMutationVariables, type DeleteChannelMutationVariables, type JoinChannelMutation, type JoinChannelMutationVariables, type RequestToJoinChannelMutation, type RequestToJoinChannelMutationVariables, type LeaveChannelMutationVariables, type AddChannelMemberMutation, type AddChannelMemberMutationVariables, type RemoveChannelMemberMutationVariables, type BanChannelMemberMutationVariables, type UnbanChannelMemberMutationVariables, type SetChannelMemberRolesMutation, type SetChannelMemberRolesMutationVariables, type CreateChannelRoleMutation, type CreateChannelRoleMutationVariables, type UpdateChannelRoleMutation, type UpdateChannelRoleMutationVariables, type DeleteChannelRoleMutationVariables } from '../generated/graphql.js';
3
3
  /**
4
4
  * Channels: app-scoped, location-independent pub/sub messaging groups on the
5
5
  * **game-api**. Exposed as `client.channels`.
@@ -232,6 +232,43 @@ export declare class ChannelsAPI {
232
232
  * another member without `manage_members`, or `UNAUTHENTICATED`.
233
233
  */
234
234
  removeMember(groupId: RemoveChannelMemberMutationVariables['groupId'], userId: RemoveChannelMemberMutationVariables['userId']): Promise<boolean>;
235
+ /**
236
+ * Ban a user from this channel: their membership (or a new one, for someone not yet in it)
237
+ * becomes `banned` and their roles go, and Buddy stops routing the channel to and from them.
238
+ * Joining, requesting to join and being added are then refused with
239
+ * `GROUP_MEMBER_BANNED` until {@link unban}; leaving or being removed does not lift it.
240
+ * Requires the `manage_members` channel permission (app admins bypass). Never the
241
+ * channel's owner, never yourself.
242
+ *
243
+ * @param groupId - The channel, as a decimal `BigInt` string.
244
+ * @param userId - The user to ban, as a decimal `BigInt` string.
245
+ * @param reason - Why, for the channel's managers (at most 500 characters); not shown to
246
+ * the banned user.
247
+ * @returns The banned membership (`status: 'banned'`).
248
+ * @throws {CrowdyGraphQLError} `FORBIDDEN` without `manage_members` (or for the owner),
249
+ * `BAD_REQUEST` for yourself or a reason over 500 characters.
250
+ */
251
+ ban(groupId: BanChannelMemberMutationVariables['groupId'], userId: BanChannelMemberMutationVariables['userId'], reason?: string): Promise<{
252
+ groupMemberId: string;
253
+ groupId: string;
254
+ userId: string;
255
+ status: string;
256
+ createdAt: string;
257
+ roles: Array<{
258
+ groupRoleId: string;
259
+ roleName: string;
260
+ rank: number;
261
+ isSystem: boolean;
262
+ permissions: Array<string>;
263
+ }>;
264
+ }>;
265
+ /**
266
+ * Lift a ban, so the user may join or be added again (nothing is restored). Requires the
267
+ * `manage_members` channel permission (app admins bypass).
268
+ *
269
+ * @returns `true` if there was a ban.
270
+ */
271
+ unban(groupId: UnbanChannelMemberMutationVariables['groupId'], userId: UnbanChannelMemberMutationVariables['userId']): Promise<boolean>;
235
272
  /**
236
273
  * Replace a member's channel roles with the given set. This is **not
237
274
  * additive** — roles not listed are removed. Requires the `manage_roles`
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/domains/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/domains/channels.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MyChannelsDocument, ChannelsDocument, ChannelDocument, ChannelMembersDocument, ChannelRolesDocument, ChannelPolicyDocument, SetChannelPolicyDocument, CreateChannelDocument, UpdateChannelDocument, DeleteChannelDocument, JoinChannelDocument, RequestToJoinChannelDocument, LeaveChannelDocument, AddChannelMemberDocument, RemoveChannelMemberDocument, SetChannelMemberRolesDocument, CreateChannelRoleDocument, UpdateChannelRoleDocument, DeleteChannelRoleDocument, } from '../generated/graphql.js';
1
+ import { MyChannelsDocument, ChannelsDocument, ChannelDocument, ChannelMembersDocument, ChannelRolesDocument, ChannelPolicyDocument, SetChannelPolicyDocument, CreateChannelDocument, UpdateChannelDocument, DeleteChannelDocument, JoinChannelDocument, RequestToJoinChannelDocument, LeaveChannelDocument, AddChannelMemberDocument, RemoveChannelMemberDocument, BanChannelMemberDocument, UnbanChannelMemberDocument, SetChannelMemberRolesDocument, CreateChannelRoleDocument, UpdateChannelRoleDocument, DeleteChannelRoleDocument, } from '../generated/graphql.js';
2
2
  /**
3
3
  * Channels: app-scoped, location-independent pub/sub messaging groups on the
4
4
  * **game-api**. Exposed as `client.channels`.
@@ -280,6 +280,40 @@ export class ChannelsAPI {
280
280
  const data = await this.gql.request(RemoveChannelMemberDocument, { groupId, userId });
281
281
  return data.removeChannelMember;
282
282
  }
283
+ /**
284
+ * Ban a user from this channel: their membership (or a new one, for someone not yet in it)
285
+ * becomes `banned` and their roles go, and Buddy stops routing the channel to and from them.
286
+ * Joining, requesting to join and being added are then refused with
287
+ * `GROUP_MEMBER_BANNED` until {@link unban}; leaving or being removed does not lift it.
288
+ * Requires the `manage_members` channel permission (app admins bypass). Never the
289
+ * channel's owner, never yourself.
290
+ *
291
+ * @param groupId - The channel, as a decimal `BigInt` string.
292
+ * @param userId - The user to ban, as a decimal `BigInt` string.
293
+ * @param reason - Why, for the channel's managers (at most 500 characters); not shown to
294
+ * the banned user.
295
+ * @returns The banned membership (`status: 'banned'`).
296
+ * @throws {CrowdyGraphQLError} `FORBIDDEN` without `manage_members` (or for the owner),
297
+ * `BAD_REQUEST` for yourself or a reason over 500 characters.
298
+ */
299
+ async ban(groupId, userId, reason) {
300
+ const data = await this.gql.request(BanChannelMemberDocument, {
301
+ groupId,
302
+ userId,
303
+ reason: reason ?? null,
304
+ });
305
+ return data.banChannelMember;
306
+ }
307
+ /**
308
+ * Lift a ban, so the user may join or be added again (nothing is restored). Requires the
309
+ * `manage_members` channel permission (app admins bypass).
310
+ *
311
+ * @returns `true` if there was a ban.
312
+ */
313
+ async unban(groupId, userId) {
314
+ const data = await this.gql.request(UnbanChannelMemberDocument, { groupId, userId });
315
+ return data.unbanChannelMember;
316
+ }
283
317
  /**
284
318
  * Replace a member's channel roles with the given set. This is **not
285
319
  * additive** — roles not listed are removed. Requires the `manage_roles`
@@ -134,6 +134,12 @@ export interface ExecConnectOptions {
134
134
  * the page.
135
135
  */
136
136
  export declare function execGatewayRefusal(gameApiUrl: string, gatewayUrl: string): string | null;
137
+ /**
138
+ * The close code a host ends a session with when the player's access ended: a suspension, a
139
+ * revoke, a logout or an account block (ck-exec 0.16). Final: the connection does not
140
+ * reconnect, and {@link ExecConnection.onAccessEnded} listeners hear the reason.
141
+ */
142
+ export declare const EXEC_CLOSE_ACCESS_ENDED = 4403;
137
143
  /**
138
144
  * One player's connection to a ck-exec host. Calls go to any node of the app;
139
145
  * the host routes them. Subscriptions survive reconnects.
@@ -150,6 +156,7 @@ export declare class ExecConnection {
150
156
  private closed;
151
157
  private backoffMs;
152
158
  private readonly reconnectListeners;
159
+ private readonly accessEndedListeners;
153
160
  private readonly WS;
154
161
  private readonly callTimeoutMs;
155
162
  /** @internal Use {@link ExecAPI.connect} or {@link ExecConnection.open}. */
@@ -164,6 +171,13 @@ export declare class ExecConnection {
164
171
  get host(): string;
165
172
  /** Called with the new host after every reconnect. */
166
173
  onReconnect(listener: (host: string) => void): () => void;
174
+ /**
175
+ * Called once, with the host's reason, when the host closes the connection because the
176
+ * player's access ended (close code {@link EXEC_CLOSE_ACCESS_ENDED}: suspended, revoked,
177
+ * signed out or blocked). The connection is closed for good then and does not reconnect;
178
+ * tell the player, and connect again only once they hold access again.
179
+ */
180
+ onAccessEnded(listener: (reason: string) => void): () => void;
167
181
  /** @internal */
168
182
  connect(): Promise<void>;
169
183
  private dialOnce;
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/domains/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/domains/exec.ts"],"names":[],"mappings":"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"}
@@ -255,12 +255,19 @@ export function execGatewayRefusal(gameApiUrl, gatewayUrl) {
255
255
  const estates = tier && tier.hostname !== api.hostname ? `${api.hostname} and ${tier.hostname}` : api.hostname;
256
256
  return `${gateway.hostname} is outside the estate of ${estates}`;
257
257
  }
258
+ /**
259
+ * The close code a host ends a session with when the player's access ended: a suspension, a
260
+ * revoke, a logout or an account block (ck-exec 0.16). Final: the connection does not
261
+ * reconnect, and {@link ExecConnection.onAccessEnded} listeners hear the reason.
262
+ */
263
+ export const EXEC_CLOSE_ACCESS_ENDED = 4403;
258
264
  /**
259
265
  * A gateway's close as an error. 4401 is how a gateway before ck-exec 0.10.0 refused a token:
260
- * it upgraded, then closed, so a call already in flight learns of it here.
266
+ * it upgraded, then closed, so a call already in flight learns of it here. 4403 is access
267
+ * ending, also `Denied`.
261
268
  */
262
269
  function closedError(ev) {
263
- return new CrowdyExecError(ev.code === 4401 ? 'Denied' : 'Unavailable', `the gateway closed the connection (${ev.code}${ev.reason ? `: ${ev.reason}` : ''})`);
270
+ return new CrowdyExecError(ev.code === 4401 || ev.code === EXEC_CLOSE_ACCESS_ENDED ? 'Denied' : 'Unavailable', `the gateway closed the connection (${ev.code}${ev.reason ? `: ${ev.reason}` : ''})`);
264
271
  }
265
272
  const REFUSAL_REASON_MAX_CHARS = 500;
266
273
  const REFUSAL_BODY_WAIT_MS = 1000;
@@ -317,6 +324,7 @@ export class ExecConnection {
317
324
  this.closed = false;
318
325
  this.backoffMs = 250;
319
326
  this.reconnectListeners = new Set();
327
+ this.accessEndedListeners = new Set();
320
328
  const ctor = options.WebSocket ?? globalThis.WebSocket;
321
329
  if (!ctor) {
322
330
  throw new CrowdyExecError('Unavailable', 'no WebSocket implementation: pass options.WebSocket (e.g. the `ws` package) on this runtime');
@@ -346,6 +354,16 @@ export class ExecConnection {
346
354
  this.reconnectListeners.add(listener);
347
355
  return () => this.reconnectListeners.delete(listener);
348
356
  }
357
+ /**
358
+ * Called once, with the host's reason, when the host closes the connection because the
359
+ * player's access ended (close code {@link EXEC_CLOSE_ACCESS_ENDED}: suspended, revoked,
360
+ * signed out or blocked). The connection is closed for good then and does not reconnect;
361
+ * tell the player, and connect again only once they hold access again.
362
+ */
363
+ onAccessEnded(listener) {
364
+ this.accessEndedListeners.add(listener);
365
+ return () => this.accessEndedListeners.delete(listener);
366
+ }
349
367
  /** @internal */
350
368
  async connect() {
351
369
  if (!this.ready) {
@@ -451,11 +469,25 @@ export class ExecConnection {
451
469
  }
452
470
  }
453
471
  onClosed(ws, ev) {
454
- this.rejectPending(ws, ev?.code === 4401 ? closedError(ev) : 'the connection to the execution host closed');
472
+ const ended = ev?.code === EXEC_CLOSE_ACCESS_ENDED;
473
+ this.rejectPending(ws, ev && (ev.code === 4401 || ended) ? closedError(ev) : 'the connection to the execution host closed');
455
474
  if (this.ws !== ws)
456
475
  return;
457
476
  this.ws = null;
458
477
  this.ready = null;
478
+ if (ended) {
479
+ // Final: reconnecting would only be refused again.
480
+ this.closed = true;
481
+ for (const l of this.accessEndedListeners) {
482
+ try {
483
+ l(ev?.reason ?? '');
484
+ }
485
+ catch {
486
+ /* a listener's exception is its own */
487
+ }
488
+ }
489
+ return;
490
+ }
459
491
  if (!this.closed && this.options.reconnect !== false)
460
492
  void this.reconnect();
461
493
  }
@@ -1,5 +1,5 @@
1
1
  import type { GraphQLClient } from '../client.js';
2
- import { type MyTeamsQuery, type MyTeamsQueryVariables, type TeamsQuery, type TeamsQueryVariables, type TeamQuery, type TeamQueryVariables, type TeamMembersQuery, type TeamMembersQueryVariables, type TeamRolesQuery, type TeamRolesQueryVariables, type TeamPolicyQuery, type TeamPolicyQueryVariables, type SetTeamPolicyMutation, type SetTeamPolicyMutationVariables, type CreateTeamMutation, type CreateTeamMutationVariables, type UpdateTeamMutation, type UpdateTeamMutationVariables, type DeleteTeamMutationVariables, type JoinTeamMutation, type JoinTeamMutationVariables, type RequestToJoinTeamMutation, type RequestToJoinTeamMutationVariables, type LeaveTeamMutationVariables, type AddTeamMemberMutation, type AddTeamMemberMutationVariables, type RemoveTeamMemberMutationVariables, type SetTeamMemberRolesMutation, type SetTeamMemberRolesMutationVariables, type CreateTeamRoleMutation, type CreateTeamRoleMutationVariables, type UpdateTeamRoleMutation, type UpdateTeamRoleMutationVariables, type DeleteTeamRoleMutationVariables } from '../generated/graphql.js';
2
+ import { type MyTeamsQuery, type MyTeamsQueryVariables, type TeamsQuery, type TeamsQueryVariables, type TeamQuery, type TeamQueryVariables, type TeamMembersQuery, type TeamMembersQueryVariables, type TeamRolesQuery, type TeamRolesQueryVariables, type TeamPolicyQuery, type TeamPolicyQueryVariables, type SetTeamPolicyMutation, type SetTeamPolicyMutationVariables, type CreateTeamMutation, type CreateTeamMutationVariables, type UpdateTeamMutation, type UpdateTeamMutationVariables, type DeleteTeamMutationVariables, type JoinTeamMutation, type JoinTeamMutationVariables, type RequestToJoinTeamMutation, type RequestToJoinTeamMutationVariables, type LeaveTeamMutationVariables, type AddTeamMemberMutation, type AddTeamMemberMutationVariables, type RemoveTeamMemberMutationVariables, type BanTeamMemberMutationVariables, type UnbanTeamMemberMutationVariables, type SetTeamMemberRolesMutation, type SetTeamMemberRolesMutationVariables, type CreateTeamRoleMutation, type CreateTeamRoleMutationVariables, type UpdateTeamRoleMutation, type UpdateTeamRoleMutationVariables, type DeleteTeamRoleMutationVariables } from '../generated/graphql.js';
3
3
  /**
4
4
  * Teams: app-scoped player groups with roles and delegated management on the
5
5
  * **game-api**. Exposed as `client.teams`.
@@ -229,6 +229,43 @@ export declare class TeamsAPI {
229
229
  * another member without `manage_members`, or `UNAUTHENTICATED`.
230
230
  */
231
231
  removeMember(groupId: RemoveTeamMemberMutationVariables['groupId'], userId: RemoveTeamMemberMutationVariables['userId']): Promise<boolean>;
232
+ /**
233
+ * Ban a user from this team: their membership (or a new one, for someone not yet in it)
234
+ * becomes `banned` and their roles go.
235
+ * Joining, requesting to join and being added are then refused with
236
+ * `GROUP_MEMBER_BANNED` until {@link unban}; leaving or being removed does not lift it.
237
+ * Requires the `manage_members` team permission (app admins bypass). Never the
238
+ * team's owner, never yourself.
239
+ *
240
+ * @param groupId - The team, as a decimal `BigInt` string.
241
+ * @param userId - The user to ban, as a decimal `BigInt` string.
242
+ * @param reason - Why, for the team's managers (at most 500 characters); not shown to
243
+ * the banned user.
244
+ * @returns The banned membership (`status: 'banned'`).
245
+ * @throws {CrowdyGraphQLError} `FORBIDDEN` without `manage_members` (or for the owner),
246
+ * `BAD_REQUEST` for yourself or a reason over 500 characters.
247
+ */
248
+ ban(groupId: BanTeamMemberMutationVariables['groupId'], userId: BanTeamMemberMutationVariables['userId'], reason?: string): Promise<{
249
+ groupMemberId: string;
250
+ groupId: string;
251
+ userId: string;
252
+ status: string;
253
+ createdAt: string;
254
+ roles: Array<{
255
+ groupRoleId: string;
256
+ roleName: string;
257
+ rank: number;
258
+ isSystem: boolean;
259
+ permissions: Array<string>;
260
+ }>;
261
+ }>;
262
+ /**
263
+ * Lift a ban, so the user may join or be added again (nothing is restored). Requires the
264
+ * `manage_members` team permission (app admins bypass).
265
+ *
266
+ * @returns `true` if there was a ban.
267
+ */
268
+ unban(groupId: UnbanTeamMemberMutationVariables['groupId'], userId: UnbanTeamMemberMutationVariables['userId']): Promise<boolean>;
232
269
  /**
233
270
  * Replace a member's team roles with the given set. This is **not additive**
234
271
  * — roles not listed are removed. Requires the `manage_roles` team permission
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/domains/teams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/domains/teams.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MyTeamsDocument, TeamsDocument, TeamDocument, TeamMembersDocument, TeamRolesDocument, TeamPolicyDocument, SetTeamPolicyDocument, CreateTeamDocument, UpdateTeamDocument, DeleteTeamDocument, JoinTeamDocument, RequestToJoinTeamDocument, LeaveTeamDocument, AddTeamMemberDocument, RemoveTeamMemberDocument, SetTeamMemberRolesDocument, CreateTeamRoleDocument, UpdateTeamRoleDocument, DeleteTeamRoleDocument, } from '../generated/graphql.js';
1
+ import { MyTeamsDocument, TeamsDocument, TeamDocument, TeamMembersDocument, TeamRolesDocument, TeamPolicyDocument, SetTeamPolicyDocument, CreateTeamDocument, UpdateTeamDocument, DeleteTeamDocument, JoinTeamDocument, RequestToJoinTeamDocument, LeaveTeamDocument, AddTeamMemberDocument, RemoveTeamMemberDocument, BanTeamMemberDocument, UnbanTeamMemberDocument, SetTeamMemberRolesDocument, CreateTeamRoleDocument, UpdateTeamRoleDocument, DeleteTeamRoleDocument, } from '../generated/graphql.js';
2
2
  /**
3
3
  * Teams: app-scoped player groups with roles and delegated management on the
4
4
  * **game-api**. Exposed as `client.teams`.
@@ -277,6 +277,40 @@ export class TeamsAPI {
277
277
  const data = await this.gql.request(RemoveTeamMemberDocument, { groupId, userId });
278
278
  return data.removeTeamMember;
279
279
  }
280
+ /**
281
+ * Ban a user from this team: their membership (or a new one, for someone not yet in it)
282
+ * becomes `banned` and their roles go.
283
+ * Joining, requesting to join and being added are then refused with
284
+ * `GROUP_MEMBER_BANNED` until {@link unban}; leaving or being removed does not lift it.
285
+ * Requires the `manage_members` team permission (app admins bypass). Never the
286
+ * team's owner, never yourself.
287
+ *
288
+ * @param groupId - The team, as a decimal `BigInt` string.
289
+ * @param userId - The user to ban, as a decimal `BigInt` string.
290
+ * @param reason - Why, for the team's managers (at most 500 characters); not shown to
291
+ * the banned user.
292
+ * @returns The banned membership (`status: 'banned'`).
293
+ * @throws {CrowdyGraphQLError} `FORBIDDEN` without `manage_members` (or for the owner),
294
+ * `BAD_REQUEST` for yourself or a reason over 500 characters.
295
+ */
296
+ async ban(groupId, userId, reason) {
297
+ const data = await this.gql.request(BanTeamMemberDocument, {
298
+ groupId,
299
+ userId,
300
+ reason: reason ?? null,
301
+ });
302
+ return data.banTeamMember;
303
+ }
304
+ /**
305
+ * Lift a ban, so the user may join or be added again (nothing is restored). Requires the
306
+ * `manage_members` team permission (app admins bypass).
307
+ *
308
+ * @returns `true` if there was a ban.
309
+ */
310
+ async unban(groupId, userId) {
311
+ const data = await this.gql.request(UnbanTeamMemberDocument, { groupId, userId });
312
+ return data.unbanTeamMember;
313
+ }
280
314
  /**
281
315
  * Replace a member's team roles with the given set. This is **not additive**
282
316
  * — roles not listed are removed. Requires the `manage_roles` team permission
package/dist/errors.d.ts CHANGED
@@ -257,6 +257,16 @@ export declare const ACCESS_SUSPENDED_CODE = "ACCESS_SUSPENDED";
257
257
  export declare const ACCESS_NOT_GRANTED_CODE = "ACCESS_NOT_GRANTED";
258
258
  /** `extensions.code` for "the app is paused" (HTTP 403); see {@link appPausedOf}. */
259
259
  export declare const APP_PAUSED_CODE = "APP_PAUSED";
260
+ /**
261
+ * `extensions.code` for "a platform operator has blocked this account" (HTTP 403), on every
262
+ * sign-in and every request of a blocked account; see {@link accountBlockedOf}.
263
+ */
264
+ export declare const ACCOUNT_BLOCKED_CODE = "ACCOUNT_BLOCKED";
265
+ /**
266
+ * `extensions.code` for "this channel or team has banned the user" (HTTP 403), on a join, a
267
+ * request, an add or an invite; see {@link groupMemberBannedOf}.
268
+ */
269
+ export declare const GROUP_MEMBER_BANNED_CODE = "GROUP_MEMBER_BANNED";
260
270
  /**
261
271
  * Why an app is paused, as `extensions.reason` on `APP_PAUSED` and
262
272
  * `AppRuntimeGate.reason` carry it. Open union: the server may add one.
@@ -283,6 +293,17 @@ export interface CrowdyAccessRefusal {
283
293
  * them is fixed by retrying; tell the player.
284
294
  */
285
295
  export declare function accessRefusalOf(value: unknown): CrowdyAccessRefusal | null;
296
+ /**
297
+ * An `ACCOUNT_BLOCKED` refusal (HTTP 403: a platform operator blocked the account), or
298
+ * `null`. `blockedUntil` is `extensions.blockedUntil` (ISO-8601) for a timed block, when it
299
+ * lapses by itself; `null` while it lasts until lifted. Not fixed by retrying; sign out and
300
+ * tell the player.
301
+ */
302
+ export declare function accountBlockedOf(value: unknown): {
303
+ blockedUntil: string | null;
304
+ } | null;
305
+ /** Whether an error is a `GROUP_MEMBER_BANNED` refusal (HTTP 403); only an unban lifts it. */
306
+ export declare function groupMemberBannedOf(value: unknown): boolean;
286
307
  /**
287
308
  * An `APP_PAUSED` refusal (HTTP 403: the app's runtime gate is not ACTIVE), or
288
309
  * `null`. `reason` is `extensions.reason`. Show the player that the world is
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,iFAAiF;AACjF,MAAM,WAAW,yBAAyB;IACxC,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,kBAAkB;CAKxC;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAKzC;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,yBAAyB,EAAE,CAAC;gBAExC,MAAM,EAAE,yBAAyB,EAAE;IAK/C;;;;;;OAMG;IACH,IAAI,IAAI,IAAI,OAAO,CAElB;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEpD;CACF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,yBAA0B,SAAQ,kBAAkB;IAC/D,8DAA8D;IAC9D,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAG9B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAGtC;IAED;;;;;OAKG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,0BAA0B,GAC1B,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,sBAAsB,GACtB,iBAAiB,GACjB,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,wFAAwF;AACxF,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,IAAI,EAAE,eAAe,CAAC;IACtB,2BAA2B;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,qFAAqF;IACrF,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,gEAAgE;IAChE,IAAI,KAAK,IAAI,iBAAiB,CAQ7B;IAED,0DAA0D;IAC1D,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAED,2FAA2F;IAC3F,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAgCtE;AAED,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,6FAA6F;AAC7F,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,qFAAqF;AACrF,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,WAAW,GACX,qBAAqB,GACrB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAelB;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAKtF;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IACnE,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAc1E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAKpF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAET;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,KAAK,EAAE,OAAO;CAG3B;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,SAAS,EAAE,MAAM;CAG9B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKnG;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;CAAG"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -253,6 +253,16 @@ export const ACCESS_SUSPENDED_CODE = 'ACCESS_SUSPENDED';
253
253
  export const ACCESS_NOT_GRANTED_CODE = 'ACCESS_NOT_GRANTED';
254
254
  /** `extensions.code` for "the app is paused" (HTTP 403); see {@link appPausedOf}. */
255
255
  export const APP_PAUSED_CODE = 'APP_PAUSED';
256
+ /**
257
+ * `extensions.code` for "a platform operator has blocked this account" (HTTP 403), on every
258
+ * sign-in and every request of a blocked account; see {@link accountBlockedOf}.
259
+ */
260
+ export const ACCOUNT_BLOCKED_CODE = 'ACCOUNT_BLOCKED';
261
+ /**
262
+ * `extensions.code` for "this channel or team has banned the user" (HTTP 403), on a join, a
263
+ * request, an add or an invite; see {@link groupMemberBannedOf}.
264
+ */
265
+ export const GROUP_MEMBER_BANNED_CODE = 'GROUP_MEMBER_BANNED';
256
266
  /** The first error entry carrying `code`, from an error or a raw payload. */
257
267
  function errorWithCode(value, code) {
258
268
  if (!value || typeof value !== 'object')
@@ -297,6 +307,23 @@ export function accessRefusalOf(value) {
297
307
  }
298
308
  return null;
299
309
  }
310
+ /**
311
+ * An `ACCOUNT_BLOCKED` refusal (HTTP 403: a platform operator blocked the account), or
312
+ * `null`. `blockedUntil` is `extensions.blockedUntil` (ISO-8601) for a timed block, when it
313
+ * lapses by itself; `null` while it lasts until lifted. Not fixed by retrying; sign out and
314
+ * tell the player.
315
+ */
316
+ export function accountBlockedOf(value) {
317
+ const entry = errorWithCode(value, ACCOUNT_BLOCKED_CODE);
318
+ if (!entry)
319
+ return null;
320
+ const until = entry.extensions?.blockedUntil;
321
+ return { blockedUntil: typeof until === 'string' && until.length > 0 ? until : null };
322
+ }
323
+ /** Whether an error is a `GROUP_MEMBER_BANNED` refusal (HTTP 403); only an unban lifts it. */
324
+ export function groupMemberBannedOf(value) {
325
+ return errorWithCode(value, GROUP_MEMBER_BANNED_CODE) !== null;
326
+ }
300
327
  /**
301
328
  * An `APP_PAUSED` refusal (HTTP 403: the app's runtime gate is not ACTIVE), or
302
329
  * `null`. `reason` is `extensions.reason`. Show the player that the world is