@noya-app/noya-multiplayer-react 0.1.66 → 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/.turbo/turbo-build.log +11 -11
- package/CHANGELOG.md +8 -0
- package/dist/index.bundle.js +19 -19
- package/dist/index.d.mts +95 -25
- package/dist/index.d.ts +95 -25
- package/dist/index.js +419 -177
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +381 -145
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/NoyaStateContext.tsx +179 -90
- package/src/__tests__/NoyaStateContext.test.ts +3 -2
- package/src/__tests__/resourcePayload.test.ts +263 -0
- package/src/__tests__/serialize.test.ts +8 -6
- package/src/hooks.ts +46 -47
- package/src/index.ts +1 -0
- package/src/inspector/StateInspector.tsx +16 -7
- package/src/inspector/serialization.ts +6 -12
- package/src/inspector/useStateInspector.tsx +15 -7
- package/src/noyaApp.ts +37 -17
- package/src/singleton.tsx +140 -0
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,
|
|
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
|
|
6
|
-
import {
|
|
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<
|
|
67
|
-
deleteAsset: (id: string) => Promise<
|
|
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
|
|
133
|
-
ReturnType<typeof
|
|
134
|
-
ReturnType<typeof
|
|
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
|
|
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<
|
|
192
|
-
delete: (id: string) => Promise<
|
|
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
|
|
330
|
-
declare function
|
|
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
|
|
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 {
|
|
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,
|
|
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
|
|
6
|
-
import {
|
|
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<
|
|
67
|
-
deleteAsset: (id: string) => Promise<
|
|
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
|
|
133
|
-
ReturnType<typeof
|
|
134
|
-
ReturnType<typeof
|
|
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
|
|
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<
|
|
192
|
-
delete: (id: string) => Promise<
|
|
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
|
|
330
|
-
declare function
|
|
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
|
|
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 {
|
|
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 };
|