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