@crowdedkingdomstudios/crowdyjs 4.0.0 → 5.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.
- package/MIGRATION.md +30 -0
- package/dist/crowdy-client.d.ts +8 -0
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +6 -0
- package/dist/domains/apps.d.ts +13 -2
- package/dist/domains/apps.d.ts.map +1 -1
- package/dist/domains/apps.js +5 -2
- package/dist/domains/channels.d.ts +34 -0
- package/dist/domains/channels.d.ts.map +1 -0
- package/dist/domains/channels.js +94 -0
- package/dist/domains/gameModel.d.ts +40 -0
- package/dist/domains/gameModel.d.ts.map +1 -0
- package/dist/domains/gameModel.js +114 -0
- package/dist/domains/platform.d.ts +33 -0
- package/dist/domains/platform.d.ts.map +1 -0
- package/dist/domains/platform.js +39 -0
- package/dist/domains/udp.d.ts +18 -6
- package/dist/domains/udp.d.ts.map +1 -1
- package/dist/domains/udp.js +22 -7
- package/dist/generated/graphql.d.ts +1810 -31
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +68 -3
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/realtime.d.ts +5 -1
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +29 -2
- package/dist/world.js +1 -1
- package/package.json +2 -3
package/dist/index.d.ts
CHANGED
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
*
|
|
27
27
|
* const { token, user } = await client.auth.login({ email, password });
|
|
28
28
|
* const me = await client.users.me();
|
|
29
|
-
* const unsub = client.udp.subscribe({
|
|
29
|
+
* const unsub = client.udp.subscribe({ actorUpdate: (n) => { ... } }, appId);
|
|
30
30
|
*
|
|
31
31
|
* Org / app / billing / payments / quotas operations are not in this
|
|
32
32
|
* package; consume `cks-management-api` directly (the management UI does)
|
|
33
33
|
* via Apollo, fetch, or a separate codegen client.
|
|
34
34
|
*/
|
|
35
|
-
export declare const VERSION = "
|
|
35
|
+
export declare const VERSION = "5.0.0";
|
|
36
36
|
export { CrowdyClient, createCrowdyClient, type CrowdyClientConfig, } from './crowdy-client.js';
|
|
37
37
|
export { BrowserLocalStorageTokenStore, SessionStore, type SessionListener, type TokenStore, } from './session.js';
|
|
38
38
|
export { GraphQLClient, GraphQLTransport, type GraphQLClientConfig, } from './client.js';
|
|
@@ -45,13 +45,16 @@ export { UdpErrorCode } from './types.js';
|
|
|
45
45
|
export { AuthAPI } from './domains/auth.js';
|
|
46
46
|
export { UsersAPI } from './domains/users.js';
|
|
47
47
|
export { AppsAPI, type AppRoute } from './domains/apps.js';
|
|
48
|
+
export { PlatformAPI, type PlatformConfig } from './domains/platform.js';
|
|
48
49
|
export { ChunksAPI } from './domains/chunks.js';
|
|
49
50
|
export { VoxelsAPI } from './domains/voxels.js';
|
|
50
51
|
export { ActorsAPI } from './domains/actors.js';
|
|
51
52
|
export { TeleportAPI } from './domains/teleport.js';
|
|
52
53
|
export { StateAPI } from './domains/state.js';
|
|
53
54
|
export { ServerStatusAPI } from './domains/serverStatus.js';
|
|
55
|
+
export { ChannelsAPI } from './domains/channels.js';
|
|
54
56
|
export { UdpAPI } from './domains/udp.js';
|
|
55
|
-
export
|
|
57
|
+
export { GameModelAPI } from './domains/gameModel.js';
|
|
58
|
+
export type { ChunkCoordinatesInput, VoxelCoordinatesInput, ActorUpdateRequestInput, VoxelUpdateRequestInput, ClientAudioPacketInput, ClientTextPacketInput, ClientEventNotificationInput, UdpProxyConnectionStatus, RealtimeConnectionEvent, GameClientBootstrap, LoginUserInput, RegisterUserInput, ResetPasswordInput, UpdateGamertagInput, CreateActorInput, UpdateActorInput, ActorFilterInput, BatchActorLookupInput, CreateUserAppStateInput, UpdateUserStateInput, UpdateAvatarStateInput, UpdateActorStateInput, UpdateChunkStateInput, UpdateChunkLodsInput, ChunkUpdateInput, UpdateVoxelInput, RollbackVoxelUpdatesInput, GetChunkInput, GetChunkLodsInput, GetChunksByDistanceInput, GetVoxelListInput, ListVoxelsInput, ListVoxelUpdatesByDistanceInput, TeleportRequestInput, LodDataInput, VoxelStateInput, Chunk, ChunkLodsResponse, ChunksByDistanceResponse, ChunkVoxelResponse, ChunkVoxelUpdatesResponse, Voxel, VoxelUpdatesByDistanceResponse, VoxelUpdateHistoryEvent, RollbackVoxelEventResult, Actor, Avatar, AvatarDto, TeleportResponse, UserAppState, ServerStatus, GraphQlServer, ServerVersionInfo, VersionInfo, PageInfo, UdpNotificationsSubscription, GmContainer, GmContainerState, GmContainerType, GmPropertyDef, GmFunction, GmFunctionParam, GmFunctionMutation, GmSession, GmSessionParticipant, GmEdge, GmTraverseResult, GmInvokeResult, GmMutationApplied, GmEvent, GmTypeSchema, GmAppFeature, GmTierFeature, GmAppPolicy, GmSeedResult, UpsertContainerTypeInput, UpsertPropertyDefInput, UpsertFunctionInput, FunctionParamInput, FunctionMutationInput, SeedGameModelInput, SeedContainerInput, SeedContainerTypeInput, SeedPropertyDefInput, SeedFunctionInput, SeedEdgeInput, SeedPropertyInput, CreateSessionInput, JoinSessionInput, SetSessionTurnInput, CreateContainerInput, SetContainerPropertyInput, AddEdgeInput, InvokeFunctionInput, DefineAppFeatureInput, GrantTierFeatureInput, SetGameModelPolicyInput, Scalars, } from './generated/graphql.js';
|
|
56
59
|
export { ServerState } from './generated/graphql.js';
|
|
57
60
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAOpB,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
*
|
|
27
27
|
* const { token, user } = await client.auth.login({ email, password });
|
|
28
28
|
* const me = await client.users.me();
|
|
29
|
-
* const unsub = client.udp.subscribe({
|
|
29
|
+
* const unsub = client.udp.subscribe({ actorUpdate: (n) => { ... } }, appId);
|
|
30
30
|
*
|
|
31
31
|
* Org / app / billing / payments / quotas operations are not in this
|
|
32
32
|
* package; consume `cks-management-api` directly (the management UI does)
|
|
33
33
|
* via Apollo, fetch, or a separate codegen client.
|
|
34
34
|
*/
|
|
35
|
-
export const VERSION = '
|
|
35
|
+
export const VERSION = '5.0.0';
|
|
36
36
|
export { CrowdyClient, createCrowdyClient, } from './crowdy-client.js';
|
|
37
37
|
export { BrowserLocalStorageTokenStore, SessionStore, } from './session.js';
|
|
38
38
|
export { GraphQLClient, GraphQLTransport, } from './client.js';
|
|
@@ -49,11 +49,14 @@ export { UdpErrorCode } from './types.js';
|
|
|
49
49
|
export { AuthAPI } from './domains/auth.js';
|
|
50
50
|
export { UsersAPI } from './domains/users.js';
|
|
51
51
|
export { AppsAPI } from './domains/apps.js';
|
|
52
|
+
export { PlatformAPI } from './domains/platform.js';
|
|
52
53
|
export { ChunksAPI } from './domains/chunks.js';
|
|
53
54
|
export { VoxelsAPI } from './domains/voxels.js';
|
|
54
55
|
export { ActorsAPI } from './domains/actors.js';
|
|
55
56
|
export { TeleportAPI } from './domains/teleport.js';
|
|
56
57
|
export { StateAPI } from './domains/state.js';
|
|
57
58
|
export { ServerStatusAPI } from './domains/serverStatus.js';
|
|
59
|
+
export { ChannelsAPI } from './domains/channels.js';
|
|
58
60
|
export { UdpAPI } from './domains/udp.js';
|
|
61
|
+
export { GameModelAPI } from './domains/gameModel.js';
|
|
59
62
|
export { ServerState } from './generated/graphql.js';
|
package/dist/realtime.d.ts
CHANGED
|
@@ -35,6 +35,9 @@ export interface UdpNotificationHandlers {
|
|
|
35
35
|
singleActorMessage?: (notification: Extract<UdpNotification, {
|
|
36
36
|
__typename?: 'SingleActorMessageNotification';
|
|
37
37
|
}>) => void;
|
|
38
|
+
channelMessage?: (notification: Extract<UdpNotification, {
|
|
39
|
+
__typename?: 'ChannelMessageNotification';
|
|
40
|
+
}>) => void;
|
|
38
41
|
genericError?: (notification: Extract<UdpNotification, {
|
|
39
42
|
__typename?: 'GenericErrorResponse';
|
|
40
43
|
}>) => void;
|
|
@@ -69,13 +72,14 @@ export declare class RealtimeClient {
|
|
|
69
72
|
private readonly subscribers;
|
|
70
73
|
private readonly pending;
|
|
71
74
|
private nextSubscriberId;
|
|
75
|
+
private subscribedAppId;
|
|
72
76
|
constructor(config: RealtimeConfig | undefined, session: SessionStore);
|
|
73
77
|
status(): RealtimeStatus;
|
|
74
78
|
onStatus(listener: (status: RealtimeStatus) => void): () => void;
|
|
75
79
|
connect(): void;
|
|
76
80
|
disconnect(): void;
|
|
77
81
|
close(): void;
|
|
78
|
-
subscribe(handlers: UdpNotificationHandlers): () => void;
|
|
82
|
+
subscribe(handlers: UdpNotificationHandlers, appId: string): () => void;
|
|
79
83
|
waitForSequence(sequenceNumber: number, timeoutMs?: number): Promise<SpatialNotification>;
|
|
80
84
|
private ensureSubscription;
|
|
81
85
|
private restart;
|
package/dist/realtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,cAAc,GACd,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,eAAe,GAAG,WAAW,CACvC,4BAA4B,CAAC,kBAAkB,CAAC,CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC,eAAe,EACf;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAC3B,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC3G,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,qBAAqB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC/G,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC3G,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,qBAAqB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC/G,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACrG,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,wBAAwB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACnG,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC3G,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC3G,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,gCAAgC,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACzH,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,4BAA4B,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACjH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,sBAAsB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACzG,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC/G,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC7C,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAQD,qBAAa,cAAc;IAsBvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IArB1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,gBAAgB,CAAK;IAI7B,OAAO,CAAC,eAAe,CAAuB;gBAG5C,MAAM,EAAE,cAAc,YAAK,EACV,OAAO,EAAE,YAAY;IAyBxC,MAAM,IAAI,cAAc;IAIxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAQhE,OAAO,IAAI,IAAI;IAKf,UAAU,IAAI,IAAI;IASlB,KAAK,IAAI,IAAI;IAMb,SAAS,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI;IAgBvE,eAAe,CACb,cAAc,EAAE,MAAM,EACtB,SAAS,SAAqB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAkB/B,OAAO,CAAC,kBAAkB;IAiG1B,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,QAAQ;IA8DhB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;CAOlB"}
|
package/dist/realtime.js
CHANGED
|
@@ -14,6 +14,10 @@ export class RealtimeClient {
|
|
|
14
14
|
this.subscribers = new Map();
|
|
15
15
|
this.pending = new Map();
|
|
16
16
|
this.nextSubscriberId = 1;
|
|
17
|
+
// App this realtime session is scoped to. Sent in connectionParams so the
|
|
18
|
+
// game-api only fans this app's spatial notifications to this subscription.
|
|
19
|
+
// The game-api rejects subscriptions that arrive without it.
|
|
20
|
+
this.subscribedAppId = null;
|
|
17
21
|
this.wsUrl = config.wsUrl || config.wsEndpoint || 'ws://localhost:3000/graphql';
|
|
18
22
|
this.logger = config.logger ?? silentLogger;
|
|
19
23
|
this.retryAttempts = config.retryAttempts ?? 8;
|
|
@@ -61,7 +65,11 @@ export class RealtimeClient {
|
|
|
61
65
|
this.subscribers.clear();
|
|
62
66
|
this.rejectAllPending(new CrowdyRealtimeError('Realtime client closed', { retryable: false }));
|
|
63
67
|
}
|
|
64
|
-
subscribe(handlers) {
|
|
68
|
+
subscribe(handlers, appId) {
|
|
69
|
+
// appId is required by the type; guard for JS callers so a missing value
|
|
70
|
+
// is sent as "no app" (cleanly rejected by the game-api) rather than the
|
|
71
|
+
// literal string "undefined".
|
|
72
|
+
this.subscribedAppId = appId != null ? String(appId) : null;
|
|
65
73
|
const id = `s${this.nextSubscriberId++}`;
|
|
66
74
|
this.subscribers.set(id, handlers);
|
|
67
75
|
this.connect();
|
|
@@ -104,7 +112,14 @@ export class RealtimeClient {
|
|
|
104
112
|
retryAttempts: this.retryAttempts,
|
|
105
113
|
connectionParams: () => {
|
|
106
114
|
const currentToken = this.session.getToken();
|
|
107
|
-
|
|
115
|
+
if (!currentToken)
|
|
116
|
+
return {};
|
|
117
|
+
const params = {
|
|
118
|
+
Authorization: `Bearer ${currentToken}`,
|
|
119
|
+
};
|
|
120
|
+
if (this.subscribedAppId != null)
|
|
121
|
+
params.appId = this.subscribedAppId;
|
|
122
|
+
return params;
|
|
108
123
|
},
|
|
109
124
|
retryWait: async (retries) => {
|
|
110
125
|
this.setStatus('reconnecting');
|
|
@@ -172,6 +187,15 @@ export class RealtimeClient {
|
|
|
172
187
|
}
|
|
173
188
|
dispatch(notification) {
|
|
174
189
|
this.resolvePending(notification);
|
|
190
|
+
// A non-retryable connection event (e.g. APP_ID_REQUIRED, AUTH_REQUIRED)
|
|
191
|
+
// means the server completed the subscription and resubscribing would just
|
|
192
|
+
// be rejected again. Stop wanting the connection so the `complete` handler
|
|
193
|
+
// doesn't immediately reopen it (lazy graphql-ws then closes the socket).
|
|
194
|
+
if (notification.__typename === 'RealtimeConnectionEvent' &&
|
|
195
|
+
notification.retryable === false) {
|
|
196
|
+
this.desired = false;
|
|
197
|
+
this.setStatus('failed');
|
|
198
|
+
}
|
|
175
199
|
for (const handlers of [...this.subscribers.values()]) {
|
|
176
200
|
try {
|
|
177
201
|
handlers.any?.(notification);
|
|
@@ -203,6 +227,9 @@ export class RealtimeClient {
|
|
|
203
227
|
case 'SingleActorMessageNotification':
|
|
204
228
|
handlers.singleActorMessage?.(notification);
|
|
205
229
|
break;
|
|
230
|
+
case 'ChannelMessageNotification':
|
|
231
|
+
handlers.channelMessage?.(notification);
|
|
232
|
+
break;
|
|
206
233
|
case 'GenericErrorResponse':
|
|
207
234
|
handlers.genericError?.(notification);
|
|
208
235
|
break;
|
package/dist/world.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crowdedkingdomstudios/crowdyjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Client SDK for Crowded Kingdoms GraphQL API with UDP proxy support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"codegen:watch": "graphql-codegen --config codegen.ts --watch",
|
|
29
29
|
"prebuild": "npm run codegen",
|
|
30
30
|
"build": "tsc",
|
|
31
|
-
"test": "npm run build && node --test test/*.test.mjs",
|
|
31
|
+
"test": "npm run build && node --test --test-concurrency=1 test/*.test.mjs",
|
|
32
32
|
"watch": "tsc --watch",
|
|
33
33
|
"clean": "rm -rf dist",
|
|
34
34
|
"prepublishOnly": "npm run clean && npm run build"
|
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
"@graphql-codegen/typescript": "^5.0.10",
|
|
60
60
|
"@graphql-codegen/typescript-operations": "^5.1.0",
|
|
61
61
|
"@types/node": "^22.10.7",
|
|
62
|
-
"pg": "^8.21.0",
|
|
63
62
|
"typescript": "^5.7.3",
|
|
64
63
|
"ws": "^8.20.0"
|
|
65
64
|
},
|