@noya-app/noya-multiplayer-react 0.1.50 → 0.1.51
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/.turbo/turbo-build.log +11 -11
- package/CHANGELOG.md +9 -0
- package/dist/index.bundle.js +6 -6
- package/dist/index.d.mts +4 -6
- package/dist/index.d.ts +4 -6
- package/dist/index.js +17 -35
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -34
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/NoyaStateContext.tsx +2 -2
- package/src/WebSocketConnection.ts +17 -39
- package/src/hooks.ts +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -56,7 +56,7 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
|
|
|
56
56
|
assetManager: _noya_app_state_manager.AssetManager;
|
|
57
57
|
aiManager: _noya_app_state_manager.AIManager;
|
|
58
58
|
rpcManager: _noya_app_state_manager.RPCManager;
|
|
59
|
-
|
|
59
|
+
pipelineManager: _noya_app_state_manager.PipelineManager;
|
|
60
60
|
secretManager: _noya_app_state_manager.SecretManager;
|
|
61
61
|
menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
|
|
62
62
|
createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.Asset>;
|
|
@@ -251,7 +251,7 @@ declare function useOutputTransforms(): ({
|
|
|
251
251
|
})[];
|
|
252
252
|
declare function useIOManager(): _noya_app_state_manager.IOManager;
|
|
253
253
|
declare function useIsInitialized(): boolean;
|
|
254
|
-
declare function
|
|
254
|
+
declare function usePipelineManager(): _noya_app_state_manager.PipelineManager;
|
|
255
255
|
declare const ConnectedUsersContext: React.Context<ConnectedUsersManager | undefined>;
|
|
256
256
|
declare function useConnectedUsersManager(): ConnectedUsersManager | undefined;
|
|
257
257
|
declare const AnyEphemeralUserDataManagerContext: React.Context<EphemeralUserDataManager<object> | undefined>;
|
|
@@ -327,9 +327,7 @@ declare class WebSocketConnection<State> {
|
|
|
327
327
|
private url;
|
|
328
328
|
private options;
|
|
329
329
|
private ws;
|
|
330
|
-
private
|
|
331
|
-
private pendingPingId?;
|
|
332
|
-
private intervalId?;
|
|
330
|
+
private closedForever;
|
|
333
331
|
constructor(url: URL, options?: ConnectionOptions<State>);
|
|
334
332
|
connect(): Promise<void>;
|
|
335
333
|
private handleOpen;
|
|
@@ -341,4 +339,4 @@ declare class WebSocketConnection<State> {
|
|
|
341
339
|
removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
|
|
342
340
|
}
|
|
343
341
|
|
|
344
|
-
export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, useSecret, useSecretManager, useSecrets, useSyncStateManager, useViewType
|
|
342
|
+
export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, useSecret, useSecretManager, useSecrets, useSyncStateManager, useViewType };
|
package/dist/index.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
|
|
|
56
56
|
assetManager: _noya_app_state_manager.AssetManager;
|
|
57
57
|
aiManager: _noya_app_state_manager.AIManager;
|
|
58
58
|
rpcManager: _noya_app_state_manager.RPCManager;
|
|
59
|
-
|
|
59
|
+
pipelineManager: _noya_app_state_manager.PipelineManager;
|
|
60
60
|
secretManager: _noya_app_state_manager.SecretManager;
|
|
61
61
|
menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
|
|
62
62
|
createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.Asset>;
|
|
@@ -251,7 +251,7 @@ declare function useOutputTransforms(): ({
|
|
|
251
251
|
})[];
|
|
252
252
|
declare function useIOManager(): _noya_app_state_manager.IOManager;
|
|
253
253
|
declare function useIsInitialized(): boolean;
|
|
254
|
-
declare function
|
|
254
|
+
declare function usePipelineManager(): _noya_app_state_manager.PipelineManager;
|
|
255
255
|
declare const ConnectedUsersContext: React.Context<ConnectedUsersManager | undefined>;
|
|
256
256
|
declare function useConnectedUsersManager(): ConnectedUsersManager | undefined;
|
|
257
257
|
declare const AnyEphemeralUserDataManagerContext: React.Context<EphemeralUserDataManager<object> | undefined>;
|
|
@@ -327,9 +327,7 @@ declare class WebSocketConnection<State> {
|
|
|
327
327
|
private url;
|
|
328
328
|
private options;
|
|
329
329
|
private ws;
|
|
330
|
-
private
|
|
331
|
-
private pendingPingId?;
|
|
332
|
-
private intervalId?;
|
|
330
|
+
private closedForever;
|
|
333
331
|
constructor(url: URL, options?: ConnectionOptions<State>);
|
|
334
332
|
connect(): Promise<void>;
|
|
335
333
|
private handleOpen;
|
|
@@ -341,4 +339,4 @@ declare class WebSocketConnection<State> {
|
|
|
341
339
|
removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
|
|
342
340
|
}
|
|
343
341
|
|
|
344
|
-
export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, useSecret, useSecretManager, useSecrets, useSyncStateManager, useViewType
|
|
342
|
+
export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, useSecret, useSecretManager, useSecrets, useSyncStateManager, useViewType };
|
package/dist/index.js
CHANGED
|
@@ -944,12 +944,12 @@ __export(src_exports, {
|
|
|
944
944
|
useNoyaState: () => useNoyaState,
|
|
945
945
|
useObservable: () => useObservable,
|
|
946
946
|
useOutputTransforms: () => useOutputTransforms,
|
|
947
|
+
usePipelineManager: () => usePipelineManager,
|
|
947
948
|
useSecret: () => useSecret,
|
|
948
949
|
useSecretManager: () => useSecretManager,
|
|
949
950
|
useSecrets: () => useSecrets,
|
|
950
951
|
useSyncStateManager: () => useSyncStateManager,
|
|
951
|
-
useViewType: () => useViewType
|
|
952
|
-
useWorkflowManager: () => useWorkflowManager
|
|
952
|
+
useViewType: () => useViewType
|
|
953
953
|
});
|
|
954
954
|
module.exports = __toCommonJS(src_exports);
|
|
955
955
|
__reExport(src_exports, require("@noya-app/state-manager"), module.exports);
|
|
@@ -2230,7 +2230,7 @@ function useMultiplayerState(initialState, options) {
|
|
|
2230
2230
|
assetManager: noyaManager.assetManager,
|
|
2231
2231
|
aiManager: noyaManager.aiManager,
|
|
2232
2232
|
rpcManager: noyaManager.rpcManager,
|
|
2233
|
-
|
|
2233
|
+
pipelineManager: noyaManager.pipelineManager,
|
|
2234
2234
|
secretManager: noyaManager.secretManager,
|
|
2235
2235
|
menuItemsManager: noyaManager.menuManager,
|
|
2236
2236
|
createAsset: noyaManager.assetManager.create,
|
|
@@ -5170,9 +5170,9 @@ function useIsInitialized() {
|
|
|
5170
5170
|
);
|
|
5171
5171
|
return useObservable(isInitializedObservable);
|
|
5172
5172
|
}
|
|
5173
|
-
function
|
|
5173
|
+
function usePipelineManager() {
|
|
5174
5174
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
5175
|
-
return noyaManager.
|
|
5175
|
+
return noyaManager.pipelineManager;
|
|
5176
5176
|
}
|
|
5177
5177
|
var ConnectedUsersContext = (0, import_react8.createContext)(void 0);
|
|
5178
5178
|
function useConnectedUsersManager() {
|
|
@@ -5365,32 +5365,13 @@ var WebSocketConnection = class {
|
|
|
5365
5365
|
});
|
|
5366
5366
|
}
|
|
5367
5367
|
ws;
|
|
5368
|
-
|
|
5369
|
-
pendingPingId;
|
|
5370
|
-
intervalId;
|
|
5368
|
+
closedForever = false;
|
|
5371
5369
|
async connect() {
|
|
5370
|
+
if (this.closedForever) return;
|
|
5372
5371
|
this.ws.connect(this.url.toString());
|
|
5373
|
-
this.intervalId = setInterval(() => {
|
|
5374
|
-
if (this.ws.state !== "OPEN") return;
|
|
5375
|
-
if (this.pendingPingId) {
|
|
5376
|
-
this.ws.close();
|
|
5377
|
-
return;
|
|
5378
|
-
}
|
|
5379
|
-
const pingId = (this.pingCount++).toString();
|
|
5380
|
-
const message = {
|
|
5381
|
-
type: "ping",
|
|
5382
|
-
id: pingId
|
|
5383
|
-
};
|
|
5384
|
-
this.pendingPingId = message.id;
|
|
5385
|
-
this.options.onConnectionEvent?.({
|
|
5386
|
-
type: "send",
|
|
5387
|
-
message
|
|
5388
|
-
});
|
|
5389
|
-
this.ws.send(JSON.stringify(message));
|
|
5390
|
-
}, 1e4);
|
|
5391
5372
|
}
|
|
5392
5373
|
handleOpen = () => {
|
|
5393
|
-
this.
|
|
5374
|
+
if (this.closedForever) return;
|
|
5394
5375
|
if (this.options.debug) {
|
|
5395
5376
|
console.info("ws connected");
|
|
5396
5377
|
}
|
|
@@ -5400,6 +5381,7 @@ var WebSocketConnection = class {
|
|
|
5400
5381
|
});
|
|
5401
5382
|
};
|
|
5402
5383
|
handleMessage = (event) => {
|
|
5384
|
+
if (this.closedForever) return;
|
|
5403
5385
|
if (this.options.debug) {
|
|
5404
5386
|
console.info("ws receiving message ", event.data);
|
|
5405
5387
|
}
|
|
@@ -5408,12 +5390,9 @@ var WebSocketConnection = class {
|
|
|
5408
5390
|
type: "receive",
|
|
5409
5391
|
message: parsed
|
|
5410
5392
|
});
|
|
5411
|
-
if (parsed.type === "pong" && parsed.id === this.pendingPingId) {
|
|
5412
|
-
this.pendingPingId = void 0;
|
|
5413
|
-
}
|
|
5414
5393
|
};
|
|
5415
5394
|
handleClose = () => {
|
|
5416
|
-
this.
|
|
5395
|
+
if (this.closedForever) return;
|
|
5417
5396
|
if (this.options.debug) {
|
|
5418
5397
|
console.info("ws disconnected");
|
|
5419
5398
|
}
|
|
@@ -5423,6 +5402,7 @@ var WebSocketConnection = class {
|
|
|
5423
5402
|
});
|
|
5424
5403
|
};
|
|
5425
5404
|
send(message) {
|
|
5405
|
+
if (this.closedForever) return;
|
|
5426
5406
|
if (this.options.debug) {
|
|
5427
5407
|
console.info("ws sending message", message);
|
|
5428
5408
|
}
|
|
@@ -5433,10 +5413,12 @@ var WebSocketConnection = class {
|
|
|
5433
5413
|
this.ws.send(JSON.stringify(message));
|
|
5434
5414
|
}
|
|
5435
5415
|
close() {
|
|
5436
|
-
if (this.
|
|
5437
|
-
|
|
5438
|
-
}
|
|
5416
|
+
if (this.closedForever) return;
|
|
5417
|
+
this.closedForever = true;
|
|
5439
5418
|
this.ws.shutdown();
|
|
5419
|
+
this.ws.listeners.forEach((listener) => {
|
|
5420
|
+
this.ws.removeListener(listener);
|
|
5421
|
+
});
|
|
5440
5422
|
}
|
|
5441
5423
|
addListener(listener) {
|
|
5442
5424
|
return this.ws.addListener(listener);
|
|
@@ -5477,12 +5459,12 @@ var WebSocketConnection = class {
|
|
|
5477
5459
|
useNoyaState,
|
|
5478
5460
|
useObservable,
|
|
5479
5461
|
useOutputTransforms,
|
|
5462
|
+
usePipelineManager,
|
|
5480
5463
|
useSecret,
|
|
5481
5464
|
useSecretManager,
|
|
5482
5465
|
useSecrets,
|
|
5483
5466
|
useSyncStateManager,
|
|
5484
5467
|
useViewType,
|
|
5485
|
-
useWorkflowManager,
|
|
5486
5468
|
...require("@noya-app/state-manager")
|
|
5487
5469
|
});
|
|
5488
5470
|
//# sourceMappingURL=index.js.map
|