@crowdedkingdoms/crowdyjs 7.1.1 → 8.0.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 +46 -0
- package/README.md +51 -14
- package/dist/client.d.ts +8 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -0
- package/dist/crowdy-client.d.ts +7 -0
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +4 -0
- package/dist/domains/auth.d.ts +77 -140
- package/dist/domains/auth.d.ts.map +1 -1
- package/dist/domains/auth.js +81 -178
- package/dist/domains/gameModel.d.ts +54 -3
- package/dist/domains/gameModel.d.ts.map +1 -1
- package/dist/domains/gameModel.js +67 -4
- package/dist/domains/host.d.ts +14 -3
- package/dist/domains/host.d.ts.map +1 -1
- package/dist/domains/host.js +17 -3
- package/dist/domains/organizations.d.ts +3 -3
- package/dist/domains/organizations.js +3 -3
- package/dist/domains/portal.d.ts +43 -1
- package/dist/domains/portal.d.ts.map +1 -1
- package/dist/domains/portal.js +59 -1
- package/dist/domains/quotas.d.ts +1 -1
- package/dist/domains/quotas.js +1 -1
- package/dist/domains/udp.d.ts +28 -17
- package/dist/domains/udp.d.ts.map +1 -1
- package/dist/domains/udp.js +28 -17
- package/dist/generated/graphql.d.ts +420 -106
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +6 -8
- package/dist/index.d.ts +14 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/lb-cookie-store.d.ts +20 -0
- package/dist/lb-cookie-store.d.ts.map +1 -0
- package/dist/lb-cookie-store.js +73 -0
- package/dist/realtime.d.ts +20 -5
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +38 -0
- package/dist/types.d.ts +22 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/world.d.ts +13 -8
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +13 -8
- package/package.json +6 -4
package/dist/realtime.js
CHANGED
|
@@ -45,12 +45,14 @@ export class RealtimeClient {
|
|
|
45
45
|
// game-api only fans this app's spatial notifications to this subscription.
|
|
46
46
|
// The game-api rejects subscriptions that arrive without it.
|
|
47
47
|
this.subscribedAppId = null;
|
|
48
|
+
this.opening = null;
|
|
48
49
|
this.wsUrl = config.wsUrl || config.wsEndpoint || 'ws://localhost:3000/graphql';
|
|
49
50
|
this.logger = config.logger ?? silentLogger;
|
|
50
51
|
this.retryAttempts = config.retryAttempts ?? 8;
|
|
51
52
|
this.retryInitialDelayMs = config.retryInitialDelayMs ?? 250;
|
|
52
53
|
this.retryMaxDelayMs = config.retryMaxDelayMs ?? 5000;
|
|
53
54
|
this.waitTimeoutMs = config.waitTimeoutMs ?? 5000;
|
|
55
|
+
this.lbCookieStore = config.lbCookieStore;
|
|
54
56
|
this.session.onChange((token) => {
|
|
55
57
|
if (!this.desired)
|
|
56
58
|
return;
|
|
@@ -185,6 +187,8 @@ export class RealtimeClient {
|
|
|
185
187
|
ensureSubscription() {
|
|
186
188
|
if (this.release)
|
|
187
189
|
return;
|
|
190
|
+
if (this.opening)
|
|
191
|
+
return;
|
|
188
192
|
const token = this.session.getToken();
|
|
189
193
|
if (!token) {
|
|
190
194
|
const error = new CrowdyRealtimeError('Must be authenticated to subscribe', {
|
|
@@ -195,11 +199,24 @@ export class RealtimeClient {
|
|
|
195
199
|
this.dispatchError(error);
|
|
196
200
|
throw error;
|
|
197
201
|
}
|
|
202
|
+
this.opening = this.openSubscription(token).finally(() => {
|
|
203
|
+
this.opening = null;
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
async openSubscription(token) {
|
|
207
|
+
if (this.lbCookieStore) {
|
|
208
|
+
await this.lbCookieStore.primeFromGraphql({
|
|
209
|
+
endpoint: this.wsUrl,
|
|
210
|
+
token,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
198
213
|
this.setStatus('connecting');
|
|
214
|
+
const webSocketImpl = createStickyWebSocketImpl(this.lbCookieStore);
|
|
199
215
|
this.client = createClient({
|
|
200
216
|
url: this.wsUrl,
|
|
201
217
|
lazy: true,
|
|
202
218
|
retryAttempts: this.retryAttempts,
|
|
219
|
+
...(webSocketImpl ? { webSocketImpl } : {}),
|
|
203
220
|
connectionParams: () => {
|
|
204
221
|
const currentToken = this.session.getToken();
|
|
205
222
|
if (!currentToken)
|
|
@@ -388,3 +405,24 @@ export class RealtimeClient {
|
|
|
388
405
|
}
|
|
389
406
|
}
|
|
390
407
|
}
|
|
408
|
+
function isNodeRuntime() {
|
|
409
|
+
return (typeof process !== 'undefined' &&
|
|
410
|
+
typeof process.versions?.node === 'string');
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Node `ws` does not send browser cookies on upgrade. When a sticky cookie jar
|
|
414
|
+
* is configured, wrap `ws` so `cks_ga` rides on the handshake.
|
|
415
|
+
*/
|
|
416
|
+
function createStickyWebSocketImpl(lbCookieStore) {
|
|
417
|
+
if (!lbCookieStore || !isNodeRuntime())
|
|
418
|
+
return undefined;
|
|
419
|
+
const cookieStore = lbCookieStore;
|
|
420
|
+
// Node `ws` accepts a third options arg with `headers`; DOM typings do not.
|
|
421
|
+
const NodeWebSocket = WebSocket;
|
|
422
|
+
return class StickyLbWebSocket extends NodeWebSocket {
|
|
423
|
+
constructor(url, protocols) {
|
|
424
|
+
const cookie = cookieStore.headerValue();
|
|
425
|
+
super(url, protocols, cookie ? { headers: { Cookie: cookie } } : undefined);
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
}
|
package/dist/types.d.ts
CHANGED
|
@@ -379,8 +379,12 @@ export interface ActorUpdateNotification {
|
|
|
379
379
|
epochMillis: BigInt;
|
|
380
380
|
}
|
|
381
381
|
/**
|
|
382
|
-
*
|
|
383
|
-
*
|
|
382
|
+
* Legacy type retained for backward compatibility. Current game servers do
|
|
383
|
+
* **not** emit an `ActorUpdateResponse` — the applied echo of your own actor
|
|
384
|
+
* update arrives as an {@link ActorUpdateNotification} (the sender is included
|
|
385
|
+
* in the chunk fan-out), correlated by `sequenceNumber`. That notification, not
|
|
386
|
+
* this type, is what `sendActorUpdateAndWait` resolves with. Has no `state`
|
|
387
|
+
* payload.
|
|
384
388
|
*/
|
|
385
389
|
export interface ActorUpdateResponse {
|
|
386
390
|
/** Discriminator for the {@link UdpNotification} union. */
|
|
@@ -445,8 +449,12 @@ export interface VoxelUpdateNotification {
|
|
|
445
449
|
epochMillis: BigInt;
|
|
446
450
|
}
|
|
447
451
|
/**
|
|
448
|
-
*
|
|
449
|
-
*
|
|
452
|
+
* Legacy type retained for backward compatibility. Current game servers do
|
|
453
|
+
* **not** emit a `VoxelUpdateResponse` — the applied echo of your own voxel
|
|
454
|
+
* update arrives as a {@link VoxelUpdateNotification} (the sender is included
|
|
455
|
+
* in the chunk fan-out), correlated by `sequenceNumber`. That notification, not
|
|
456
|
+
* this type, is what `sendVoxelUpdateAndWait` resolves with. Has no voxel
|
|
457
|
+
* payload.
|
|
450
458
|
*/
|
|
451
459
|
export interface VoxelUpdateResponse {
|
|
452
460
|
/** Discriminator for the {@link UdpNotification} union. */
|
|
@@ -634,11 +642,19 @@ export interface CrowdyClientConfig {
|
|
|
634
642
|
}
|
|
635
643
|
/** Callback for an {@link ActorUpdateNotification} (another actor moved/changed). */
|
|
636
644
|
export type ActorUpdateHandler = (notification: ActorUpdateNotification) => void;
|
|
637
|
-
/**
|
|
645
|
+
/**
|
|
646
|
+
* Callback for a legacy {@link ActorUpdateResponse}. Current servers never emit
|
|
647
|
+
* one; your own actor update echoes back as an {@link ActorUpdateNotification}.
|
|
648
|
+
* Retained for backward compatibility.
|
|
649
|
+
*/
|
|
638
650
|
export type ActorUpdateResponseHandler = (response: ActorUpdateResponse) => void;
|
|
639
651
|
/** Callback for a {@link VoxelUpdateNotification} (a nearby voxel changed). */
|
|
640
652
|
export type VoxelUpdateHandler = (notification: VoxelUpdateNotification) => void;
|
|
641
|
-
/**
|
|
653
|
+
/**
|
|
654
|
+
* Callback for a legacy {@link VoxelUpdateResponse}. Current servers never emit
|
|
655
|
+
* one; your own voxel update echoes back as a {@link VoxelUpdateNotification}.
|
|
656
|
+
* Retained for backward compatibility.
|
|
657
|
+
*/
|
|
642
658
|
export type VoxelUpdateResponseHandler = (response: VoxelUpdateResponse) => void;
|
|
643
659
|
/** Callback for a {@link ClientAudioNotification} (nearby voice/audio packet). */
|
|
644
660
|
export type ClientAudioHandler = (notification: ClientAudioNotification) => void;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAG5B;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,0BAA0B;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,0BAA0B;IAC1B,CAAC,EAAE,MAAM,CAAC;CACX;AAGD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,CAAC,EAAE,MAAM,CAAC;IACV,mDAAmD;IACnD,CAAC,EAAE,MAAM,CAAC;IACV,mDAAmD;IACnD,CAAC,EAAE,MAAM,CAAC;CACX;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,IAAI,EAAE,IAAI,CAAC;CACZ;AAGD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,KAAK,EAAE,qBAAqB,CAAC;IAC7B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,qBAAqB,CAAC;IAC7B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,KAAK,EAAE,qBAAqB,CAAC;IAC7B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,UAAU,EAAE,yBAAyB,CAAC;IACtC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,UAAU,EAAE,qBAAqB,CAAC;IAClC,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,UAAU,EAAE,yBAAyB,CAAC;IACtC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,UAAU,EAAE,qBAAqB,CAAC;IAClC,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,UAAU,EAAE,yBAAyB,CAAC;IACtC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,UAAU,EAAE,wBAAwB,CAAC;IACrC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,UAAU,EAAE,yBAAyB,CAAC;IACtC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,UAAU,EAAE,yBAAyB,CAAC;IACtC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,UAAU,EAAE,sBAAsB,CAAC;IACnC;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,SAAS,EAAE,YAAY,CAAC;CACzB;AAGD;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,GACvB,oBAAoB,CAAC;AAGzB;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,qFAAqF;AACrF,MAAM,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,uBAAuB,KAAK,IAAI,CAAC;AACjF;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;AACjF,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,uBAAuB,KAAK,IAAI,CAAC;AACjF;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;AACjF,kFAAkF;AAClF,MAAM,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,uBAAuB,KAAK,IAAI,CAAC;AACjF,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAC/E,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,uBAAuB,KAAK,IAAI,CAAC;AACjF,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,uBAAuB,KAAK,IAAI,CAAC;AACjF,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAG3E;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC"}
|
package/dist/world.d.ts
CHANGED
|
@@ -84,7 +84,8 @@ export declare class ActorClient {
|
|
|
84
84
|
/**
|
|
85
85
|
* Enter a chunk: records it as this actor's current chunk and sends an
|
|
86
86
|
* initial actor update to register presence there. Resolves with the server's
|
|
87
|
-
* applied `
|
|
87
|
+
* applied echo — your own `ActorUpdateNotification` (the sender is included in
|
|
88
|
+
* the chunk fan-out), correlated by `sequenceNumber`.
|
|
88
89
|
*
|
|
89
90
|
* The **first** spatial message to a brand-new chunk may be dropped
|
|
90
91
|
* server-side while grid permissions load, so if this rejects with a timeout,
|
|
@@ -94,7 +95,8 @@ export declare class ActorClient {
|
|
|
94
95
|
* int64 decimal string. A chunk is a 16x16x16 voxel cube.
|
|
95
96
|
* @param state - Initial actor state blob, base64-encoded. Defaults to `'AA=='`
|
|
96
97
|
* (a single zero byte), i.e. registration-only.
|
|
97
|
-
* @returns The correlated {@link SpatialNotification} (
|
|
98
|
+
* @returns The correlated {@link SpatialNotification} (your own
|
|
99
|
+
* `ActorUpdateNotification` self-echo).
|
|
98
100
|
* @throws {CrowdyProtocolError} if `chunk` is outside signed int64 range.
|
|
99
101
|
* @throws {CrowdyGraphQLError} if the underlying send is rejected.
|
|
100
102
|
* @throws {CrowdyTimeoutError} if the HTTP send leg times out.
|
|
@@ -106,8 +108,9 @@ export declare class ActorClient {
|
|
|
106
108
|
/**
|
|
107
109
|
* Send a state update for this actor to its current chunk (set by
|
|
108
110
|
* {@link join}) or to `options.chunk` if provided. Uses the UDP `...AndWait`
|
|
109
|
-
* path and resolves with the applied
|
|
110
|
-
* `uuid` are filled
|
|
111
|
+
* path and resolves with the applied echo — your own `ActorUpdateNotification`
|
|
112
|
+
* (the sender is included in the chunk fan-out). `appId` and `uuid` are filled
|
|
113
|
+
* in for you.
|
|
111
114
|
*
|
|
112
115
|
* @param state - Actor state blob, base64-encoded (may be `''` for a
|
|
113
116
|
* registration-only update).
|
|
@@ -118,7 +121,8 @@ export declare class ActorClient {
|
|
|
118
121
|
* actor's `defaultDistance`.
|
|
119
122
|
* - `decayRate` — decay algorithm 0-5; defaults to the actor's
|
|
120
123
|
* `defaultDecayRate`.
|
|
121
|
-
* @returns The correlated {@link SpatialNotification} (
|
|
124
|
+
* @returns The correlated {@link SpatialNotification} (your own
|
|
125
|
+
* `ActorUpdateNotification` self-echo).
|
|
122
126
|
* @throws {Error} `'Actor must join a chunk before sending state'` if no chunk
|
|
123
127
|
* has been joined and none is supplied.
|
|
124
128
|
* @throws {CrowdyProtocolError} if the resolved chunk is outside int64 range.
|
|
@@ -131,8 +135,8 @@ export declare class ActorClient {
|
|
|
131
135
|
/**
|
|
132
136
|
* Send a voxel (block) update from this actor to its current chunk (or
|
|
133
137
|
* `input.chunk`). Uses the UDP `...AndWait` path and resolves with the applied
|
|
134
|
-
*
|
|
135
|
-
* you.
|
|
138
|
+
* echo — your own `VoxelUpdateNotification` (the sender is included in the
|
|
139
|
+
* chunk fan-out). `appId`, `uuid`, and `chunk` are filled in for you.
|
|
136
140
|
*
|
|
137
141
|
* @param input - Voxel fields minus `appId`/`uuid`/`chunk`:
|
|
138
142
|
* - `voxel` — `{ x, y, z }` voxel coordinates within the chunk, each an
|
|
@@ -144,7 +148,8 @@ export declare class ActorClient {
|
|
|
144
148
|
* - `sequenceNumber` — optional uint8 (0-255) correlation id.
|
|
145
149
|
* - `chunk` — optional `{ x, y, z }` (signed int64 decimal strings) to
|
|
146
150
|
* override the tracked chunk.
|
|
147
|
-
* @returns The correlated {@link SpatialNotification} (
|
|
151
|
+
* @returns The correlated {@link SpatialNotification} (your own
|
|
152
|
+
* `VoxelUpdateNotification` self-echo).
|
|
148
153
|
* @throws {Error} `'Actor must join a chunk before sending voxel updates'` if
|
|
149
154
|
* no chunk has been joined and none is supplied.
|
|
150
155
|
* @throws {CrowdyProtocolError} if the resolved chunk is outside int64 range.
|
package/dist/world.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,EACrB,OAAO,EACP,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGlF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EACjC,GAAG,EAAE,MAAM;IAG9B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,WAAW;IAQ9C;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI;CAGzD;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IASpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,CAAsC;gBAGhC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAC5D,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;IAM9D
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
|
package/dist/world.js
CHANGED
|
@@ -66,7 +66,8 @@ export class ActorClient {
|
|
|
66
66
|
/**
|
|
67
67
|
* Enter a chunk: records it as this actor's current chunk and sends an
|
|
68
68
|
* initial actor update to register presence there. Resolves with the server's
|
|
69
|
-
* applied `
|
|
69
|
+
* applied echo — your own `ActorUpdateNotification` (the sender is included in
|
|
70
|
+
* the chunk fan-out), correlated by `sequenceNumber`.
|
|
70
71
|
*
|
|
71
72
|
* The **first** spatial message to a brand-new chunk may be dropped
|
|
72
73
|
* server-side while grid permissions load, so if this rejects with a timeout,
|
|
@@ -76,7 +77,8 @@ export class ActorClient {
|
|
|
76
77
|
* int64 decimal string. A chunk is a 16x16x16 voxel cube.
|
|
77
78
|
* @param state - Initial actor state blob, base64-encoded. Defaults to `'AA=='`
|
|
78
79
|
* (a single zero byte), i.e. registration-only.
|
|
79
|
-
* @returns The correlated {@link SpatialNotification} (
|
|
80
|
+
* @returns The correlated {@link SpatialNotification} (your own
|
|
81
|
+
* `ActorUpdateNotification` self-echo).
|
|
80
82
|
* @throws {CrowdyProtocolError} if `chunk` is outside signed int64 range.
|
|
81
83
|
* @throws {CrowdyGraphQLError} if the underlying send is rejected.
|
|
82
84
|
* @throws {CrowdyTimeoutError} if the HTTP send leg times out.
|
|
@@ -91,8 +93,9 @@ export class ActorClient {
|
|
|
91
93
|
/**
|
|
92
94
|
* Send a state update for this actor to its current chunk (set by
|
|
93
95
|
* {@link join}) or to `options.chunk` if provided. Uses the UDP `...AndWait`
|
|
94
|
-
* path and resolves with the applied
|
|
95
|
-
* `uuid` are filled
|
|
96
|
+
* path and resolves with the applied echo — your own `ActorUpdateNotification`
|
|
97
|
+
* (the sender is included in the chunk fan-out). `appId` and `uuid` are filled
|
|
98
|
+
* in for you.
|
|
96
99
|
*
|
|
97
100
|
* @param state - Actor state blob, base64-encoded (may be `''` for a
|
|
98
101
|
* registration-only update).
|
|
@@ -103,7 +106,8 @@ export class ActorClient {
|
|
|
103
106
|
* actor's `defaultDistance`.
|
|
104
107
|
* - `decayRate` — decay algorithm 0-5; defaults to the actor's
|
|
105
108
|
* `defaultDecayRate`.
|
|
106
|
-
* @returns The correlated {@link SpatialNotification} (
|
|
109
|
+
* @returns The correlated {@link SpatialNotification} (your own
|
|
110
|
+
* `ActorUpdateNotification` self-echo).
|
|
107
111
|
* @throws {Error} `'Actor must join a chunk before sending state'` if no chunk
|
|
108
112
|
* has been joined and none is supplied.
|
|
109
113
|
* @throws {CrowdyProtocolError} if the resolved chunk is outside int64 range.
|
|
@@ -130,8 +134,8 @@ export class ActorClient {
|
|
|
130
134
|
/**
|
|
131
135
|
* Send a voxel (block) update from this actor to its current chunk (or
|
|
132
136
|
* `input.chunk`). Uses the UDP `...AndWait` path and resolves with the applied
|
|
133
|
-
*
|
|
134
|
-
* you.
|
|
137
|
+
* echo — your own `VoxelUpdateNotification` (the sender is included in the
|
|
138
|
+
* chunk fan-out). `appId`, `uuid`, and `chunk` are filled in for you.
|
|
135
139
|
*
|
|
136
140
|
* @param input - Voxel fields minus `appId`/`uuid`/`chunk`:
|
|
137
141
|
* - `voxel` — `{ x, y, z }` voxel coordinates within the chunk, each an
|
|
@@ -143,7 +147,8 @@ export class ActorClient {
|
|
|
143
147
|
* - `sequenceNumber` — optional uint8 (0-255) correlation id.
|
|
144
148
|
* - `chunk` — optional `{ x, y, z }` (signed int64 decimal strings) to
|
|
145
149
|
* override the tracked chunk.
|
|
146
|
-
* @returns The correlated {@link SpatialNotification} (
|
|
150
|
+
* @returns The correlated {@link SpatialNotification} (your own
|
|
151
|
+
* `VoxelUpdateNotification` self-echo).
|
|
147
152
|
* @throws {Error} `'Actor must join a chunk before sending voxel updates'` if
|
|
148
153
|
* no chunk has been joined and none is supplied.
|
|
149
154
|
* @throws {CrowdyProtocolError} if the resolved chunk is outside int64 range.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crowdedkingdoms/crowdyjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.1",
|
|
4
4
|
"description": "Client SDK for Crowded Kingdoms GraphQL API with UDP proxy support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
"MIGRATION.md"
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
|
-
"sync
|
|
25
|
-
"
|
|
24
|
+
"schema:sync": "npm run schema:sync:prod",
|
|
25
|
+
"schema:sync:prod": "node scripts/sync-schema.mjs --prod",
|
|
26
|
+
"schema:sync:local": "node scripts/sync-schema.mjs --local",
|
|
27
|
+
"schema:sync:paths": "node scripts/sync-schema.mjs",
|
|
26
28
|
"codegen": "graphql-codegen --config codegen.ts",
|
|
27
29
|
"check:schema": "npm run codegen && git diff --exit-code schema.gql src/generated/graphql.ts",
|
|
28
30
|
"codegen:watch": "graphql-codegen --config codegen.ts --watch",
|
|
29
|
-
"prebuild": "npm run codegen",
|
|
30
31
|
"build": "tsc",
|
|
31
32
|
"test": "npm run build && node --test --test-concurrency=1 test/unit/*.test.mjs test/e2e/*.test.mjs",
|
|
32
33
|
"test:unit": "npm run build && node --test test/unit/*.test.mjs",
|
|
@@ -61,6 +62,7 @@
|
|
|
61
62
|
"@graphql-codegen/typed-document-node": "^6.1.8",
|
|
62
63
|
"@graphql-codegen/typescript": "^5.0.10",
|
|
63
64
|
"@graphql-codegen/typescript-operations": "^5.1.0",
|
|
65
|
+
"@graphql-tools/merge": "^9.1.10",
|
|
64
66
|
"@types/node": "^22.10.7",
|
|
65
67
|
"typescript": "^5.7.3",
|
|
66
68
|
"ws": "^8.20.0"
|