@noya-app/noya-multiplayer-react 0.1.62 → 0.1.63
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 +10 -0
- package/dist/index.bundle.js +50 -17
- package/dist/index.d.mts +62 -22
- package/dist/index.d.ts +62 -22
- package/dist/index.js +1352 -585
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1350 -593
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/NoyaStateContext.tsx +23 -9
- package/src/__tests__/serialize.test.ts +126 -0
- package/src/ai.ts +2 -0
- package/src/index.ts +1 -0
- package/src/inspector/ColoredDot.tsx +17 -0
- package/src/inspector/ObjectRootLabel.tsx +48 -0
- package/src/inspector/StateInspector.tsx +125 -721
- package/src/inspector/StateInspectorArrow.tsx +28 -0
- package/src/inspector/StateInspectorButton.tsx +45 -0
- package/src/inspector/StateInspectorDisclosureSection.tsx +97 -0
- package/src/inspector/StateInspectorRow.tsx +57 -0
- package/src/inspector/StateInspectorToggleButton.tsx +82 -0
- package/src/inspector/inspectorTheme.ts +21 -0
- package/src/inspector/sections/EventsSection.tsx +89 -0
- package/src/inspector/sections/HistorySection.tsx +236 -0
- package/src/inspector/serialization.ts +202 -0
- package/src/inspector/utils.ts +60 -0
- package/src/inspector/zip/TinyZip.ts +464 -0
- package/src/inspector/zip/crc32.ts +16 -0
- package/src/inspector/zip/struct.ts +117 -0
- package/src/noyaApp.ts +2 -1
- package/src/useObservable.ts +2 -0
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
|
|
2
|
+
import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, 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 } from 'react';
|
|
5
5
|
import * as _noya_app_noya_schemas from '@noya-app/noya-schemas';
|
|
6
|
-
import { OutputTransform, Input } from '@noya-app/noya-schemas';
|
|
6
|
+
import { Asset, OutputTransform, Input } from '@noya-app/noya-schemas';
|
|
7
7
|
import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
|
|
8
8
|
import { MenuItem } from '@noya-app/noya-designsystem';
|
|
9
9
|
|
|
@@ -30,7 +30,7 @@ type UserPointersOverlayProps<E extends UserPointerData> = {
|
|
|
30
30
|
connectedUsersManager: ConnectedUsersManager;
|
|
31
31
|
ephemeralUserDataManager: EphemeralUserDataManager<E>;
|
|
32
32
|
} & RenderUserPointer;
|
|
33
|
-
declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement | null;
|
|
33
|
+
declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement<any> | null;
|
|
34
34
|
|
|
35
35
|
type StateInspectorAnchor = "left" | "right" | "bottom left" | "bottom right";
|
|
36
36
|
type StateInspectorOptions = {
|
|
@@ -40,7 +40,7 @@ type StateInspectorOptions = {
|
|
|
40
40
|
declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string>(props: {
|
|
41
41
|
noyaManager: NoyaManager<S, M, E, MenuT>;
|
|
42
42
|
unstyled?: boolean;
|
|
43
|
-
} & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement | null;
|
|
43
|
+
} & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
|
|
44
44
|
|
|
45
45
|
declare function useSyncStateManager<S, M>(stateManager: StateManager<S, M>): S;
|
|
46
46
|
declare function useSyncStateManager<S, M, P extends string>(stateManager: StateManager<S, M>, path: P): GetAtPath<S, P>;
|
|
@@ -65,9 +65,37 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
|
|
|
65
65
|
menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
|
|
66
66
|
createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
|
|
67
67
|
deleteAsset: (id: string) => Promise<void>;
|
|
68
|
-
assets:
|
|
68
|
+
assets: {
|
|
69
|
+
contentType?: string | undefined;
|
|
70
|
+
id: string;
|
|
71
|
+
url: string;
|
|
72
|
+
createdAt: string;
|
|
73
|
+
size: number;
|
|
74
|
+
}[];
|
|
69
75
|
}];
|
|
70
76
|
|
|
77
|
+
declare function fetchAssetMap(assets: Asset[]): Promise<Record<string, Uint8Array>>;
|
|
78
|
+
declare function exportAll(noyaManager: NoyaManager<any, any, any, any>): Promise<Uint8Array>;
|
|
79
|
+
declare function encodeAll({ state, schema, assets, assetMap, }: {
|
|
80
|
+
state: unknown;
|
|
81
|
+
schema?: TSchema;
|
|
82
|
+
assets: Asset[];
|
|
83
|
+
assetMap: Record<string, Uint8Array>;
|
|
84
|
+
}): Uint8Array;
|
|
85
|
+
declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any>, { shouldAllowSchemaChange, }?: {
|
|
86
|
+
shouldAllowSchemaChange?: ({ oldSchema, newSchema, }: {
|
|
87
|
+
oldSchema: TSchema;
|
|
88
|
+
newSchema: TSchema;
|
|
89
|
+
}) => boolean;
|
|
90
|
+
}): Promise<void>;
|
|
91
|
+
declare function decodeAll(buffer: Uint8Array | ArrayBuffer): {
|
|
92
|
+
state: unknown;
|
|
93
|
+
schema?: TSchema;
|
|
94
|
+
assets: Asset[];
|
|
95
|
+
assetMap: Record<string, Uint8Array>;
|
|
96
|
+
};
|
|
97
|
+
declare function replaceDeep<T>(obj: T, replacementMap: Record<string, string>): T;
|
|
98
|
+
|
|
71
99
|
declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, colorScheme, anchor, }: {
|
|
72
100
|
noyaManager: NoyaManager<S, M, E, MenuT>;
|
|
73
101
|
disabled: boolean;
|
|
@@ -136,8 +164,20 @@ declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
|
|
|
136
164
|
declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
|
|
137
165
|
declare function useColorScheme(): AppTheme;
|
|
138
166
|
declare function useViewType(): AppViewType;
|
|
139
|
-
declare function useAssets():
|
|
140
|
-
|
|
167
|
+
declare function useAssets(): {
|
|
168
|
+
contentType?: string | undefined;
|
|
169
|
+
id: string;
|
|
170
|
+
url: string;
|
|
171
|
+
createdAt: string;
|
|
172
|
+
size: number;
|
|
173
|
+
}[];
|
|
174
|
+
declare function useAsset(id: string | undefined): {
|
|
175
|
+
contentType?: string | undefined;
|
|
176
|
+
id: string;
|
|
177
|
+
url: string;
|
|
178
|
+
createdAt: string;
|
|
179
|
+
size: number;
|
|
180
|
+
} | undefined;
|
|
141
181
|
declare function useAssetManager(): {
|
|
142
182
|
create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
|
|
143
183
|
delete: (id: string) => Promise<void>;
|
|
@@ -157,11 +197,6 @@ declare function useInputs(): ({
|
|
|
157
197
|
description: string | null;
|
|
158
198
|
} | {
|
|
159
199
|
id: string;
|
|
160
|
-
kind: "data";
|
|
161
|
-
name: string;
|
|
162
|
-
required: boolean;
|
|
163
|
-
stableId: string;
|
|
164
|
-
description: string | null;
|
|
165
200
|
schema: {
|
|
166
201
|
default?: string | undefined;
|
|
167
202
|
type: "string";
|
|
@@ -249,6 +284,11 @@ declare function useInputs(): ({
|
|
|
249
284
|
};
|
|
250
285
|
_kind: "Object";
|
|
251
286
|
} | null;
|
|
287
|
+
kind: "data";
|
|
288
|
+
name: string;
|
|
289
|
+
required: boolean;
|
|
290
|
+
stableId: string;
|
|
291
|
+
description: string | null;
|
|
252
292
|
} | {
|
|
253
293
|
authProvider?: "github" | "figma" | null | undefined;
|
|
254
294
|
authScope?: string | null | undefined;
|
|
@@ -264,7 +304,7 @@ declare function useOutputTransforms(): ({
|
|
|
264
304
|
id: string;
|
|
265
305
|
kind: "script";
|
|
266
306
|
stableId: string;
|
|
267
|
-
location: "
|
|
307
|
+
location: "url" | "state";
|
|
268
308
|
order: number;
|
|
269
309
|
} | {
|
|
270
310
|
value: string;
|
|
@@ -288,7 +328,7 @@ declare const FallbackUntilInitialized: ({ children, fallback, }: {
|
|
|
288
328
|
}) => React.ReactNode;
|
|
289
329
|
declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
|
|
290
330
|
schema: Schema;
|
|
291
|
-
mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M
|
|
331
|
+
mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>["mergeHistoryEntries"];
|
|
292
332
|
safeEval?: SafeEval;
|
|
293
333
|
outputTransforms?: CreateParams<OutputTransform>[];
|
|
294
334
|
inputs?: CreateParams<Input>[];
|
|
@@ -301,15 +341,15 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
|
|
|
301
341
|
<P extends PathKey[] | string>(path: P): GetAtPath<Static<Schema>, P>;
|
|
302
342
|
};
|
|
303
343
|
useSetValue: {
|
|
304
|
-
(): (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
|
|
305
|
-
<P extends PathKey[] | string>(path: P): (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
|
|
344
|
+
(): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
|
|
345
|
+
<P extends PathKey[] | string>(path: P): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
|
|
306
346
|
};
|
|
307
347
|
useValueState: {
|
|
308
|
-
(): [Static<Schema>, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
309
|
-
<A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
310
|
-
<P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
|
|
348
|
+
(): [Static<Schema>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
349
|
+
<A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
350
|
+
<P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
|
|
311
351
|
};
|
|
312
|
-
useStateManager: () => MultiplayerStateManager<Static<Schema>, M
|
|
352
|
+
useStateManager: () => MultiplayerStateManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>>;
|
|
313
353
|
useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
|
|
314
354
|
useLeftMenuItems: () => MenuItem<MenuT>[];
|
|
315
355
|
useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
|
|
@@ -317,7 +357,7 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
|
|
|
317
357
|
useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
|
|
318
358
|
useHandleMenuItem: (callback: (type: MenuT) => void) => void;
|
|
319
359
|
useOnSelectMenuItemCallback: () => (type: MenuT) => void;
|
|
320
|
-
useNoyaManager: () => NoyaManager<Static<Schema>, M, E, MenuT>;
|
|
360
|
+
useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT>;
|
|
321
361
|
useMenu: (options: {
|
|
322
362
|
leftMenuItems?: MenuItem<MenuT>[];
|
|
323
363
|
rightMenuItems?: MenuItem<MenuT>[];
|
|
@@ -365,4 +405,4 @@ declare class WebSocketConnection<State> {
|
|
|
365
405
|
removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
|
|
366
406
|
}
|
|
367
407
|
|
|
368
|
-
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, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
|
|
408
|
+
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, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
|
|
2
|
+
import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, 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 } from 'react';
|
|
5
5
|
import * as _noya_app_noya_schemas from '@noya-app/noya-schemas';
|
|
6
|
-
import { OutputTransform, Input } from '@noya-app/noya-schemas';
|
|
6
|
+
import { Asset, OutputTransform, Input } from '@noya-app/noya-schemas';
|
|
7
7
|
import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
|
|
8
8
|
import { MenuItem } from '@noya-app/noya-designsystem';
|
|
9
9
|
|
|
@@ -30,7 +30,7 @@ type UserPointersOverlayProps<E extends UserPointerData> = {
|
|
|
30
30
|
connectedUsersManager: ConnectedUsersManager;
|
|
31
31
|
ephemeralUserDataManager: EphemeralUserDataManager<E>;
|
|
32
32
|
} & RenderUserPointer;
|
|
33
|
-
declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement | null;
|
|
33
|
+
declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement<any> | null;
|
|
34
34
|
|
|
35
35
|
type StateInspectorAnchor = "left" | "right" | "bottom left" | "bottom right";
|
|
36
36
|
type StateInspectorOptions = {
|
|
@@ -40,7 +40,7 @@ type StateInspectorOptions = {
|
|
|
40
40
|
declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string>(props: {
|
|
41
41
|
noyaManager: NoyaManager<S, M, E, MenuT>;
|
|
42
42
|
unstyled?: boolean;
|
|
43
|
-
} & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement | null;
|
|
43
|
+
} & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
|
|
44
44
|
|
|
45
45
|
declare function useSyncStateManager<S, M>(stateManager: StateManager<S, M>): S;
|
|
46
46
|
declare function useSyncStateManager<S, M, P extends string>(stateManager: StateManager<S, M>, path: P): GetAtPath<S, P>;
|
|
@@ -65,9 +65,37 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
|
|
|
65
65
|
menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
|
|
66
66
|
createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
|
|
67
67
|
deleteAsset: (id: string) => Promise<void>;
|
|
68
|
-
assets:
|
|
68
|
+
assets: {
|
|
69
|
+
contentType?: string | undefined;
|
|
70
|
+
id: string;
|
|
71
|
+
url: string;
|
|
72
|
+
createdAt: string;
|
|
73
|
+
size: number;
|
|
74
|
+
}[];
|
|
69
75
|
}];
|
|
70
76
|
|
|
77
|
+
declare function fetchAssetMap(assets: Asset[]): Promise<Record<string, Uint8Array>>;
|
|
78
|
+
declare function exportAll(noyaManager: NoyaManager<any, any, any, any>): Promise<Uint8Array>;
|
|
79
|
+
declare function encodeAll({ state, schema, assets, assetMap, }: {
|
|
80
|
+
state: unknown;
|
|
81
|
+
schema?: TSchema;
|
|
82
|
+
assets: Asset[];
|
|
83
|
+
assetMap: Record<string, Uint8Array>;
|
|
84
|
+
}): Uint8Array;
|
|
85
|
+
declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any>, { shouldAllowSchemaChange, }?: {
|
|
86
|
+
shouldAllowSchemaChange?: ({ oldSchema, newSchema, }: {
|
|
87
|
+
oldSchema: TSchema;
|
|
88
|
+
newSchema: TSchema;
|
|
89
|
+
}) => boolean;
|
|
90
|
+
}): Promise<void>;
|
|
91
|
+
declare function decodeAll(buffer: Uint8Array | ArrayBuffer): {
|
|
92
|
+
state: unknown;
|
|
93
|
+
schema?: TSchema;
|
|
94
|
+
assets: Asset[];
|
|
95
|
+
assetMap: Record<string, Uint8Array>;
|
|
96
|
+
};
|
|
97
|
+
declare function replaceDeep<T>(obj: T, replacementMap: Record<string, string>): T;
|
|
98
|
+
|
|
71
99
|
declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, colorScheme, anchor, }: {
|
|
72
100
|
noyaManager: NoyaManager<S, M, E, MenuT>;
|
|
73
101
|
disabled: boolean;
|
|
@@ -136,8 +164,20 @@ declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
|
|
|
136
164
|
declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
|
|
137
165
|
declare function useColorScheme(): AppTheme;
|
|
138
166
|
declare function useViewType(): AppViewType;
|
|
139
|
-
declare function useAssets():
|
|
140
|
-
|
|
167
|
+
declare function useAssets(): {
|
|
168
|
+
contentType?: string | undefined;
|
|
169
|
+
id: string;
|
|
170
|
+
url: string;
|
|
171
|
+
createdAt: string;
|
|
172
|
+
size: number;
|
|
173
|
+
}[];
|
|
174
|
+
declare function useAsset(id: string | undefined): {
|
|
175
|
+
contentType?: string | undefined;
|
|
176
|
+
id: string;
|
|
177
|
+
url: string;
|
|
178
|
+
createdAt: string;
|
|
179
|
+
size: number;
|
|
180
|
+
} | undefined;
|
|
141
181
|
declare function useAssetManager(): {
|
|
142
182
|
create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
|
|
143
183
|
delete: (id: string) => Promise<void>;
|
|
@@ -157,11 +197,6 @@ declare function useInputs(): ({
|
|
|
157
197
|
description: string | null;
|
|
158
198
|
} | {
|
|
159
199
|
id: string;
|
|
160
|
-
kind: "data";
|
|
161
|
-
name: string;
|
|
162
|
-
required: boolean;
|
|
163
|
-
stableId: string;
|
|
164
|
-
description: string | null;
|
|
165
200
|
schema: {
|
|
166
201
|
default?: string | undefined;
|
|
167
202
|
type: "string";
|
|
@@ -249,6 +284,11 @@ declare function useInputs(): ({
|
|
|
249
284
|
};
|
|
250
285
|
_kind: "Object";
|
|
251
286
|
} | null;
|
|
287
|
+
kind: "data";
|
|
288
|
+
name: string;
|
|
289
|
+
required: boolean;
|
|
290
|
+
stableId: string;
|
|
291
|
+
description: string | null;
|
|
252
292
|
} | {
|
|
253
293
|
authProvider?: "github" | "figma" | null | undefined;
|
|
254
294
|
authScope?: string | null | undefined;
|
|
@@ -264,7 +304,7 @@ declare function useOutputTransforms(): ({
|
|
|
264
304
|
id: string;
|
|
265
305
|
kind: "script";
|
|
266
306
|
stableId: string;
|
|
267
|
-
location: "
|
|
307
|
+
location: "url" | "state";
|
|
268
308
|
order: number;
|
|
269
309
|
} | {
|
|
270
310
|
value: string;
|
|
@@ -288,7 +328,7 @@ declare const FallbackUntilInitialized: ({ children, fallback, }: {
|
|
|
288
328
|
}) => React.ReactNode;
|
|
289
329
|
declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
|
|
290
330
|
schema: Schema;
|
|
291
|
-
mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M
|
|
331
|
+
mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>["mergeHistoryEntries"];
|
|
292
332
|
safeEval?: SafeEval;
|
|
293
333
|
outputTransforms?: CreateParams<OutputTransform>[];
|
|
294
334
|
inputs?: CreateParams<Input>[];
|
|
@@ -301,15 +341,15 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
|
|
|
301
341
|
<P extends PathKey[] | string>(path: P): GetAtPath<Static<Schema>, P>;
|
|
302
342
|
};
|
|
303
343
|
useSetValue: {
|
|
304
|
-
(): (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
|
|
305
|
-
<P extends PathKey[] | string>(path: P): (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
|
|
344
|
+
(): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
|
|
345
|
+
<P extends PathKey[] | string>(path: P): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
|
|
306
346
|
};
|
|
307
347
|
useValueState: {
|
|
308
|
-
(): [Static<Schema>, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
309
|
-
<A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
310
|
-
<P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
|
|
348
|
+
(): [Static<Schema>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
349
|
+
<A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
|
|
350
|
+
<P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
|
|
311
351
|
};
|
|
312
|
-
useStateManager: () => MultiplayerStateManager<Static<Schema>, M
|
|
352
|
+
useStateManager: () => MultiplayerStateManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>>;
|
|
313
353
|
useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
|
|
314
354
|
useLeftMenuItems: () => MenuItem<MenuT>[];
|
|
315
355
|
useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
|
|
@@ -317,7 +357,7 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
|
|
|
317
357
|
useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
|
|
318
358
|
useHandleMenuItem: (callback: (type: MenuT) => void) => void;
|
|
319
359
|
useOnSelectMenuItemCallback: () => (type: MenuT) => void;
|
|
320
|
-
useNoyaManager: () => NoyaManager<Static<Schema>, M, E, MenuT>;
|
|
360
|
+
useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT>;
|
|
321
361
|
useMenu: (options: {
|
|
322
362
|
leftMenuItems?: MenuItem<MenuT>[];
|
|
323
363
|
rightMenuItems?: MenuItem<MenuT>[];
|
|
@@ -365,4 +405,4 @@ declare class WebSocketConnection<State> {
|
|
|
365
405
|
removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
|
|
366
406
|
}
|
|
367
407
|
|
|
368
|
-
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, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
|
|
408
|
+
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, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
|