@noya-app/noya-multiplayer-react 0.1.65 → 0.1.67

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
@@ -1,11 +1,11 @@
1
1
  import * as _noya_app_state_manager from '@noya-app/state-manager';
2
- import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, ResourceManager, StreamFilter, ActivityEventsManager, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
2
+ import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManagerOptions, StateManager, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, ResourceManager, StreamFilter, ActivityEventsManager, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
3
3
  export * from '@noya-app/state-manager';
4
4
  import React, { SetStateAction, ComponentProps, Dispatch } from 'react';
5
- import * as _noya_app_noya_schemas from '@noya-app/noya-schemas';
6
- import { Asset, Resource, MediaItem, ResourceMap, ResourceCreateMap, OutputTransform, Input } from '@noya-app/noya-schemas';
7
- import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
5
+ import { Asset, ResourceCreate, CreateResourceParametersWithoutAccessibleByFileId, ModifiedResource, ResourceCreateMap, ResourceMap, Resource, MediaItem, OutputTransform, Input } from '@noya-app/noya-schemas';
6
+ import { Root } from 'react-dom/client';
8
7
  import { MenuItem } from '@noya-app/noya-designsystem';
8
+ import { ObservableOptions, PathKey, GetAtPath, Observable } from '@noya-app/observable';
9
9
 
10
10
  declare function useRegisterAITool(tool: AIToolDefinition): void;
11
11
  declare function useCallableAITools(): _noya_app_state_manager.CallableAIToolsMap;
@@ -42,14 +42,39 @@ declare const StateInspector: <S, M extends object, E extends object, MenuT exte
42
42
  unstyled?: boolean;
43
43
  } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
44
44
 
45
- declare function useSyncStateManager<S, M>(stateManager: StateManager<S, M>): S;
46
- declare function useSyncStateManager<S, M, P extends string>(stateManager: StateManager<S, M>, path: P): GetAtPath<S, P>;
47
45
  declare function useManagedState<S, M = void>(createInitialState: () => S, options?: StateManagerOptions<S, M>): readonly [S, (...args: M extends {} ? [metadata: M, action: SetStateAction<S>] : [action: SetStateAction<S>]) => void, StateManager<S, M>];
48
46
  declare function useManagedHistory<S, M = void>(stateManager: StateManager<S, M>): _noya_app_state_manager.HistorySnapshot<S, M>;
49
47
  type UseMultiplayerStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = NoyaManagerOptions<S, M> & {
50
48
  sync?: SyncAdapter<S, M, E, MenuT>;
51
49
  inspector?: boolean | StateInspectorOptions;
52
50
  };
51
+ declare function useBindNoyaManager<S, M extends object = object, E extends object = object, MenuT extends string = string>(noyaManager: NoyaManager<S, M, E, MenuT>, options?: Pick<UseMultiplayerStateOptions<S, M, E, MenuT>, "inspector" | "sync">): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
52
+ noyaManager: typeof noyaManager;
53
+ taskManager: typeof noyaManager.taskManager;
54
+ connectionEventManager: typeof noyaManager.connectionEventManager;
55
+ connectedUsersManager: typeof noyaManager.connectedUsersManager;
56
+ ephemeralUserDataManager: typeof noyaManager.ephemeralUserDataManager;
57
+ multiplayerStateManager: typeof noyaManager.multiplayerStateManager;
58
+ assetManager: typeof noyaManager.assetManager;
59
+ aiManager: typeof noyaManager.aiManager;
60
+ rpcManager: typeof noyaManager.rpcManager;
61
+ pipelineManager: typeof noyaManager.pipelineManager;
62
+ secretManager: typeof noyaManager.secretManager;
63
+ menuItemsManager: typeof noyaManager.menuManager;
64
+ createAsset: typeof noyaManager.assetManager.create;
65
+ deleteAsset: typeof noyaManager.assetManager.delete;
66
+ assets: {
67
+ contentType?: string | undefined;
68
+ id: string;
69
+ createdAt: string;
70
+ stableId: string;
71
+ url: string;
72
+ size: number;
73
+ width: number | null;
74
+ height: number | null;
75
+ userId: string | null;
76
+ }[];
77
+ }];
53
78
  declare function useMultiplayerState<S, M extends object = object, E extends object = object, MenuT extends string = string>(initialState: S | (() => S), options?: UseMultiplayerStateOptions<S, M, E, MenuT>): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
54
79
  noyaManager: NoyaManager<S, M, E, MenuT>;
55
80
  taskManager: _noya_app_state_manager.TaskManager;
@@ -63,12 +88,13 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
63
88
  pipelineManager: _noya_app_state_manager.PipelineManager;
64
89
  secretManager: _noya_app_state_manager.SecretManager;
65
90
  menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
66
- createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
67
- deleteAsset: (id: string) => Promise<void>;
91
+ createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.NoyaAsset>;
92
+ deleteAsset: (id: string) => Promise<_noya_app_state_manager.NoyaAsset | undefined>;
68
93
  assets: {
69
94
  contentType?: string | undefined;
70
95
  id: string;
71
96
  createdAt: string;
97
+ stableId: string;
72
98
  url: string;
73
99
  size: number;
74
100
  width: number | null;
@@ -99,6 +125,10 @@ declare function decodeAll(buffer: Uint8Array | ArrayBuffer): {
99
125
  };
100
126
  declare function replaceDeep<T>(obj: T, replacementMap: Record<string, string>): T;
101
127
 
128
+ declare function createStateInspectorRoot(): {
129
+ root: Root;
130
+ unmount: () => void;
131
+ };
102
132
  declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, colorScheme, anchor, }: {
103
133
  noyaManager: NoyaManager<S, M, E, MenuT>;
104
134
  disabled: boolean;
@@ -125,13 +155,18 @@ type GetAppDataOptions = {
125
155
  declare function enforceSchema<State>(initialState: State, schema?: TSchema): State;
126
156
  declare function parseAppDataParameter(options?: GetAppDataOptions): AppData<unknown> | null;
127
157
  declare function getAppData<State>(initialState: State | (() => State), schema?: TSchema, options?: GetAppDataOptions): AppData<State>;
158
+ declare function getSyncAdapter<S, M extends object = object, E extends object = object, MenuT extends string = string>(params?: {
159
+ multiplayerUrl?: string;
160
+ offlineStorageKey?: string;
161
+ debug?: boolean;
162
+ }): SyncAdapter<S, M, E, MenuT>;
128
163
  type UseNoyaStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = UseMultiplayerStateOptions<S, M, E, MenuT> & {
129
164
  offlineStorageKey?: string;
130
165
  };
131
166
  type UseNoyaStateResult<S, M extends object = object, E extends object = object, MenuT extends string = string> = [
132
- ReturnType<typeof useMultiplayerState<S, M, E, MenuT>>[0],
133
- ReturnType<typeof useMultiplayerState<S, M, E, MenuT>>[1],
134
- ReturnType<typeof useMultiplayerState<S, M, E, MenuT>>[2] & {
167
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[0],
168
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[1],
169
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[2] & {
135
170
  theme: AppTheme;
136
171
  viewType: AppViewType;
137
172
  }
@@ -145,13 +180,25 @@ type UseNoyaStateResult<S, M extends object = object, E extends object = object,
145
180
  * 2. Pass an initial state and a schema: `useNoyaState(initialState, { schema })`
146
181
  * 3. Pass only a schema, and a conforming initial state is created automatically: `useNoyaState({ schema })`
147
182
  */
148
- declare function useNoyaState<S, M extends object = object, E extends object = object, MenuT extends string = string, O extends UseNoyaStateOptions<S, M, E, MenuT> = UseNoyaStateOptions<S, M, E, MenuT>>(...args: [
183
+ declare function useNoyaStateInternal<S, M extends object = object, E extends object = object, MenuT extends string = string, O extends UseNoyaStateOptions<S, M, E, MenuT> = UseNoyaStateOptions<S, M, E, MenuT>>(...args: [
149
184
  initialState: O["schema"] extends TSchema ? Static<O["schema"]> | (() => Static<O["schema"]>) : S | (() => S),
150
185
  options?: O
151
186
  ] | [options: O & {
152
187
  schema: TSchema;
153
188
  }]): UseNoyaStateResult<O["schema"] extends TSchema ? Static<O["schema"]> : S, M, E, MenuT>;
154
189
 
190
+ declare function resourceToCreateParameters(resource: ResourceCreate): CreateResourceParametersWithoutAccessibleByFileId;
191
+ type BuildCreateResourcePayloadParameters = {
192
+ addedResources: ResourceCreate[];
193
+ modifiedResources: ModifiedResource[];
194
+ newResourceMap: ResourceCreateMap;
195
+ resourceMap: ResourceMap;
196
+ };
197
+ type BuildCreateResourcePayloadResult = {
198
+ payload: CreateResourceParametersWithoutAccessibleByFileId[];
199
+ consumedModifiedResourceIds: string[];
200
+ };
201
+ declare function buildCreateResourcePayload({ addedResources, modifiedResources, newResourceMap, resourceMap, }: BuildCreateResourcePayloadParameters): BuildCreateResourcePayloadResult;
155
202
  interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT extends string> extends Omit<UseNoyaStateOptions<S, M, E, MenuT>, "schema" | "mergeHistoryEntries"> {
156
203
  children: React.ReactNode;
157
204
  initialState?: S;
@@ -171,6 +218,7 @@ declare function useAssets(): {
171
218
  contentType?: string | undefined;
172
219
  id: string;
173
220
  createdAt: string;
221
+ stableId: string;
174
222
  url: string;
175
223
  size: number;
176
224
  width: number | null;
@@ -181,6 +229,7 @@ declare function useAsset(id: string | undefined): {
181
229
  contentType?: string | undefined;
182
230
  id: string;
183
231
  createdAt: string;
232
+ stableId: string;
184
233
  url: string;
185
234
  size: number;
186
235
  width: number | null;
@@ -188,8 +237,8 @@ declare function useAsset(id: string | undefined): {
188
237
  userId: string | null;
189
238
  } | undefined;
190
239
  declare function useAssetManager(): {
191
- create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
192
- delete: (id: string) => Promise<void>;
240
+ create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.NoyaAsset>;
241
+ delete: (id: string) => Promise<_noya_app_state_manager.NoyaAsset | undefined>;
193
242
  isInitialized: boolean;
194
243
  };
195
244
  declare function useAIManager(): _noya_app_state_manager.AIManager;
@@ -199,14 +248,15 @@ declare function useSecret(name: string): _noya_app_state_manager.Secret | undef
199
248
  declare function useInputs(): ({
200
249
  id: string;
201
250
  name: string;
251
+ stableId: string;
202
252
  kind: "file";
203
253
  required: boolean;
204
254
  toolId: string | null;
205
- stableId: string;
206
255
  description: string | null;
207
256
  } | {
208
257
  id: string;
209
258
  name: string;
259
+ stableId: string;
210
260
  schema: {
211
261
  default?: string | undefined;
212
262
  type: "string";
@@ -296,44 +346,44 @@ declare function useInputs(): ({
296
346
  } | null;
297
347
  kind: "data";
298
348
  required: boolean;
299
- stableId: string;
300
349
  description: string | null;
301
350
  } | {
302
351
  authProvider?: "github" | "figma" | null | undefined;
303
352
  authScope?: string | null | undefined;
304
353
  id: string;
305
354
  name: string;
355
+ stableId: string;
306
356
  kind: "secret";
307
357
  required: boolean;
308
- stableId: string;
309
358
  description: string | null;
310
359
  })[];
311
360
  declare function useOutputTransforms(): ({
312
361
  value: string;
313
362
  id: string;
314
- kind: "script";
315
363
  stableId: string;
364
+ kind: "script";
316
365
  location: "url" | "state";
317
366
  order: number;
318
367
  } | {
319
368
  value: string;
320
369
  id: string;
321
- kind: "jsonPointer";
322
370
  stableId: string;
371
+ kind: "jsonPointer";
323
372
  order: number;
324
373
  })[];
325
374
  declare function useIOManager(): _noya_app_state_manager.IOManager;
326
375
  declare function usePublish(callback: PublishCallback): void;
327
376
  declare function useIsInitialized(): boolean;
328
377
  declare function usePipelineManager(): _noya_app_state_manager.PipelineManager;
329
- declare const ConnectedUsersContext: React.Context<ConnectedUsersManager | undefined>;
330
- declare function useConnectedUsersManager(): ConnectedUsersManager | undefined;
331
- declare function useConnectedUsers(): _noya_app_state_manager.MultiplayerUser[] | undefined;
378
+ declare function useConnectedUsersManager(): _noya_app_state_manager.ConnectedUsersManager;
379
+ declare function useConnectedUsers(): _noya_app_state_manager.MultiplayerUser[];
332
380
  declare function useConnectedUser(userId?: string | null): _noya_app_state_manager.MultiplayerUser | undefined;
333
- declare const AnyEphemeralUserDataManagerContext: React.Context<EphemeralUserDataManager<object> | undefined>;
334
- declare function useAnyEphemeralUserData(): EphemeralUserDataManager<object> | undefined;
381
+ declare function useAnyEphemeralUserData(): EphemeralUserDataManager<any>;
335
382
  declare function useCurrentUserId(): string | undefined;
336
383
  declare function useIsProcessing(): boolean;
384
+ declare function useFileName(): string | undefined;
385
+ declare function useFilePropertyManager(): _noya_app_state_manager.FilePropertyManager;
386
+ declare function useSetFileNameState(): readonly [string | undefined, (name: string) => Promise<string>];
337
387
  declare function useResourceManager(): ResourceManager;
338
388
  declare function resourceToMediaItem(resource: Resource): MediaItem;
339
389
  declare function useResources({ shouldDeleteAssets, }?: {
@@ -388,6 +438,26 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
388
438
  }) => void;
389
439
  };
390
440
 
441
+ type AnyNoyaSingletonBindings = {
442
+ sync?: SyncAdapter<any, any, any, any>;
443
+ inspector?: boolean | StateInspectorOptions;
444
+ theme: AppTheme;
445
+ viewType: AppViewType;
446
+ };
447
+ type AnyNoyaSingletonOptions<S, M extends object, E extends object, MenuT extends string> = NoyaManagerOptions<S, M> & {
448
+ initialState?: S | (() => S);
449
+ sync?: SyncAdapter<S, M, E, MenuT>;
450
+ inspector?: boolean | StateInspectorOptions;
451
+ theme?: AppTheme;
452
+ viewType?: AppViewType;
453
+ offlineStorageKey?: string;
454
+ multiplayerUrl?: string;
455
+ };
456
+ declare function initializeNoyaSingleton<S, M extends object, E extends object, MenuT extends string>(options?: AnyNoyaSingletonOptions<S, M, E, MenuT>): void;
457
+ declare function getNoyaManagerSingleton(): NoyaManager<any, any, any, any>;
458
+ declare function getNoyaSingletonBindings(): AnyNoyaSingletonBindings | undefined;
459
+ declare function deleteNoyaSingleton(): void;
460
+
391
461
  declare function useObservable<T>(observable: Observable<T>): T;
392
462
  declare function useObservable<T, A>(observable: Observable<T>, selector: (value: T) => A, options?: Pick<ObservableOptions, "isEqual">): A;
393
463
  declare function useObservable<T, P extends PathKey[] | string>(observable: Observable<T>, path: P): GetAtPath<T, P>;
@@ -428,4 +498,4 @@ declare class WebSocketConnection<State> {
428
498
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
429
499
  }
430
500
 
431
- export { AnyEphemeralUserDataManagerContext, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, 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, createDefaultAppData, createNoyaContext, decodeAll, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, importAll, parseAppDataParameter, replaceDeep, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
501
+ 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, buildCreateResourcePayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useConnectedUsersManager, useCurrentUserId, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaStateInternal, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useViewType };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as _noya_app_state_manager from '@noya-app/state-manager';
2
- import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, ResourceManager, StreamFilter, ActivityEventsManager, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
2
+ import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManagerOptions, StateManager, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, ResourceManager, StreamFilter, ActivityEventsManager, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
3
3
  export * from '@noya-app/state-manager';
4
4
  import React, { SetStateAction, ComponentProps, Dispatch } from 'react';
5
- import * as _noya_app_noya_schemas from '@noya-app/noya-schemas';
6
- import { Asset, Resource, MediaItem, ResourceMap, ResourceCreateMap, OutputTransform, Input } from '@noya-app/noya-schemas';
7
- import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
5
+ import { Asset, ResourceCreate, CreateResourceParametersWithoutAccessibleByFileId, ModifiedResource, ResourceCreateMap, ResourceMap, Resource, MediaItem, OutputTransform, Input } from '@noya-app/noya-schemas';
6
+ import { Root } from 'react-dom/client';
8
7
  import { MenuItem } from '@noya-app/noya-designsystem';
8
+ import { ObservableOptions, PathKey, GetAtPath, Observable } from '@noya-app/observable';
9
9
 
10
10
  declare function useRegisterAITool(tool: AIToolDefinition): void;
11
11
  declare function useCallableAITools(): _noya_app_state_manager.CallableAIToolsMap;
@@ -42,14 +42,39 @@ declare const StateInspector: <S, M extends object, E extends object, MenuT exte
42
42
  unstyled?: boolean;
43
43
  } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
44
44
 
45
- declare function useSyncStateManager<S, M>(stateManager: StateManager<S, M>): S;
46
- declare function useSyncStateManager<S, M, P extends string>(stateManager: StateManager<S, M>, path: P): GetAtPath<S, P>;
47
45
  declare function useManagedState<S, M = void>(createInitialState: () => S, options?: StateManagerOptions<S, M>): readonly [S, (...args: M extends {} ? [metadata: M, action: SetStateAction<S>] : [action: SetStateAction<S>]) => void, StateManager<S, M>];
48
46
  declare function useManagedHistory<S, M = void>(stateManager: StateManager<S, M>): _noya_app_state_manager.HistorySnapshot<S, M>;
49
47
  type UseMultiplayerStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = NoyaManagerOptions<S, M> & {
50
48
  sync?: SyncAdapter<S, M, E, MenuT>;
51
49
  inspector?: boolean | StateInspectorOptions;
52
50
  };
51
+ declare function useBindNoyaManager<S, M extends object = object, E extends object = object, MenuT extends string = string>(noyaManager: NoyaManager<S, M, E, MenuT>, options?: Pick<UseMultiplayerStateOptions<S, M, E, MenuT>, "inspector" | "sync">): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
52
+ noyaManager: typeof noyaManager;
53
+ taskManager: typeof noyaManager.taskManager;
54
+ connectionEventManager: typeof noyaManager.connectionEventManager;
55
+ connectedUsersManager: typeof noyaManager.connectedUsersManager;
56
+ ephemeralUserDataManager: typeof noyaManager.ephemeralUserDataManager;
57
+ multiplayerStateManager: typeof noyaManager.multiplayerStateManager;
58
+ assetManager: typeof noyaManager.assetManager;
59
+ aiManager: typeof noyaManager.aiManager;
60
+ rpcManager: typeof noyaManager.rpcManager;
61
+ pipelineManager: typeof noyaManager.pipelineManager;
62
+ secretManager: typeof noyaManager.secretManager;
63
+ menuItemsManager: typeof noyaManager.menuManager;
64
+ createAsset: typeof noyaManager.assetManager.create;
65
+ deleteAsset: typeof noyaManager.assetManager.delete;
66
+ assets: {
67
+ contentType?: string | undefined;
68
+ id: string;
69
+ createdAt: string;
70
+ stableId: string;
71
+ url: string;
72
+ size: number;
73
+ width: number | null;
74
+ height: number | null;
75
+ userId: string | null;
76
+ }[];
77
+ }];
53
78
  declare function useMultiplayerState<S, M extends object = object, E extends object = object, MenuT extends string = string>(initialState: S | (() => S), options?: UseMultiplayerStateOptions<S, M, E, MenuT>): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
54
79
  noyaManager: NoyaManager<S, M, E, MenuT>;
55
80
  taskManager: _noya_app_state_manager.TaskManager;
@@ -63,12 +88,13 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
63
88
  pipelineManager: _noya_app_state_manager.PipelineManager;
64
89
  secretManager: _noya_app_state_manager.SecretManager;
65
90
  menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
66
- createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
67
- deleteAsset: (id: string) => Promise<void>;
91
+ createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.NoyaAsset>;
92
+ deleteAsset: (id: string) => Promise<_noya_app_state_manager.NoyaAsset | undefined>;
68
93
  assets: {
69
94
  contentType?: string | undefined;
70
95
  id: string;
71
96
  createdAt: string;
97
+ stableId: string;
72
98
  url: string;
73
99
  size: number;
74
100
  width: number | null;
@@ -99,6 +125,10 @@ declare function decodeAll(buffer: Uint8Array | ArrayBuffer): {
99
125
  };
100
126
  declare function replaceDeep<T>(obj: T, replacementMap: Record<string, string>): T;
101
127
 
128
+ declare function createStateInspectorRoot(): {
129
+ root: Root;
130
+ unmount: () => void;
131
+ };
102
132
  declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, colorScheme, anchor, }: {
103
133
  noyaManager: NoyaManager<S, M, E, MenuT>;
104
134
  disabled: boolean;
@@ -125,13 +155,18 @@ type GetAppDataOptions = {
125
155
  declare function enforceSchema<State>(initialState: State, schema?: TSchema): State;
126
156
  declare function parseAppDataParameter(options?: GetAppDataOptions): AppData<unknown> | null;
127
157
  declare function getAppData<State>(initialState: State | (() => State), schema?: TSchema, options?: GetAppDataOptions): AppData<State>;
158
+ declare function getSyncAdapter<S, M extends object = object, E extends object = object, MenuT extends string = string>(params?: {
159
+ multiplayerUrl?: string;
160
+ offlineStorageKey?: string;
161
+ debug?: boolean;
162
+ }): SyncAdapter<S, M, E, MenuT>;
128
163
  type UseNoyaStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = UseMultiplayerStateOptions<S, M, E, MenuT> & {
129
164
  offlineStorageKey?: string;
130
165
  };
131
166
  type UseNoyaStateResult<S, M extends object = object, E extends object = object, MenuT extends string = string> = [
132
- ReturnType<typeof useMultiplayerState<S, M, E, MenuT>>[0],
133
- ReturnType<typeof useMultiplayerState<S, M, E, MenuT>>[1],
134
- ReturnType<typeof useMultiplayerState<S, M, E, MenuT>>[2] & {
167
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[0],
168
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[1],
169
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[2] & {
135
170
  theme: AppTheme;
136
171
  viewType: AppViewType;
137
172
  }
@@ -145,13 +180,25 @@ type UseNoyaStateResult<S, M extends object = object, E extends object = object,
145
180
  * 2. Pass an initial state and a schema: `useNoyaState(initialState, { schema })`
146
181
  * 3. Pass only a schema, and a conforming initial state is created automatically: `useNoyaState({ schema })`
147
182
  */
148
- declare function useNoyaState<S, M extends object = object, E extends object = object, MenuT extends string = string, O extends UseNoyaStateOptions<S, M, E, MenuT> = UseNoyaStateOptions<S, M, E, MenuT>>(...args: [
183
+ declare function useNoyaStateInternal<S, M extends object = object, E extends object = object, MenuT extends string = string, O extends UseNoyaStateOptions<S, M, E, MenuT> = UseNoyaStateOptions<S, M, E, MenuT>>(...args: [
149
184
  initialState: O["schema"] extends TSchema ? Static<O["schema"]> | (() => Static<O["schema"]>) : S | (() => S),
150
185
  options?: O
151
186
  ] | [options: O & {
152
187
  schema: TSchema;
153
188
  }]): UseNoyaStateResult<O["schema"] extends TSchema ? Static<O["schema"]> : S, M, E, MenuT>;
154
189
 
190
+ declare function resourceToCreateParameters(resource: ResourceCreate): CreateResourceParametersWithoutAccessibleByFileId;
191
+ type BuildCreateResourcePayloadParameters = {
192
+ addedResources: ResourceCreate[];
193
+ modifiedResources: ModifiedResource[];
194
+ newResourceMap: ResourceCreateMap;
195
+ resourceMap: ResourceMap;
196
+ };
197
+ type BuildCreateResourcePayloadResult = {
198
+ payload: CreateResourceParametersWithoutAccessibleByFileId[];
199
+ consumedModifiedResourceIds: string[];
200
+ };
201
+ declare function buildCreateResourcePayload({ addedResources, modifiedResources, newResourceMap, resourceMap, }: BuildCreateResourcePayloadParameters): BuildCreateResourcePayloadResult;
155
202
  interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT extends string> extends Omit<UseNoyaStateOptions<S, M, E, MenuT>, "schema" | "mergeHistoryEntries"> {
156
203
  children: React.ReactNode;
157
204
  initialState?: S;
@@ -171,6 +218,7 @@ declare function useAssets(): {
171
218
  contentType?: string | undefined;
172
219
  id: string;
173
220
  createdAt: string;
221
+ stableId: string;
174
222
  url: string;
175
223
  size: number;
176
224
  width: number | null;
@@ -181,6 +229,7 @@ declare function useAsset(id: string | undefined): {
181
229
  contentType?: string | undefined;
182
230
  id: string;
183
231
  createdAt: string;
232
+ stableId: string;
184
233
  url: string;
185
234
  size: number;
186
235
  width: number | null;
@@ -188,8 +237,8 @@ declare function useAsset(id: string | undefined): {
188
237
  userId: string | null;
189
238
  } | undefined;
190
239
  declare function useAssetManager(): {
191
- create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
192
- delete: (id: string) => Promise<void>;
240
+ create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.NoyaAsset>;
241
+ delete: (id: string) => Promise<_noya_app_state_manager.NoyaAsset | undefined>;
193
242
  isInitialized: boolean;
194
243
  };
195
244
  declare function useAIManager(): _noya_app_state_manager.AIManager;
@@ -199,14 +248,15 @@ declare function useSecret(name: string): _noya_app_state_manager.Secret | undef
199
248
  declare function useInputs(): ({
200
249
  id: string;
201
250
  name: string;
251
+ stableId: string;
202
252
  kind: "file";
203
253
  required: boolean;
204
254
  toolId: string | null;
205
- stableId: string;
206
255
  description: string | null;
207
256
  } | {
208
257
  id: string;
209
258
  name: string;
259
+ stableId: string;
210
260
  schema: {
211
261
  default?: string | undefined;
212
262
  type: "string";
@@ -296,44 +346,44 @@ declare function useInputs(): ({
296
346
  } | null;
297
347
  kind: "data";
298
348
  required: boolean;
299
- stableId: string;
300
349
  description: string | null;
301
350
  } | {
302
351
  authProvider?: "github" | "figma" | null | undefined;
303
352
  authScope?: string | null | undefined;
304
353
  id: string;
305
354
  name: string;
355
+ stableId: string;
306
356
  kind: "secret";
307
357
  required: boolean;
308
- stableId: string;
309
358
  description: string | null;
310
359
  })[];
311
360
  declare function useOutputTransforms(): ({
312
361
  value: string;
313
362
  id: string;
314
- kind: "script";
315
363
  stableId: string;
364
+ kind: "script";
316
365
  location: "url" | "state";
317
366
  order: number;
318
367
  } | {
319
368
  value: string;
320
369
  id: string;
321
- kind: "jsonPointer";
322
370
  stableId: string;
371
+ kind: "jsonPointer";
323
372
  order: number;
324
373
  })[];
325
374
  declare function useIOManager(): _noya_app_state_manager.IOManager;
326
375
  declare function usePublish(callback: PublishCallback): void;
327
376
  declare function useIsInitialized(): boolean;
328
377
  declare function usePipelineManager(): _noya_app_state_manager.PipelineManager;
329
- declare const ConnectedUsersContext: React.Context<ConnectedUsersManager | undefined>;
330
- declare function useConnectedUsersManager(): ConnectedUsersManager | undefined;
331
- declare function useConnectedUsers(): _noya_app_state_manager.MultiplayerUser[] | undefined;
378
+ declare function useConnectedUsersManager(): _noya_app_state_manager.ConnectedUsersManager;
379
+ declare function useConnectedUsers(): _noya_app_state_manager.MultiplayerUser[];
332
380
  declare function useConnectedUser(userId?: string | null): _noya_app_state_manager.MultiplayerUser | undefined;
333
- declare const AnyEphemeralUserDataManagerContext: React.Context<EphemeralUserDataManager<object> | undefined>;
334
- declare function useAnyEphemeralUserData(): EphemeralUserDataManager<object> | undefined;
381
+ declare function useAnyEphemeralUserData(): EphemeralUserDataManager<any>;
335
382
  declare function useCurrentUserId(): string | undefined;
336
383
  declare function useIsProcessing(): boolean;
384
+ declare function useFileName(): string | undefined;
385
+ declare function useFilePropertyManager(): _noya_app_state_manager.FilePropertyManager;
386
+ declare function useSetFileNameState(): readonly [string | undefined, (name: string) => Promise<string>];
337
387
  declare function useResourceManager(): ResourceManager;
338
388
  declare function resourceToMediaItem(resource: Resource): MediaItem;
339
389
  declare function useResources({ shouldDeleteAssets, }?: {
@@ -388,6 +438,26 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
388
438
  }) => void;
389
439
  };
390
440
 
441
+ type AnyNoyaSingletonBindings = {
442
+ sync?: SyncAdapter<any, any, any, any>;
443
+ inspector?: boolean | StateInspectorOptions;
444
+ theme: AppTheme;
445
+ viewType: AppViewType;
446
+ };
447
+ type AnyNoyaSingletonOptions<S, M extends object, E extends object, MenuT extends string> = NoyaManagerOptions<S, M> & {
448
+ initialState?: S | (() => S);
449
+ sync?: SyncAdapter<S, M, E, MenuT>;
450
+ inspector?: boolean | StateInspectorOptions;
451
+ theme?: AppTheme;
452
+ viewType?: AppViewType;
453
+ offlineStorageKey?: string;
454
+ multiplayerUrl?: string;
455
+ };
456
+ declare function initializeNoyaSingleton<S, M extends object, E extends object, MenuT extends string>(options?: AnyNoyaSingletonOptions<S, M, E, MenuT>): void;
457
+ declare function getNoyaManagerSingleton(): NoyaManager<any, any, any, any>;
458
+ declare function getNoyaSingletonBindings(): AnyNoyaSingletonBindings | undefined;
459
+ declare function deleteNoyaSingleton(): void;
460
+
391
461
  declare function useObservable<T>(observable: Observable<T>): T;
392
462
  declare function useObservable<T, A>(observable: Observable<T>, selector: (value: T) => A, options?: Pick<ObservableOptions, "isEqual">): A;
393
463
  declare function useObservable<T, P extends PathKey[] | string>(observable: Observable<T>, path: P): GetAtPath<T, P>;
@@ -428,4 +498,4 @@ declare class WebSocketConnection<State> {
428
498
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
429
499
  }
430
500
 
431
- export { AnyEphemeralUserDataManagerContext, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, 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, createDefaultAppData, createNoyaContext, decodeAll, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, importAll, parseAppDataParameter, replaceDeep, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
501
+ 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, buildCreateResourcePayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useConnectedUsersManager, useCurrentUserId, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaStateInternal, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useViewType };