@noya-app/noya-multiplayer-react 0.1.83 → 0.1.85

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/dist/index.d.mts CHANGED
@@ -37,6 +37,7 @@ type StateInspectorOptions = {
37
37
  colorScheme?: "light" | "dark";
38
38
  anchor?: StateInspectorAnchor;
39
39
  advanced?: boolean;
40
+ defaultCollapsed?: boolean;
40
41
  };
41
42
  declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(props: {
42
43
  noyaManager: NoyaManager<S, M, E, MenuT, I>;
@@ -134,10 +135,11 @@ declare function createStateInspectorRoot(): {
134
135
  root: Root;
135
136
  unmount: () => void;
136
137
  };
137
- declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ noyaManager, disabled, advanced, colorScheme, anchor, }: {
138
+ declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ noyaManager, disabled, advanced, defaultCollapsed, colorScheme, anchor, }: {
138
139
  noyaManager: NoyaManager<S, M, E, MenuT, I>;
139
140
  disabled?: boolean;
140
141
  advanced?: boolean;
142
+ defaultCollapsed?: boolean;
141
143
  colorScheme?: ComponentProps<typeof StateInspector>["colorScheme"];
142
144
  anchor?: ComponentProps<typeof StateInspector>["anchor"];
143
145
  }): void;
@@ -226,6 +228,7 @@ type AnyNoyaStateContextValue = {
226
228
  viewType: AppViewType;
227
229
  };
228
230
  declare const AnyNoyaStateContext: React.Context<AnyNoyaStateContextValue | undefined>;
231
+ declare function useOptionalAnyNoyaStateContext(): AnyNoyaStateContextValue | undefined;
229
232
  declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
230
233
  declare function useAnyNoyaManager(): NoyaManager<any, any, any, any, any>;
231
234
  declare function useColorScheme(): AppTheme;
@@ -508,6 +511,8 @@ declare function useObservable<T>(observable: Observable<T> | undefined): T | un
508
511
  declare function useObservable<T, A>(observable: Observable<T> | undefined, selector: (value: T) => A, options?: Pick<ObservableOptions, "isEqual">): A | undefined;
509
512
  declare function useObservable<T, P extends PathKey[] | string>(observable: Observable<T> | undefined, path: P): GetAtPath<T, P> | undefined;
510
513
 
514
+ declare function useResourceUrl(idOrStableId: string | undefined): string | undefined;
515
+
511
516
  type ConnectionEvent<State> = {
512
517
  type: "stateChange";
513
518
  state: ReconnectingWebSocketState;
@@ -541,4 +546,4 @@ declare class WebSocketConnection<State> {
541
546
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
542
547
  }
543
548
 
544
- export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, buildResourcePatchPayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyNoyaManager, useAnyNoyaStateContext, useAnySharedConnectionData, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useEnqueueInput, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaActiveUsers, useNoyaAssetTranscription, useNoyaCurrentUser, useNoyaCurrentUserId, useNoyaStateInternal, useNoyaTranscriptionManager, useNoyaUser, useNoyaUserManager, useNoyaUsers, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useScriptEvaluator, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useViewType };
549
+ export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, buildResourcePatchPayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyNoyaManager, useAnyNoyaStateContext, useAnySharedConnectionData, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useEnqueueInput, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaActiveUsers, useNoyaAssetTranscription, useNoyaCurrentUser, useNoyaCurrentUserId, useNoyaStateInternal, useNoyaTranscriptionManager, useNoyaUser, useNoyaUserManager, useNoyaUsers, useObservable, useOptionalAnyNoyaStateContext, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResourceUrl, useResources, useScriptEvaluator, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useViewType };
package/dist/index.d.ts CHANGED
@@ -37,6 +37,7 @@ type StateInspectorOptions = {
37
37
  colorScheme?: "light" | "dark";
38
38
  anchor?: StateInspectorAnchor;
39
39
  advanced?: boolean;
40
+ defaultCollapsed?: boolean;
40
41
  };
41
42
  declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(props: {
42
43
  noyaManager: NoyaManager<S, M, E, MenuT, I>;
@@ -134,10 +135,11 @@ declare function createStateInspectorRoot(): {
134
135
  root: Root;
135
136
  unmount: () => void;
136
137
  };
137
- declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ noyaManager, disabled, advanced, colorScheme, anchor, }: {
138
+ declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ noyaManager, disabled, advanced, defaultCollapsed, colorScheme, anchor, }: {
138
139
  noyaManager: NoyaManager<S, M, E, MenuT, I>;
139
140
  disabled?: boolean;
140
141
  advanced?: boolean;
142
+ defaultCollapsed?: boolean;
141
143
  colorScheme?: ComponentProps<typeof StateInspector>["colorScheme"];
142
144
  anchor?: ComponentProps<typeof StateInspector>["anchor"];
143
145
  }): void;
@@ -226,6 +228,7 @@ type AnyNoyaStateContextValue = {
226
228
  viewType: AppViewType;
227
229
  };
228
230
  declare const AnyNoyaStateContext: React.Context<AnyNoyaStateContextValue | undefined>;
231
+ declare function useOptionalAnyNoyaStateContext(): AnyNoyaStateContextValue | undefined;
229
232
  declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
230
233
  declare function useAnyNoyaManager(): NoyaManager<any, any, any, any, any>;
231
234
  declare function useColorScheme(): AppTheme;
@@ -508,6 +511,8 @@ declare function useObservable<T>(observable: Observable<T> | undefined): T | un
508
511
  declare function useObservable<T, A>(observable: Observable<T> | undefined, selector: (value: T) => A, options?: Pick<ObservableOptions, "isEqual">): A | undefined;
509
512
  declare function useObservable<T, P extends PathKey[] | string>(observable: Observable<T> | undefined, path: P): GetAtPath<T, P> | undefined;
510
513
 
514
+ declare function useResourceUrl(idOrStableId: string | undefined): string | undefined;
515
+
511
516
  type ConnectionEvent<State> = {
512
517
  type: "stateChange";
513
518
  state: ReconnectingWebSocketState;
@@ -541,4 +546,4 @@ declare class WebSocketConnection<State> {
541
546
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
542
547
  }
543
548
 
544
- export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, buildResourcePatchPayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyNoyaManager, useAnyNoyaStateContext, useAnySharedConnectionData, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useEnqueueInput, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaActiveUsers, useNoyaAssetTranscription, useNoyaCurrentUser, useNoyaCurrentUserId, useNoyaStateInternal, useNoyaTranscriptionManager, useNoyaUser, useNoyaUserManager, useNoyaUsers, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useScriptEvaluator, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useViewType };
549
+ export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, buildResourcePatchPayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyNoyaManager, useAnyNoyaStateContext, useAnySharedConnectionData, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useEnqueueInput, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaActiveUsers, useNoyaAssetTranscription, useNoyaCurrentUser, useNoyaCurrentUserId, useNoyaStateInternal, useNoyaTranscriptionManager, useNoyaUser, useNoyaUserManager, useNoyaUsers, useObservable, useOptionalAnyNoyaStateContext, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResourceUrl, useResources, useScriptEvaluator, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useViewType };
package/dist/index.js CHANGED
@@ -1552,11 +1552,13 @@ __export(src_exports, {
1552
1552
  useNoyaUserManager: () => useNoyaUserManager,
1553
1553
  useNoyaUsers: () => useNoyaUsers,
1554
1554
  useObservable: () => useObservable,
1555
+ useOptionalAnyNoyaStateContext: () => useOptionalAnyNoyaStateContext,
1555
1556
  useOutputTransforms: () => useOutputTransforms,
1556
1557
  usePipelineManager: () => usePipelineManager,
1557
1558
  usePublish: () => usePublish,
1558
1559
  useRegisterAITool: () => useRegisterAITool,
1559
1560
  useResourceManager: () => useResourceManager,
1561
+ useResourceUrl: () => useResourceUrl,
1560
1562
  useResources: () => useResources,
1561
1563
  useScriptEvaluator: () => useScriptEvaluator,
1562
1564
  useSecret: () => useSecret,
@@ -6804,6 +6806,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
6804
6806
  anchor = "right",
6805
6807
  unstyled = false,
6806
6808
  advanced = false,
6809
+ defaultCollapsed = false,
6807
6810
  ...props
6808
6811
  }) {
6809
6812
  const {
@@ -6833,7 +6836,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
6833
6836
  const serverSimulationLogsContainerRef = import_react17.default.useRef(null);
6834
6837
  const [showInspector, setShowInspector] = useLocalStorageState(
6835
6838
  "noya-multiplayer-react-show-inspector",
6836
- true
6839
+ !defaultCollapsed
6837
6840
  );
6838
6841
  const [showEvents, setShowEvents] = useLocalStorageState(
6839
6842
  "noya-multiplayer-react-show-events",
@@ -7584,6 +7587,7 @@ function useStateInspector({
7584
7587
  noyaManager,
7585
7588
  disabled = false,
7586
7589
  advanced = false,
7590
+ defaultCollapsed = false,
7587
7591
  colorScheme,
7588
7592
  anchor
7589
7593
  }) {
@@ -7603,11 +7607,12 @@ function useStateInspector({
7603
7607
  colorScheme,
7604
7608
  anchor,
7605
7609
  noyaManager,
7606
- advanced
7610
+ advanced,
7611
+ defaultCollapsed
7607
7612
  }
7608
7613
  )
7609
7614
  );
7610
- }, [noyaManager, anchor, colorScheme, root, advanced]);
7615
+ }, [noyaManager, anchor, colorScheme, root, advanced, defaultCollapsed]);
7611
7616
  }
7612
7617
 
7613
7618
  // src/hooks.ts
@@ -7943,7 +7948,8 @@ function initializeNoyaSingleton(options) {
7943
7948
  noyaManager: noyaManagerSingleton,
7944
7949
  colorScheme: resolvedInspector === true ? resolvedTheme : resolvedInspector.colorScheme,
7945
7950
  anchor: resolvedInspector === true ? "bottom right" : resolvedInspector.anchor,
7946
- advanced: resolvedInspector === true ? false : resolvedInspector.advanced
7951
+ advanced: resolvedInspector === true ? false : resolvedInspector.advanced,
7952
+ defaultCollapsed: resolvedInspector === true ? false : resolvedInspector.defaultCollapsed
7947
7953
  }
7948
7954
  )
7949
7955
  );
@@ -8039,22 +8045,23 @@ function buildResourcePatchPayload({
8039
8045
  return patch;
8040
8046
  }
8041
8047
  var AnyNoyaStateContext = (0, import_react22.createContext)(void 0);
8042
- function useAnyNoyaStateContext() {
8048
+ function useOptionalAnyNoyaStateContext() {
8043
8049
  const value = (0, import_react22.useContext)(AnyNoyaStateContext);
8044
- if (!value) {
8045
- const bindings = getNoyaSingletonBindings();
8046
- if (bindings) {
8047
- return {
8048
- noyaManager: getNoyaManagerSingleton(),
8049
- theme: bindings.theme,
8050
- viewType: bindings.viewType
8051
- };
8052
- }
8053
- throw new Error(
8054
- "useNoyaStateContext must be used within a NoyaStateProvider"
8055
- );
8056
- }
8057
- return value;
8050
+ const bindings = getNoyaSingletonBindings();
8051
+ if (value) return value;
8052
+ if (!bindings) return void 0;
8053
+ return {
8054
+ noyaManager: getNoyaManagerSingleton(),
8055
+ theme: bindings.theme,
8056
+ viewType: bindings.viewType
8057
+ };
8058
+ }
8059
+ function useAnyNoyaStateContext() {
8060
+ const value = useOptionalAnyNoyaStateContext();
8061
+ if (value) return value;
8062
+ throw new Error(
8063
+ "useNoyaStateContext must be used within a NoyaStateProvider"
8064
+ );
8058
8065
  }
8059
8066
  function useAnyNoyaManager() {
8060
8067
  const { noyaManager } = useAnyNoyaStateContext();
@@ -8528,18 +8535,30 @@ var UserPointersOverlay = (0, import_react_utils4.memoGeneric)(function UserPoin
8528
8535
  }));
8529
8536
  });
8530
8537
 
8531
- // src/WebSocketConnection.ts
8538
+ // src/useResourceUrl.ts
8532
8539
  var import_state_manager6 = require("@noya-app/state-manager");
8540
+ function useResourceUrl(idOrStableId) {
8541
+ const { noyaManager } = useAnyNoyaStateContext();
8542
+ const resources = useObservable(
8543
+ noyaManager.resourceManager.optimisticResources$
8544
+ );
8545
+ const assets = useObservable(noyaManager.assetManager.assets$);
8546
+ if (!idOrStableId) return void 0;
8547
+ return (0, import_state_manager6.getResourceUrl)(idOrStableId, resources, assets);
8548
+ }
8549
+
8550
+ // src/WebSocketConnection.ts
8551
+ var import_state_manager7 = require("@noya-app/state-manager");
8533
8552
  var WebSocketConnection = class {
8534
8553
  constructor(url, options = {}) {
8535
8554
  this.url = url;
8536
8555
  this.options = options;
8537
- this.ws = new import_state_manager6.ReconnectingWebSocket({
8556
+ this.ws = new import_state_manager7.ReconnectingWebSocket({
8538
8557
  debug: options.debug,
8539
8558
  onopen: this.handleOpen,
8540
8559
  onmessage: this.handleMessage,
8541
8560
  onclose: this.handleClose,
8542
- activityDetector: new import_state_manager6.UserActivityDetector()
8561
+ activityDetector: new import_state_manager7.UserActivityDetector()
8543
8562
  });
8544
8563
  }
8545
8564
  ws;
@@ -8664,11 +8683,13 @@ var WebSocketConnection = class {
8664
8683
  useNoyaUserManager,
8665
8684
  useNoyaUsers,
8666
8685
  useObservable,
8686
+ useOptionalAnyNoyaStateContext,
8667
8687
  useOutputTransforms,
8668
8688
  usePipelineManager,
8669
8689
  usePublish,
8670
8690
  useRegisterAITool,
8671
8691
  useResourceManager,
8692
+ useResourceUrl,
8672
8693
  useResources,
8673
8694
  useScriptEvaluator,
8674
8695
  useSecret,