@noya-app/noya-multiplayer-react 0.1.74 → 0.1.76
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 +15 -0
- package/dist/index.bundle.js +28 -28
- package/dist/index.d.mts +7 -9
- package/dist/index.d.ts +7 -9
- package/dist/index.js +298 -207
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +242 -147
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/NoyaStateContext.tsx +26 -42
- package/src/inspector/StateInspector.tsx +123 -52
- package/src/inspector/sections/EventsSection.tsx +22 -1
- package/src/inspector/sections/ServerScriptLogsSection.tsx +18 -2
- package/src/inspector/usePausedStream.ts +33 -0
- package/src/singleton.tsx +2 -3
package/dist/index.js
CHANGED
|
@@ -1532,8 +1532,6 @@ __export(src_exports, {
|
|
|
1532
1532
|
useBindNoyaManager: () => useBindNoyaManager,
|
|
1533
1533
|
useCallableAITools: () => useCallableAITools,
|
|
1534
1534
|
useColorScheme: () => useColorScheme,
|
|
1535
|
-
useConnectedUser: () => useConnectedUser,
|
|
1536
|
-
useConnectedUsers: () => useConnectedUsers,
|
|
1537
1535
|
useEnqueueInput: () => useEnqueueInput,
|
|
1538
1536
|
useFileName: () => useFileName,
|
|
1539
1537
|
useFilePropertyManager: () => useFilePropertyManager,
|
|
@@ -1544,14 +1542,15 @@ __export(src_exports, {
|
|
|
1544
1542
|
useManagedHistory: () => useManagedHistory,
|
|
1545
1543
|
useManagedState: () => useManagedState,
|
|
1546
1544
|
useMultiplayerState: () => useMultiplayerState,
|
|
1545
|
+
useNoyaActiveUsers: () => useNoyaActiveUsers,
|
|
1547
1546
|
useNoyaAssetTranscription: () => useNoyaAssetTranscription,
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
useNoyaId: () => useNoyaId,
|
|
1547
|
+
useNoyaCurrentUser: () => useNoyaCurrentUser,
|
|
1548
|
+
useNoyaCurrentUserId: () => useNoyaCurrentUserId,
|
|
1551
1549
|
useNoyaStateInternal: () => useNoyaStateInternal,
|
|
1552
1550
|
useNoyaTranscriptionManager: () => useNoyaTranscriptionManager,
|
|
1553
1551
|
useNoyaUser: () => useNoyaUser,
|
|
1554
|
-
|
|
1552
|
+
useNoyaUserManager: () => useNoyaUserManager,
|
|
1553
|
+
useNoyaUsers: () => useNoyaUsers,
|
|
1555
1554
|
useObservable: () => useObservable,
|
|
1556
1555
|
useOutputTransforms: () => useOutputTransforms,
|
|
1557
1556
|
usePipelineManager: () => usePipelineManager,
|
|
@@ -1564,14 +1563,13 @@ __export(src_exports, {
|
|
|
1564
1563
|
useSecrets: () => useSecrets,
|
|
1565
1564
|
useSetFileNameState: () => useSetFileNameState,
|
|
1566
1565
|
useStateInspector: () => useStateInspector,
|
|
1567
|
-
useUserManager: () => useUserManager,
|
|
1568
1566
|
useViewType: () => useViewType
|
|
1569
1567
|
});
|
|
1570
1568
|
module.exports = __toCommonJS(src_exports);
|
|
1571
1569
|
__reExport(src_exports, require("@noya-app/state-manager"), module.exports);
|
|
1572
1570
|
|
|
1573
1571
|
// src/ai.ts
|
|
1574
|
-
var
|
|
1572
|
+
var import_react22 = require("react");
|
|
1575
1573
|
|
|
1576
1574
|
// ../../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs
|
|
1577
1575
|
var TransformKind = Symbol.for("TypeBox.Transform");
|
|
@@ -2101,7 +2099,7 @@ function Literal(value, options = {}) {
|
|
|
2101
2099
|
}
|
|
2102
2100
|
|
|
2103
2101
|
// ../../node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs
|
|
2104
|
-
function
|
|
2102
|
+
function Boolean2(options = {}) {
|
|
2105
2103
|
return {
|
|
2106
2104
|
...options,
|
|
2107
2105
|
[Kind]: "Boolean",
|
|
@@ -2135,7 +2133,7 @@ function String2(options = {}) {
|
|
|
2135
2133
|
// ../../node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs
|
|
2136
2134
|
function* FromUnion(syntax) {
|
|
2137
2135
|
const trim = syntax.trim().replace(/"|'/g, "");
|
|
2138
|
-
return trim === "boolean" ? yield
|
|
2136
|
+
return trim === "boolean" ? yield Boolean2() : trim === "number" ? yield Number2() : trim === "bigint" ? yield BigInt2() : trim === "string" ? yield String2() : yield (() => {
|
|
2139
2137
|
const literals = trim.split("|").map((literal) => Literal(literal.trim()));
|
|
2140
2138
|
return literals.length === 0 ? Never() : literals.length === 1 ? literals[0] : UnionEvaluated(literals);
|
|
2141
2139
|
})();
|
|
@@ -3927,7 +3925,7 @@ __export(type_exports3, {
|
|
|
3927
3925
|
AsyncIterator: () => AsyncIterator,
|
|
3928
3926
|
Awaited: () => Awaited,
|
|
3929
3927
|
BigInt: () => BigInt2,
|
|
3930
|
-
Boolean: () =>
|
|
3928
|
+
Boolean: () => Boolean2,
|
|
3931
3929
|
Capitalize: () => Capitalize,
|
|
3932
3930
|
Composite: () => Composite,
|
|
3933
3931
|
Const: () => Const,
|
|
@@ -4688,15 +4686,16 @@ format_exports.Set("uuid", validateUUID);
|
|
|
4688
4686
|
// src/NoyaStateContext.tsx
|
|
4689
4687
|
var import_observable = require("@noya-app/observable");
|
|
4690
4688
|
var import_react_utils3 = require("@noya-app/react-utils");
|
|
4691
|
-
var
|
|
4689
|
+
var import_state_manager5 = require("@noya-app/state-manager");
|
|
4690
|
+
var import_react21 = __toESM(require("react"));
|
|
4692
4691
|
|
|
4693
4692
|
// src/noyaApp.ts
|
|
4694
4693
|
var import_state_manager3 = require("@noya-app/state-manager");
|
|
4695
|
-
var
|
|
4694
|
+
var import_react19 = require("react");
|
|
4696
4695
|
|
|
4697
4696
|
// src/hooks.ts
|
|
4698
4697
|
var import_state_manager2 = require("@noya-app/state-manager");
|
|
4699
|
-
var
|
|
4698
|
+
var import_react18 = require("react");
|
|
4700
4699
|
var import_client2 = require("react-dom/client");
|
|
4701
4700
|
|
|
4702
4701
|
// src/components/ErrorOverlay.tsx
|
|
@@ -4774,7 +4773,7 @@ var ErrorOverlay = React.memo(function ErrorOverlay2({
|
|
|
4774
4773
|
});
|
|
4775
4774
|
|
|
4776
4775
|
// src/inspector/useStateInspector.tsx
|
|
4777
|
-
var
|
|
4776
|
+
var import_react17 = __toESM(require("react"));
|
|
4778
4777
|
var import_client = require("react-dom/client");
|
|
4779
4778
|
var import_react_utils2 = require("@noya-app/react-utils");
|
|
4780
4779
|
|
|
@@ -4908,7 +4907,7 @@ function uuid() {
|
|
|
4908
4907
|
|
|
4909
4908
|
// src/inspector/StateInspector.tsx
|
|
4910
4909
|
var import_react_utils = require("@noya-app/react-utils");
|
|
4911
|
-
var
|
|
4910
|
+
var import_react16 = __toESM(require("react"));
|
|
4912
4911
|
var import_react_inspector7 = require("react-inspector");
|
|
4913
4912
|
|
|
4914
4913
|
// src/useObservable.ts
|
|
@@ -5302,7 +5301,9 @@ function EventsSection({
|
|
|
5302
5301
|
setShowEvents,
|
|
5303
5302
|
colorScheme,
|
|
5304
5303
|
eventsContainerRef,
|
|
5305
|
-
connectionEvents
|
|
5304
|
+
connectionEvents,
|
|
5305
|
+
paused,
|
|
5306
|
+
onTogglePaused
|
|
5306
5307
|
}) {
|
|
5307
5308
|
const theme = getStateInspectorTheme(colorScheme);
|
|
5308
5309
|
return /* @__PURE__ */ import_react9.default.createElement(
|
|
@@ -5311,9 +5312,20 @@ function EventsSection({
|
|
|
5311
5312
|
open: showEvents,
|
|
5312
5313
|
setOpen: setShowEvents,
|
|
5313
5314
|
title: "Events",
|
|
5314
|
-
colorScheme
|
|
5315
|
+
colorScheme,
|
|
5316
|
+
right: /* @__PURE__ */ import_react9.default.createElement(StateInspectorButton, { theme, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
5315
5317
|
},
|
|
5316
|
-
/* @__PURE__ */ import_react9.default.createElement(StateInspectorDisclosureRowInner, { ref: eventsContainerRef },
|
|
5318
|
+
/* @__PURE__ */ import_react9.default.createElement(StateInspectorDisclosureRowInner, { ref: eventsContainerRef }, paused && /* @__PURE__ */ import_react9.default.createElement(
|
|
5319
|
+
"div",
|
|
5320
|
+
{
|
|
5321
|
+
style: {
|
|
5322
|
+
padding: "4px 12px",
|
|
5323
|
+
fontSize: "11px",
|
|
5324
|
+
opacity: 0.7
|
|
5325
|
+
}
|
|
5326
|
+
},
|
|
5327
|
+
"Event streaming paused"
|
|
5328
|
+
), connectionEvents?.map(
|
|
5317
5329
|
(event, index) => event.type === "stateChange" ? /* @__PURE__ */ import_react9.default.createElement(StateInspectorRow, { key: index, colorScheme }, "connection:", " ", /* @__PURE__ */ import_react9.default.createElement("span", { style: { fontStyle: "italic" } }, event.state.toLowerCase())) : /* @__PURE__ */ import_react9.default.createElement(
|
|
5318
5330
|
StateInspectorRow,
|
|
5319
5331
|
{
|
|
@@ -5344,7 +5356,7 @@ function EventsSection({
|
|
|
5344
5356
|
}
|
|
5345
5357
|
)
|
|
5346
5358
|
)
|
|
5347
|
-
), !connectionEvents && /* @__PURE__ */ import_react9.default.createElement(
|
|
5359
|
+
), !connectionEvents?.length && /* @__PURE__ */ import_react9.default.createElement(
|
|
5348
5360
|
"div",
|
|
5349
5361
|
{
|
|
5350
5362
|
style: {
|
|
@@ -5598,7 +5610,8 @@ function ServerScriptLogsSection({
|
|
|
5598
5610
|
logs,
|
|
5599
5611
|
containerRef,
|
|
5600
5612
|
paused,
|
|
5601
|
-
onTogglePaused
|
|
5613
|
+
onTogglePaused,
|
|
5614
|
+
title = "Server Script Logs"
|
|
5602
5615
|
}) {
|
|
5603
5616
|
const theme = getStateInspectorTheme(colorScheme);
|
|
5604
5617
|
return /* @__PURE__ */ import_react11.default.createElement(
|
|
@@ -5606,7 +5619,7 @@ function ServerScriptLogsSection({
|
|
|
5606
5619
|
{
|
|
5607
5620
|
open: showLogs,
|
|
5608
5621
|
setOpen: setShowLogs,
|
|
5609
|
-
title
|
|
5622
|
+
title,
|
|
5610
5623
|
colorScheme,
|
|
5611
5624
|
right: /* @__PURE__ */ import_react11.default.createElement(StateInspectorButton, { theme, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
5612
5625
|
},
|
|
@@ -5635,6 +5648,18 @@ function ServerScriptLogsSection({
|
|
|
5635
5648
|
},
|
|
5636
5649
|
/* @__PURE__ */ import_react11.default.createElement("span", null, formatTimestamp(log.timestamp)),
|
|
5637
5650
|
/* @__PURE__ */ import_react11.default.createElement("span", { style: { color: levelColors[log.level] } }, log.level),
|
|
5651
|
+
(log.origin || log.target || log.mode) && /* @__PURE__ */ import_react11.default.createElement(
|
|
5652
|
+
"span",
|
|
5653
|
+
{
|
|
5654
|
+
style: {
|
|
5655
|
+
fontFamily: "monospace",
|
|
5656
|
+
textTransform: "none",
|
|
5657
|
+
fontSize: "10px",
|
|
5658
|
+
opacity: 0.75
|
|
5659
|
+
}
|
|
5660
|
+
},
|
|
5661
|
+
[log.origin ?? log.target, log.mode].filter(Boolean).join(" / ")
|
|
5662
|
+
),
|
|
5638
5663
|
/* @__PURE__ */ import_react11.default.createElement(
|
|
5639
5664
|
"span",
|
|
5640
5665
|
{
|
|
@@ -5660,8 +5685,7 @@ function ServerScriptLogsSection({
|
|
|
5660
5685
|
{
|
|
5661
5686
|
key: index,
|
|
5662
5687
|
data: value,
|
|
5663
|
-
theme
|
|
5664
|
-
expandLevel: 3
|
|
5688
|
+
theme
|
|
5665
5689
|
}
|
|
5666
5690
|
)) : /* @__PURE__ */ import_react11.default.createElement("span", { style: { fontSize: "11px", opacity: 0.7 } }, "No data")
|
|
5667
5691
|
))), !logs?.length && /* @__PURE__ */ import_react11.default.createElement(
|
|
@@ -6330,6 +6354,31 @@ function useLocalStorageState(key, defaultValue) {
|
|
|
6330
6354
|
return [state, setLocalStorageState];
|
|
6331
6355
|
}
|
|
6332
6356
|
|
|
6357
|
+
// src/inspector/usePausedStream.ts
|
|
6358
|
+
var import_react15 = __toESM(require("react"));
|
|
6359
|
+
function usePausedStream(items) {
|
|
6360
|
+
const [paused, setPaused] = import_react15.default.useState(false);
|
|
6361
|
+
const [visibleItems, setVisibleItems] = import_react15.default.useState(items ?? []);
|
|
6362
|
+
const togglePaused = import_react15.default.useCallback(() => {
|
|
6363
|
+
setPaused((value) => {
|
|
6364
|
+
if (!value) {
|
|
6365
|
+
setVisibleItems(items ?? []);
|
|
6366
|
+
}
|
|
6367
|
+
return !value;
|
|
6368
|
+
});
|
|
6369
|
+
}, [items]);
|
|
6370
|
+
import_react15.default.useEffect(() => {
|
|
6371
|
+
if (paused) return;
|
|
6372
|
+
setVisibleItems(items ?? []);
|
|
6373
|
+
}, [items, paused]);
|
|
6374
|
+
return {
|
|
6375
|
+
paused,
|
|
6376
|
+
setPaused,
|
|
6377
|
+
togglePaused,
|
|
6378
|
+
visibleItems
|
|
6379
|
+
};
|
|
6380
|
+
}
|
|
6381
|
+
|
|
6333
6382
|
// src/inspector/StateInspector.tsx
|
|
6334
6383
|
var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector2({
|
|
6335
6384
|
noyaManager,
|
|
@@ -6352,16 +6401,17 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6352
6401
|
activityEventsManager,
|
|
6353
6402
|
logManager
|
|
6354
6403
|
} = noyaManager;
|
|
6355
|
-
const [didMount, setDidMount] =
|
|
6404
|
+
const [didMount, setDidMount] = import_react16.default.useState(false);
|
|
6356
6405
|
const tasks = useObservable(taskManager.tasks$);
|
|
6357
6406
|
const inputs = useObservable(ioManager.inputs$);
|
|
6358
6407
|
const outputTransforms = useObservable(ioManager.outputTransforms$);
|
|
6359
|
-
(0,
|
|
6408
|
+
(0, import_react16.useLayoutEffect)(() => {
|
|
6360
6409
|
setDidMount(true);
|
|
6361
6410
|
}, []);
|
|
6362
|
-
const eventsContainerRef =
|
|
6363
|
-
const activityEventsContainerRef =
|
|
6364
|
-
const serverLogsContainerRef =
|
|
6411
|
+
const eventsContainerRef = import_react16.default.useRef(null);
|
|
6412
|
+
const activityEventsContainerRef = import_react16.default.useRef(null);
|
|
6413
|
+
const serverLogsContainerRef = import_react16.default.useRef(null);
|
|
6414
|
+
const serverSimulationLogsContainerRef = import_react16.default.useRef(null);
|
|
6365
6415
|
const [showInspector, setShowInspector] = useLocalStorageState(
|
|
6366
6416
|
"noya-multiplayer-react-show-inspector",
|
|
6367
6417
|
true
|
|
@@ -6422,35 +6472,51 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6422
6472
|
"noya-multiplayer-react-show-server-logs",
|
|
6423
6473
|
false
|
|
6424
6474
|
);
|
|
6475
|
+
const [showServerSimulationLogs, setShowServerSimulationLogs] = useLocalStorageState(
|
|
6476
|
+
"noya-multiplayer-react-show-server-simulation-logs",
|
|
6477
|
+
false
|
|
6478
|
+
);
|
|
6479
|
+
const [showSimulation, setShowSimulation] = useLocalStorageState(
|
|
6480
|
+
"noya-multiplayer-react-show-simulation",
|
|
6481
|
+
false
|
|
6482
|
+
);
|
|
6425
6483
|
const connectionEvents = useObservable(connectionEventManager.events$);
|
|
6426
|
-
|
|
6484
|
+
const {
|
|
6485
|
+
visibleItems: visibleConnectionEvents,
|
|
6486
|
+
paused: connectionEventsPaused,
|
|
6487
|
+
togglePaused: toggleConnectionEventsPaused
|
|
6488
|
+
} = usePausedStream(connectionEvents);
|
|
6489
|
+
(0, import_react16.useEffect)(() => {
|
|
6427
6490
|
if (eventsContainerRef.current) {
|
|
6428
6491
|
eventsContainerRef.current.scrollTop = eventsContainerRef.current.scrollHeight;
|
|
6429
6492
|
}
|
|
6430
|
-
}, [
|
|
6493
|
+
}, [visibleConnectionEvents]);
|
|
6431
6494
|
const serverLogs = useObservable(logManager.logs$);
|
|
6432
|
-
const
|
|
6433
|
-
|
|
6434
|
-
|
|
6495
|
+
const {
|
|
6496
|
+
visibleItems: visibleServerLogs,
|
|
6497
|
+
paused: serverLogsPaused,
|
|
6498
|
+
togglePaused: toggleServerLogsPaused
|
|
6499
|
+
} = usePausedStream(serverLogs);
|
|
6500
|
+
const serverSimulationLogs = useObservable(
|
|
6501
|
+
multiplayerStateManager.serverSimulationLogs$
|
|
6435
6502
|
);
|
|
6436
|
-
const
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
|
|
6442
|
-
});
|
|
6443
|
-
}, [serverLogs]);
|
|
6444
|
-
(0, import_react15.useEffect)(() => {
|
|
6445
|
-
if (serverLogsPaused) return;
|
|
6446
|
-
setVisibleServerLogs(serverLogs ?? []);
|
|
6447
|
-
}, [serverLogs, serverLogsPaused]);
|
|
6448
|
-
(0, import_react15.useEffect)(() => {
|
|
6503
|
+
const {
|
|
6504
|
+
visibleItems: visibleServerSimulationLogs,
|
|
6505
|
+
paused: serverSimulationLogsPaused,
|
|
6506
|
+
togglePaused: toggleServerSimulationLogsPaused
|
|
6507
|
+
} = usePausedStream(serverSimulationLogs);
|
|
6508
|
+
(0, import_react16.useEffect)(() => {
|
|
6449
6509
|
if (!showServerLogs) return;
|
|
6450
6510
|
if (serverLogsContainerRef.current) {
|
|
6451
6511
|
serverLogsContainerRef.current.scrollTop = serverLogsContainerRef.current.scrollHeight;
|
|
6452
6512
|
}
|
|
6453
6513
|
}, [showServerLogs, visibleServerLogs]);
|
|
6514
|
+
(0, import_react16.useEffect)(() => {
|
|
6515
|
+
if (!showServerSimulationLogs) return;
|
|
6516
|
+
if (serverSimulationLogsContainerRef.current) {
|
|
6517
|
+
serverSimulationLogsContainerRef.current.scrollTop = serverSimulationLogsContainerRef.current.scrollHeight;
|
|
6518
|
+
}
|
|
6519
|
+
}, [showServerSimulationLogs, visibleServerSimulationLogs]);
|
|
6454
6520
|
const multipeerStateInitialized = useObservable(
|
|
6455
6521
|
multiplayerStateManager.isInitialized$
|
|
6456
6522
|
);
|
|
@@ -6462,8 +6528,10 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6462
6528
|
const assetsInitialized = useObservable(assetManager.isInitialized$);
|
|
6463
6529
|
const secrets = useObservable(secretManager.secrets$);
|
|
6464
6530
|
const secretsInitialized = useObservable(secretManager.isInitialized$);
|
|
6465
|
-
const connectedUsers = useObservable(userManager.
|
|
6531
|
+
const connectedUsers = useObservable(userManager.allUsers$);
|
|
6466
6532
|
const connectionId = useObservable(userManager.currentConnectionId$);
|
|
6533
|
+
const simulationDiagnostics = multiplayerStateManager.getServerSimulationDiagnostics?.() ?? null;
|
|
6534
|
+
const showSimulationLogsSection = (simulationDiagnostics?.simulateLocally ?? false) || visibleServerSimulationLogs.length > 0;
|
|
6467
6535
|
const state = useObservable(multiplayerStateManager.optimisticState$);
|
|
6468
6536
|
const inputsInitialized = useObservable(ioManager.inputsInitialized$);
|
|
6469
6537
|
const outputTransformsInitialized = useObservable(
|
|
@@ -6490,11 +6558,11 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6490
6558
|
zIndex: 9999,
|
|
6491
6559
|
lineHeight: "13px"
|
|
6492
6560
|
};
|
|
6493
|
-
const handleExportAll = (0,
|
|
6561
|
+
const handleExportAll = (0, import_react16.useCallback)(async () => {
|
|
6494
6562
|
const buffer = await exportAll(noyaManager);
|
|
6495
6563
|
(0, import_react_utils.downloadBlob)(new Blob([buffer]), "state.zip");
|
|
6496
6564
|
}, [noyaManager]);
|
|
6497
|
-
const handleImportAll = (0,
|
|
6565
|
+
const handleImportAll = (0, import_react16.useCallback)(async () => {
|
|
6498
6566
|
const file = await uploadFile();
|
|
6499
6567
|
const buffer = await file.arrayBuffer();
|
|
6500
6568
|
importAll(buffer, noyaManager, {
|
|
@@ -6507,7 +6575,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6507
6575
|
}, [noyaManager]);
|
|
6508
6576
|
if (!didMount) return null;
|
|
6509
6577
|
if (!showInspector) {
|
|
6510
|
-
return /* @__PURE__ */
|
|
6578
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
6511
6579
|
"div",
|
|
6512
6580
|
{
|
|
6513
6581
|
...props,
|
|
@@ -6519,7 +6587,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6519
6587
|
},
|
|
6520
6588
|
onClick: () => setShowInspector(true)
|
|
6521
6589
|
},
|
|
6522
|
-
/* @__PURE__ */
|
|
6590
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6523
6591
|
StateInspectorToggleButton,
|
|
6524
6592
|
{
|
|
6525
6593
|
showInspector,
|
|
@@ -6530,7 +6598,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6530
6598
|
)
|
|
6531
6599
|
);
|
|
6532
6600
|
}
|
|
6533
|
-
return /* @__PURE__ */
|
|
6601
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
6534
6602
|
"div",
|
|
6535
6603
|
{
|
|
6536
6604
|
...props,
|
|
@@ -6539,7 +6607,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6539
6607
|
...props.style
|
|
6540
6608
|
}
|
|
6541
6609
|
},
|
|
6542
|
-
/* @__PURE__ */
|
|
6610
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6543
6611
|
StateInspectorDisclosureSection,
|
|
6544
6612
|
{
|
|
6545
6613
|
isFirst: true,
|
|
@@ -6552,14 +6620,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6552
6620
|
maxHeight: "50%",
|
|
6553
6621
|
overflowY: "auto"
|
|
6554
6622
|
},
|
|
6555
|
-
right: /* @__PURE__ */
|
|
6623
|
+
right: /* @__PURE__ */ import_react16.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6556
6624
|
StateInspectorButton,
|
|
6557
6625
|
{
|
|
6558
6626
|
theme,
|
|
6559
6627
|
onClick: () => setShowUserDetails(!showUserDetails)
|
|
6560
6628
|
},
|
|
6561
6629
|
"Toggle details"
|
|
6562
|
-
), /* @__PURE__ */
|
|
6630
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6563
6631
|
StateInspectorToggleButton,
|
|
6564
6632
|
{
|
|
6565
6633
|
showInspector,
|
|
@@ -6569,16 +6637,19 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6569
6637
|
}
|
|
6570
6638
|
))
|
|
6571
6639
|
},
|
|
6572
|
-
/* @__PURE__ */
|
|
6573
|
-
return /* @__PURE__ */
|
|
6640
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, { style: { flex: "0 0 auto" } }, connectedUsers?.filter((user) => showUserDetails || !user.inactive).map((user, index, array) => {
|
|
6641
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
6574
6642
|
StateInspectorRow,
|
|
6575
6643
|
{
|
|
6576
6644
|
key: user.connectionId,
|
|
6577
6645
|
colorScheme,
|
|
6578
6646
|
variant: user.connectionId === connectionId ? "up" : void 0,
|
|
6579
|
-
bordered: index !== array.length - 1
|
|
6647
|
+
bordered: index !== array.length - 1,
|
|
6648
|
+
style: {
|
|
6649
|
+
opacity: user.inactive ? 0.5 : 1
|
|
6650
|
+
}
|
|
6580
6651
|
},
|
|
6581
|
-
user.image && /* @__PURE__ */
|
|
6652
|
+
user.image && /* @__PURE__ */ import_react16.default.createElement(
|
|
6582
6653
|
"img",
|
|
6583
6654
|
{
|
|
6584
6655
|
src: user.image,
|
|
@@ -6595,9 +6666,9 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6595
6666
|
}
|
|
6596
6667
|
}
|
|
6597
6668
|
),
|
|
6598
|
-
showUserDetails ? /* @__PURE__ */
|
|
6669
|
+
showUserDetails ? /* @__PURE__ */ import_react16.default.createElement(import_react_inspector7.ObjectInspector, { data: user, theme }) : user.name
|
|
6599
6670
|
);
|
|
6600
|
-
}), !connectedUsers && /* @__PURE__ */
|
|
6671
|
+
}), !connectedUsers && /* @__PURE__ */ import_react16.default.createElement(
|
|
6601
6672
|
"div",
|
|
6602
6673
|
{
|
|
6603
6674
|
style: {
|
|
@@ -6608,13 +6679,13 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6608
6679
|
gap: "4px"
|
|
6609
6680
|
}
|
|
6610
6681
|
},
|
|
6611
|
-
/* @__PURE__ */
|
|
6682
|
+
/* @__PURE__ */ import_react16.default.createElement("span", null, "No connected users")
|
|
6612
6683
|
))
|
|
6613
6684
|
),
|
|
6614
|
-
/* @__PURE__ */
|
|
6685
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6615
6686
|
StateInspectorDisclosureSection,
|
|
6616
6687
|
{
|
|
6617
|
-
title: /* @__PURE__ */
|
|
6688
|
+
title: /* @__PURE__ */ import_react16.default.createElement(StateInspectorTitleLabel, null, "Data", /* @__PURE__ */ import_react16.default.createElement(
|
|
6618
6689
|
ColoredDot,
|
|
6619
6690
|
{
|
|
6620
6691
|
type: multipeerStateInitialized ? "success" : "error"
|
|
@@ -6623,7 +6694,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6623
6694
|
colorScheme,
|
|
6624
6695
|
setOpen: setShowData,
|
|
6625
6696
|
open: showData,
|
|
6626
|
-
right: /* @__PURE__ */
|
|
6697
|
+
right: /* @__PURE__ */ import_react16.default.createElement(
|
|
6627
6698
|
"span",
|
|
6628
6699
|
{
|
|
6629
6700
|
style: {
|
|
@@ -6631,9 +6702,9 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6631
6702
|
gap: "12px"
|
|
6632
6703
|
}
|
|
6633
6704
|
},
|
|
6634
|
-
/* @__PURE__ */
|
|
6635
|
-
/* @__PURE__ */
|
|
6636
|
-
/* @__PURE__ */
|
|
6705
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorButton, { theme, onClick: handleImportAll }, "Import"),
|
|
6706
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorButton, { theme, onClick: handleExportAll }, "Export"),
|
|
6707
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6637
6708
|
StateInspectorButton,
|
|
6638
6709
|
{
|
|
6639
6710
|
theme,
|
|
@@ -6645,14 +6716,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6645
6716
|
)
|
|
6646
6717
|
)
|
|
6647
6718
|
},
|
|
6648
|
-
/* @__PURE__ */
|
|
6719
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6649
6720
|
import_react_inspector7.ObjectInspector,
|
|
6650
6721
|
{
|
|
6651
6722
|
name: multiplayerStateManager.schema ? "state" : void 0,
|
|
6652
6723
|
data: state,
|
|
6653
6724
|
theme
|
|
6654
6725
|
}
|
|
6655
|
-
)), multiplayerStateManager.schema && /* @__PURE__ */
|
|
6726
|
+
)), multiplayerStateManager.schema && /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6656
6727
|
import_react_inspector7.ObjectInspector,
|
|
6657
6728
|
{
|
|
6658
6729
|
name: "schema",
|
|
@@ -6661,7 +6732,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6661
6732
|
}
|
|
6662
6733
|
)))
|
|
6663
6734
|
),
|
|
6664
|
-
/* @__PURE__ */
|
|
6735
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6665
6736
|
HistorySection,
|
|
6666
6737
|
{
|
|
6667
6738
|
showHistory,
|
|
@@ -6671,14 +6742,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6671
6742
|
multiplayerStateManager
|
|
6672
6743
|
}
|
|
6673
6744
|
),
|
|
6674
|
-
/* @__PURE__ */
|
|
6745
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6675
6746
|
StateInspectorDisclosureSection,
|
|
6676
6747
|
{
|
|
6677
6748
|
open: showAssets,
|
|
6678
6749
|
setOpen: setShowAssets,
|
|
6679
|
-
title: /* @__PURE__ */
|
|
6750
|
+
title: /* @__PURE__ */ import_react16.default.createElement(StateInspectorTitleLabel, null, "Assets (", assets.length, ")", /* @__PURE__ */ import_react16.default.createElement(ColoredDot, { type: assetsInitialized ? "success" : "error" })),
|
|
6680
6751
|
colorScheme,
|
|
6681
|
-
right: /* @__PURE__ */
|
|
6752
|
+
right: /* @__PURE__ */ import_react16.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6682
6753
|
StateInspectorButton,
|
|
6683
6754
|
{
|
|
6684
6755
|
theme,
|
|
@@ -6693,7 +6764,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6693
6764
|
}
|
|
6694
6765
|
},
|
|
6695
6766
|
"Delete all"
|
|
6696
|
-
), /* @__PURE__ */
|
|
6767
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6697
6768
|
StateInspectorButton,
|
|
6698
6769
|
{
|
|
6699
6770
|
theme,
|
|
@@ -6706,7 +6777,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6706
6777
|
}
|
|
6707
6778
|
},
|
|
6708
6779
|
"Reload"
|
|
6709
|
-
), /* @__PURE__ */
|
|
6780
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6710
6781
|
StateInspectorButton,
|
|
6711
6782
|
{
|
|
6712
6783
|
theme,
|
|
@@ -6730,14 +6801,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6730
6801
|
"Upload"
|
|
6731
6802
|
))
|
|
6732
6803
|
},
|
|
6733
|
-
/* @__PURE__ */
|
|
6804
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, assets.map((asset) => /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { key: asset.id, colorScheme }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6734
6805
|
import_react_inspector7.ObjectInspector,
|
|
6735
6806
|
{
|
|
6736
6807
|
name: asset.id,
|
|
6737
6808
|
data: truncateAsset(asset),
|
|
6738
6809
|
theme
|
|
6739
6810
|
}
|
|
6740
|
-
), /* @__PURE__ */
|
|
6811
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6741
6812
|
StateInspectorButton,
|
|
6742
6813
|
{
|
|
6743
6814
|
theme,
|
|
@@ -6746,14 +6817,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6746
6817
|
"Delete"
|
|
6747
6818
|
))))
|
|
6748
6819
|
),
|
|
6749
|
-
advanced && /* @__PURE__ */
|
|
6820
|
+
advanced && /* @__PURE__ */ import_react16.default.createElement(
|
|
6750
6821
|
StateInspectorDisclosureSection,
|
|
6751
6822
|
{
|
|
6752
|
-
title: /* @__PURE__ */
|
|
6823
|
+
title: /* @__PURE__ */ import_react16.default.createElement(StateInspectorTitleLabel, null, "Resources (", resources.length, ")", /* @__PURE__ */ import_react16.default.createElement(ColoredDot, { type: resourcesInitialized ? "success" : "error" })),
|
|
6753
6824
|
colorScheme,
|
|
6754
6825
|
open: showResources,
|
|
6755
6826
|
setOpen: setShowResources,
|
|
6756
|
-
right: /* @__PURE__ */
|
|
6827
|
+
right: /* @__PURE__ */ import_react16.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6757
6828
|
StateInspectorButton,
|
|
6758
6829
|
{
|
|
6759
6830
|
theme,
|
|
@@ -6768,7 +6839,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6768
6839
|
}
|
|
6769
6840
|
},
|
|
6770
6841
|
"Delete all"
|
|
6771
|
-
), /* @__PURE__ */
|
|
6842
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6772
6843
|
StateInspectorButton,
|
|
6773
6844
|
{
|
|
6774
6845
|
theme,
|
|
@@ -6781,7 +6852,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6781
6852
|
}
|
|
6782
6853
|
},
|
|
6783
6854
|
"Create Directory"
|
|
6784
|
-
), /* @__PURE__ */
|
|
6855
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6785
6856
|
StateInspectorButton,
|
|
6786
6857
|
{
|
|
6787
6858
|
theme,
|
|
@@ -6801,21 +6872,21 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6801
6872
|
"Create Asset"
|
|
6802
6873
|
))
|
|
6803
6874
|
},
|
|
6804
|
-
/* @__PURE__ */
|
|
6875
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, resources?.map((resource) => /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { key: resource.id, colorScheme }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6805
6876
|
import_react_inspector7.ObjectInspector,
|
|
6806
6877
|
{
|
|
6807
6878
|
name: resource.path,
|
|
6808
6879
|
data: resource,
|
|
6809
6880
|
theme
|
|
6810
6881
|
}
|
|
6811
|
-
), /* @__PURE__ */
|
|
6882
|
+
), /* @__PURE__ */ import_react16.default.createElement("div", { style: { display: "flex", gap: "4px" } }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6812
6883
|
StateInspectorButton,
|
|
6813
6884
|
{
|
|
6814
6885
|
theme,
|
|
6815
6886
|
onClick: () => resourceManager.deleteResource({ id: resource.id })
|
|
6816
6887
|
},
|
|
6817
6888
|
"Delete"
|
|
6818
|
-
), /* @__PURE__ */
|
|
6889
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
6819
6890
|
StateInspectorButton,
|
|
6820
6891
|
{
|
|
6821
6892
|
theme,
|
|
@@ -6828,14 +6899,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6828
6899
|
"Rename"
|
|
6829
6900
|
)))))
|
|
6830
6901
|
),
|
|
6831
|
-
advanced && /* @__PURE__ */
|
|
6902
|
+
advanced && /* @__PURE__ */ import_react16.default.createElement(
|
|
6832
6903
|
StateInspectorDisclosureSection,
|
|
6833
6904
|
{
|
|
6834
|
-
title: /* @__PURE__ */
|
|
6905
|
+
title: /* @__PURE__ */ import_react16.default.createElement(StateInspectorTitleLabel, null, "Secrets", /* @__PURE__ */ import_react16.default.createElement(ColoredDot, { type: secretsInitialized ? "success" : "error" })),
|
|
6835
6906
|
colorScheme,
|
|
6836
6907
|
open: showSecrets,
|
|
6837
6908
|
setOpen: setShowSecrets,
|
|
6838
|
-
right: /* @__PURE__ */
|
|
6909
|
+
right: /* @__PURE__ */ import_react16.default.createElement(
|
|
6839
6910
|
StateInspectorButton,
|
|
6840
6911
|
{
|
|
6841
6912
|
theme,
|
|
@@ -6850,7 +6921,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6850
6921
|
"Create"
|
|
6851
6922
|
)
|
|
6852
6923
|
},
|
|
6853
|
-
/* @__PURE__ */
|
|
6924
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, secrets.map((secret) => /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { key: secret.id, colorScheme }, /* @__PURE__ */ import_react16.default.createElement(import_react_inspector7.ObjectInspector, { data: secret, theme }), /* @__PURE__ */ import_react16.default.createElement(
|
|
6854
6925
|
StateInspectorButton,
|
|
6855
6926
|
{
|
|
6856
6927
|
theme,
|
|
@@ -6859,15 +6930,15 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6859
6930
|
"Delete"
|
|
6860
6931
|
))))
|
|
6861
6932
|
),
|
|
6862
|
-
advanced && /* @__PURE__ */
|
|
6933
|
+
advanced && /* @__PURE__ */ import_react16.default.createElement(
|
|
6863
6934
|
StateInspectorDisclosureSection,
|
|
6864
6935
|
{
|
|
6865
6936
|
open: showInputs,
|
|
6866
6937
|
setOpen: setShowInputs,
|
|
6867
|
-
title: /* @__PURE__ */
|
|
6938
|
+
title: /* @__PURE__ */ import_react16.default.createElement(StateInspectorTitleLabel, null, "Inputs", /* @__PURE__ */ import_react16.default.createElement(ColoredDot, { type: inputsInitialized ? "success" : "error" })),
|
|
6868
6939
|
colorScheme
|
|
6869
6940
|
},
|
|
6870
|
-
/* @__PURE__ */
|
|
6941
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, inputs?.map((input) => /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { key: input.id, colorScheme }, /* @__PURE__ */ import_react16.default.createElement(import_react_inspector7.ObjectInspector, { data: input, theme }))), !inputs?.length && /* @__PURE__ */ import_react16.default.createElement(
|
|
6871
6942
|
"div",
|
|
6872
6943
|
{
|
|
6873
6944
|
style: {
|
|
@@ -6878,15 +6949,15 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6878
6949
|
gap: "4px"
|
|
6879
6950
|
}
|
|
6880
6951
|
},
|
|
6881
|
-
/* @__PURE__ */
|
|
6952
|
+
/* @__PURE__ */ import_react16.default.createElement("span", null, "No inputs")
|
|
6882
6953
|
))
|
|
6883
6954
|
),
|
|
6884
|
-
advanced && /* @__PURE__ */
|
|
6955
|
+
advanced && /* @__PURE__ */ import_react16.default.createElement(
|
|
6885
6956
|
StateInspectorDisclosureSection,
|
|
6886
6957
|
{
|
|
6887
6958
|
open: showOutputTransforms,
|
|
6888
6959
|
setOpen: setShowOutputTransforms,
|
|
6889
|
-
title: /* @__PURE__ */
|
|
6960
|
+
title: /* @__PURE__ */ import_react16.default.createElement(StateInspectorTitleLabel, null, "Output Transforms", /* @__PURE__ */ import_react16.default.createElement(
|
|
6890
6961
|
ColoredDot,
|
|
6891
6962
|
{
|
|
6892
6963
|
type: outputTransformsInitialized ? "success" : "error"
|
|
@@ -6894,7 +6965,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6894
6965
|
)),
|
|
6895
6966
|
colorScheme
|
|
6896
6967
|
},
|
|
6897
|
-
/* @__PURE__ */
|
|
6968
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, outputTransforms?.map((transform) => /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { key: transform.id, colorScheme }, /* @__PURE__ */ import_react16.default.createElement(import_react_inspector7.ObjectInspector, { data: transform, theme }))), !outputTransforms?.length && /* @__PURE__ */ import_react16.default.createElement(
|
|
6898
6969
|
"div",
|
|
6899
6970
|
{
|
|
6900
6971
|
style: {
|
|
@@ -6905,10 +6976,10 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6905
6976
|
gap: "4px"
|
|
6906
6977
|
}
|
|
6907
6978
|
},
|
|
6908
|
-
/* @__PURE__ */
|
|
6979
|
+
/* @__PURE__ */ import_react16.default.createElement("span", null, "No output transforms")
|
|
6909
6980
|
))
|
|
6910
6981
|
),
|
|
6911
|
-
advanced && /* @__PURE__ */
|
|
6982
|
+
advanced && /* @__PURE__ */ import_react16.default.createElement(
|
|
6912
6983
|
StateInspectorDisclosureSection,
|
|
6913
6984
|
{
|
|
6914
6985
|
title: "Tasks",
|
|
@@ -6916,7 +6987,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6916
6987
|
open: showTasks,
|
|
6917
6988
|
setOpen: setShowTasks
|
|
6918
6989
|
},
|
|
6919
|
-
/* @__PURE__ */
|
|
6990
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, tasks?.map((task) => /* @__PURE__ */ import_react16.default.createElement(
|
|
6920
6991
|
StateInspectorRow,
|
|
6921
6992
|
{
|
|
6922
6993
|
key: task.id,
|
|
@@ -6925,7 +6996,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6925
6996
|
backgroundColor: task.status === "done" ? "rgba(0,255,0,0.2)" : task.status === "error" ? "rgba(255,0,0,0.2)" : void 0
|
|
6926
6997
|
}
|
|
6927
6998
|
},
|
|
6928
|
-
/* @__PURE__ */
|
|
6999
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6929
7000
|
import_react_inspector7.ObjectInspector,
|
|
6930
7001
|
{
|
|
6931
7002
|
name: task.name,
|
|
@@ -6935,7 +7006,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6935
7006
|
)
|
|
6936
7007
|
)))
|
|
6937
7008
|
),
|
|
6938
|
-
/* @__PURE__ */
|
|
7009
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6939
7010
|
StateInspectorDisclosureSection,
|
|
6940
7011
|
{
|
|
6941
7012
|
open: showShared,
|
|
@@ -6943,7 +7014,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6943
7014
|
title: "Shared Connection Data",
|
|
6944
7015
|
colorScheme
|
|
6945
7016
|
},
|
|
6946
|
-
/* @__PURE__ */
|
|
7017
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, Object.entries(shared).map(([key, value]) => /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { key, colorScheme }, /* @__PURE__ */ import_react16.default.createElement(
|
|
6947
7018
|
import_react_inspector7.ObjectInspector,
|
|
6948
7019
|
{
|
|
6949
7020
|
name: key,
|
|
@@ -6953,7 +7024,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6953
7024
|
}
|
|
6954
7025
|
))))
|
|
6955
7026
|
),
|
|
6956
|
-
/* @__PURE__ */
|
|
7027
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6957
7028
|
ServerScriptLogsSection,
|
|
6958
7029
|
{
|
|
6959
7030
|
colorScheme,
|
|
@@ -6965,7 +7036,44 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6965
7036
|
containerRef: serverLogsContainerRef
|
|
6966
7037
|
}
|
|
6967
7038
|
),
|
|
6968
|
-
|
|
7039
|
+
showSimulationLogsSection && /* @__PURE__ */ import_react16.default.createElement(
|
|
7040
|
+
ServerScriptLogsSection,
|
|
7041
|
+
{
|
|
7042
|
+
title: "Server Script Simulation Logs",
|
|
7043
|
+
colorScheme,
|
|
7044
|
+
showLogs: showServerSimulationLogs,
|
|
7045
|
+
setShowLogs: setShowServerSimulationLogs,
|
|
7046
|
+
logs: visibleServerSimulationLogs,
|
|
7047
|
+
paused: serverSimulationLogsPaused,
|
|
7048
|
+
onTogglePaused: toggleServerSimulationLogsPaused,
|
|
7049
|
+
containerRef: serverSimulationLogsContainerRef
|
|
7050
|
+
}
|
|
7051
|
+
),
|
|
7052
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
7053
|
+
StateInspectorDisclosureSection,
|
|
7054
|
+
{
|
|
7055
|
+
open: showSimulation,
|
|
7056
|
+
setOpen: setShowSimulation,
|
|
7057
|
+
title: "Server Simulation",
|
|
7058
|
+
colorScheme
|
|
7059
|
+
},
|
|
7060
|
+
/* @__PURE__ */ import_react16.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react16.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react16.default.createElement(
|
|
7061
|
+
import_react_inspector7.ObjectInspector,
|
|
7062
|
+
{
|
|
7063
|
+
name: "status",
|
|
7064
|
+
data: simulationDiagnostics ?? {
|
|
7065
|
+
simulateLocally: false,
|
|
7066
|
+
simulatorActive: false,
|
|
7067
|
+
clockSkewMs: 0,
|
|
7068
|
+
invocations: [],
|
|
7069
|
+
pendingPredictions: []
|
|
7070
|
+
},
|
|
7071
|
+
theme,
|
|
7072
|
+
expandLevel: 2
|
|
7073
|
+
}
|
|
7074
|
+
)))
|
|
7075
|
+
),
|
|
7076
|
+
advanced && /* @__PURE__ */ import_react16.default.createElement(
|
|
6969
7077
|
ActivityEventsSection,
|
|
6970
7078
|
{
|
|
6971
7079
|
colorScheme,
|
|
@@ -6975,10 +7083,12 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6975
7083
|
activityEventsManager
|
|
6976
7084
|
}
|
|
6977
7085
|
),
|
|
6978
|
-
/* @__PURE__ */
|
|
7086
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6979
7087
|
EventsSection,
|
|
6980
7088
|
{
|
|
6981
|
-
connectionEvents,
|
|
7089
|
+
connectionEvents: visibleConnectionEvents,
|
|
7090
|
+
paused: connectionEventsPaused,
|
|
7091
|
+
onTogglePaused: toggleConnectionEventsPaused,
|
|
6982
7092
|
colorScheme,
|
|
6983
7093
|
eventsContainerRef,
|
|
6984
7094
|
showEvents,
|
|
@@ -7021,7 +7131,7 @@ function useStateInspector({
|
|
|
7021
7131
|
colorScheme,
|
|
7022
7132
|
anchor
|
|
7023
7133
|
}) {
|
|
7024
|
-
const [root, setRoot] =
|
|
7134
|
+
const [root, setRoot] = import_react17.default.useState(null);
|
|
7025
7135
|
(0, import_react_utils2.useIsomorphicLayoutEffect)(() => {
|
|
7026
7136
|
if (disabled) return;
|
|
7027
7137
|
const { root: root2, unmount } = createStateInspectorRoot();
|
|
@@ -7031,7 +7141,7 @@ function useStateInspector({
|
|
|
7031
7141
|
(0, import_react_utils2.useIsomorphicLayoutEffect)(() => {
|
|
7032
7142
|
if (!root) return;
|
|
7033
7143
|
root.render(
|
|
7034
|
-
/* @__PURE__ */
|
|
7144
|
+
/* @__PURE__ */ import_react17.default.createElement(
|
|
7035
7145
|
StateInspector,
|
|
7036
7146
|
{
|
|
7037
7147
|
colorScheme,
|
|
@@ -7046,18 +7156,18 @@ function useStateInspector({
|
|
|
7046
7156
|
|
|
7047
7157
|
// src/hooks.ts
|
|
7048
7158
|
function useManagedState(createInitialState, options) {
|
|
7049
|
-
const [stateManager] = (0,
|
|
7159
|
+
const [stateManager] = (0, import_react18.useState)(
|
|
7050
7160
|
() => new import_state_manager2.StateManager(createInitialState(), options)
|
|
7051
7161
|
);
|
|
7052
|
-
const getSnapshot = (0,
|
|
7162
|
+
const getSnapshot = (0, import_react18.useCallback)(() => {
|
|
7053
7163
|
return stateManager.getState();
|
|
7054
7164
|
}, [stateManager]);
|
|
7055
|
-
const state = (0,
|
|
7165
|
+
const state = (0, import_react18.useSyncExternalStore)(
|
|
7056
7166
|
stateManager.addListener,
|
|
7057
7167
|
getSnapshot,
|
|
7058
7168
|
getSnapshot
|
|
7059
7169
|
);
|
|
7060
|
-
const setState = (0,
|
|
7170
|
+
const setState = (0, import_react18.useCallback)(
|
|
7061
7171
|
(...args) => {
|
|
7062
7172
|
const [metadata, action] = args.length === 1 ? [void 0, args[0]] : args;
|
|
7063
7173
|
if (metadata === void 0) {
|
|
@@ -7093,7 +7203,7 @@ function useManagedState(createInitialState, options) {
|
|
|
7093
7203
|
return [state, setState, stateManager];
|
|
7094
7204
|
}
|
|
7095
7205
|
function useManagedHistory(stateManager) {
|
|
7096
|
-
return (0,
|
|
7206
|
+
return (0, import_react18.useSyncExternalStore)(
|
|
7097
7207
|
stateManager.historyEmittor.addListener,
|
|
7098
7208
|
stateManager.getHistorySnapshot,
|
|
7099
7209
|
stateManager.getHistorySnapshot
|
|
@@ -7104,7 +7214,7 @@ function useBindNoyaManager(noyaManager, options) {
|
|
|
7104
7214
|
noyaManager.multiplayerStateManager.optimisticState$
|
|
7105
7215
|
);
|
|
7106
7216
|
const assets = useObservable(noyaManager.assetManager.assets$);
|
|
7107
|
-
const extras = (0,
|
|
7217
|
+
const extras = (0, import_react18.useMemo)(() => {
|
|
7108
7218
|
return {
|
|
7109
7219
|
noyaManager,
|
|
7110
7220
|
taskManager: noyaManager.taskManager,
|
|
@@ -7123,8 +7233,8 @@ function useBindNoyaManager(noyaManager, options) {
|
|
|
7123
7233
|
assets
|
|
7124
7234
|
};
|
|
7125
7235
|
}, [noyaManager, assets]);
|
|
7126
|
-
const syncRef = (0,
|
|
7127
|
-
(0,
|
|
7236
|
+
const syncRef = (0, import_react18.useRef)(options?.sync);
|
|
7237
|
+
(0, import_react18.useEffect)(() => {
|
|
7128
7238
|
if (syncRef.current) {
|
|
7129
7239
|
return syncRef.current({ noyaManager });
|
|
7130
7240
|
}
|
|
@@ -7144,7 +7254,7 @@ function useMultiplayerState(initialState, options) {
|
|
|
7144
7254
|
inspector,
|
|
7145
7255
|
...rest
|
|
7146
7256
|
} = options ?? {};
|
|
7147
|
-
const [noyaManager] = (0,
|
|
7257
|
+
const [noyaManager] = (0, import_react18.useState)(
|
|
7148
7258
|
() => new import_state_manager2.NoyaManager(initialState, rest)
|
|
7149
7259
|
);
|
|
7150
7260
|
return useBindNoyaManager(noyaManager, {
|
|
@@ -7154,13 +7264,13 @@ function useMultiplayerState(initialState, options) {
|
|
|
7154
7264
|
}
|
|
7155
7265
|
function useErrorOverlay(noyaManager) {
|
|
7156
7266
|
const unrecoverableError = useObservable(noyaManager.unrecoverableError);
|
|
7157
|
-
(0,
|
|
7267
|
+
(0, import_react18.useEffect)(() => {
|
|
7158
7268
|
if (!unrecoverableError) return;
|
|
7159
7269
|
const el = document.createElement("div");
|
|
7160
7270
|
el.id = "noya-multiplayer-react-error-overlay";
|
|
7161
7271
|
document.body.appendChild(el);
|
|
7162
7272
|
const root = (0, import_client2.createRoot)(el);
|
|
7163
|
-
root.render((0,
|
|
7273
|
+
root.render((0, import_react18.createElement)(ErrorOverlay, { error: unrecoverableError }));
|
|
7164
7274
|
return () => {
|
|
7165
7275
|
root.unmount();
|
|
7166
7276
|
el.remove();
|
|
@@ -7250,12 +7360,12 @@ function useNoyaStateInternal(...args) {
|
|
|
7250
7360
|
isDemo,
|
|
7251
7361
|
access
|
|
7252
7362
|
}
|
|
7253
|
-
] = (0,
|
|
7363
|
+
] = (0, import_react19.useState)(() => {
|
|
7254
7364
|
return getAppData(initialState, options?.schema, {
|
|
7255
7365
|
overrideExistingState: options?.overrideExistingState
|
|
7256
7366
|
});
|
|
7257
7367
|
});
|
|
7258
|
-
const basePolicyAuthContext = (0,
|
|
7368
|
+
const basePolicyAuthContext = (0, import_react19.useMemo)(() => {
|
|
7259
7369
|
if (!access && userId === void 0) return void 0;
|
|
7260
7370
|
const context = {};
|
|
7261
7371
|
if (access) {
|
|
@@ -7266,7 +7376,7 @@ function useNoyaStateInternal(...args) {
|
|
|
7266
7376
|
}
|
|
7267
7377
|
return context;
|
|
7268
7378
|
}, [access, userId]);
|
|
7269
|
-
const sync = (0,
|
|
7379
|
+
const sync = (0, import_react19.useMemo)(() => {
|
|
7270
7380
|
return getSyncAdapter({
|
|
7271
7381
|
multiplayerUrl,
|
|
7272
7382
|
offlineStorageKey: options?.offlineStorageKey,
|
|
@@ -7279,16 +7389,16 @@ function useNoyaStateInternal(...args) {
|
|
|
7279
7389
|
options?.debug,
|
|
7280
7390
|
basePolicyAuthContext
|
|
7281
7391
|
]);
|
|
7282
|
-
const [noyaManager] = (0,
|
|
7392
|
+
const [noyaManager] = (0, import_react19.useState)(
|
|
7283
7393
|
() => new import_state_manager3.NoyaManager(noyaAppInitialState, options)
|
|
7284
7394
|
);
|
|
7285
|
-
(0,
|
|
7395
|
+
(0, import_react19.useEffect)(() => {
|
|
7286
7396
|
if (!userId) return;
|
|
7287
7397
|
noyaManager.sharedConnectionDataManager.setCurrentConnectionId(userId);
|
|
7288
7398
|
noyaManager.userManager.setCurrentConnectionId(userId);
|
|
7289
7399
|
noyaManager.userManager.setCurrentUserId(userId);
|
|
7290
7400
|
}, [noyaManager, userId]);
|
|
7291
|
-
(0,
|
|
7401
|
+
(0, import_react19.useEffect)(() => {
|
|
7292
7402
|
if (!basePolicyAuthContext) return;
|
|
7293
7403
|
noyaManager.multiplayerStateManager.setPolicyAuthContext(
|
|
7294
7404
|
basePolicyAuthContext
|
|
@@ -7299,7 +7409,7 @@ function useNoyaStateInternal(...args) {
|
|
|
7299
7409
|
sync: options?.sync ?? sync
|
|
7300
7410
|
});
|
|
7301
7411
|
const [, , extras] = result;
|
|
7302
|
-
const mergedExtras = (0,
|
|
7412
|
+
const mergedExtras = (0, import_react19.useMemo)(() => {
|
|
7303
7413
|
return { ...extras, theme, viewType, isDemo };
|
|
7304
7414
|
}, [extras, theme, viewType, isDemo]);
|
|
7305
7415
|
return [result[0], result[1], mergedExtras];
|
|
@@ -7307,7 +7417,7 @@ function useNoyaStateInternal(...args) {
|
|
|
7307
7417
|
|
|
7308
7418
|
// src/singleton.tsx
|
|
7309
7419
|
var import_state_manager4 = require("@noya-app/state-manager");
|
|
7310
|
-
var
|
|
7420
|
+
var import_react20 = __toESM(require("react"));
|
|
7311
7421
|
var noyaManagerSingleton;
|
|
7312
7422
|
var noyaSingletonBindings;
|
|
7313
7423
|
function initializeNoyaSingleton(options) {
|
|
@@ -7324,7 +7434,6 @@ function initializeNoyaSingleton(options) {
|
|
|
7324
7434
|
viewType,
|
|
7325
7435
|
offlineStorageKey,
|
|
7326
7436
|
multiplayerUrl,
|
|
7327
|
-
serverScripts,
|
|
7328
7437
|
...managerOptions
|
|
7329
7438
|
} = options ?? {};
|
|
7330
7439
|
const appData = getAppData(
|
|
@@ -7351,7 +7460,7 @@ function initializeNoyaSingleton(options) {
|
|
|
7351
7460
|
multiplayerUrl: multiplayerUrl ?? appData.multiplayerUrl,
|
|
7352
7461
|
offlineStorageKey,
|
|
7353
7462
|
debug: managerOptions?.debug,
|
|
7354
|
-
serverScripts,
|
|
7463
|
+
serverScripts: managerOptions?.serverScripts,
|
|
7355
7464
|
policyAuthContext
|
|
7356
7465
|
});
|
|
7357
7466
|
try {
|
|
@@ -7365,7 +7474,7 @@ function initializeNoyaSingleton(options) {
|
|
|
7365
7474
|
if (resolvedInspector) {
|
|
7366
7475
|
const { root } = createStateInspectorRoot();
|
|
7367
7476
|
root.render(
|
|
7368
|
-
/* @__PURE__ */
|
|
7477
|
+
/* @__PURE__ */ import_react20.default.createElement(
|
|
7369
7478
|
StateInspector,
|
|
7370
7479
|
{
|
|
7371
7480
|
noyaManager: noyaManagerSingleton,
|
|
@@ -7466,9 +7575,9 @@ function buildResourcePatchPayload({
|
|
|
7466
7575
|
}
|
|
7467
7576
|
return patch;
|
|
7468
7577
|
}
|
|
7469
|
-
var AnyNoyaStateContext = (0,
|
|
7578
|
+
var AnyNoyaStateContext = (0, import_react21.createContext)(void 0);
|
|
7470
7579
|
function useAnyNoyaStateContext() {
|
|
7471
|
-
const value = (0,
|
|
7580
|
+
const value = (0, import_react21.useContext)(AnyNoyaStateContext);
|
|
7472
7581
|
if (!value) {
|
|
7473
7582
|
const bindings = getNoyaSingletonBindings();
|
|
7474
7583
|
if (bindings) {
|
|
@@ -7502,7 +7611,7 @@ function useAssets() {
|
|
|
7502
7611
|
}
|
|
7503
7612
|
function useAsset(id) {
|
|
7504
7613
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7505
|
-
const observable = (0,
|
|
7614
|
+
const observable = (0, import_react21.useMemo)(
|
|
7506
7615
|
() => noyaManager.assetManager.assets$.map(
|
|
7507
7616
|
(assets) => assets.find((a) => a.stableId === id) ?? assets.find((a) => a.id === id)
|
|
7508
7617
|
),
|
|
@@ -7513,7 +7622,7 @@ function useAsset(id) {
|
|
|
7513
7622
|
function useAssetManager() {
|
|
7514
7623
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7515
7624
|
const isInitialized = useObservable(noyaManager.assetManager.isInitialized$);
|
|
7516
|
-
return (0,
|
|
7625
|
+
return (0, import_react21.useMemo)(
|
|
7517
7626
|
() => ({
|
|
7518
7627
|
create: noyaManager.assetManager.create,
|
|
7519
7628
|
delete: noyaManager.assetManager.delete,
|
|
@@ -7538,7 +7647,7 @@ function useSecret(name) {
|
|
|
7538
7647
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7539
7648
|
return useObservable(
|
|
7540
7649
|
noyaManager.secretManager.secrets$,
|
|
7541
|
-
(0,
|
|
7650
|
+
(0, import_react21.useCallback)((secrets) => secrets.find((s) => s.name === name), [name])
|
|
7542
7651
|
);
|
|
7543
7652
|
}
|
|
7544
7653
|
function useInputs() {
|
|
@@ -7556,7 +7665,7 @@ function useIOManager() {
|
|
|
7556
7665
|
function usePublish(callback) {
|
|
7557
7666
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7558
7667
|
const stableCallback = (0, import_react_utils3.useStableCallback)(callback);
|
|
7559
|
-
(0,
|
|
7668
|
+
(0, import_react21.useEffect)(() => {
|
|
7560
7669
|
noyaManager.publishingManager.setPublishingEnabled(true);
|
|
7561
7670
|
noyaManager.publishingManager.getFilesToPublish = stableCallback;
|
|
7562
7671
|
return () => {
|
|
@@ -7567,7 +7676,7 @@ function usePublish(callback) {
|
|
|
7567
7676
|
}
|
|
7568
7677
|
function useIsInitialized() {
|
|
7569
7678
|
const { noyaManager, viewType } = useAnyNoyaStateContext();
|
|
7570
|
-
const isInitializedObservable = (0,
|
|
7679
|
+
const isInitializedObservable = (0, import_react21.useMemo)(
|
|
7571
7680
|
() => import_observable.Observable.combine(
|
|
7572
7681
|
[
|
|
7573
7682
|
...viewType === "preview" ? [] : [noyaManager.multiplayerStateManager.isInitialized$],
|
|
@@ -7584,29 +7693,33 @@ function usePipelineManager() {
|
|
|
7584
7693
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7585
7694
|
return noyaManager.pipelineManager;
|
|
7586
7695
|
}
|
|
7587
|
-
function
|
|
7696
|
+
function useNoyaUserManager() {
|
|
7588
7697
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7589
7698
|
return noyaManager.userManager;
|
|
7590
7699
|
}
|
|
7591
|
-
function
|
|
7592
|
-
const userManager =
|
|
7593
|
-
return useObservable(userManager?.
|
|
7700
|
+
function useNoyaUsers() {
|
|
7701
|
+
const userManager = useNoyaUserManager();
|
|
7702
|
+
return useObservable(userManager?.allUsers$);
|
|
7594
7703
|
}
|
|
7595
|
-
function
|
|
7596
|
-
const userManager =
|
|
7704
|
+
function useNoyaUser(id) {
|
|
7705
|
+
const userManager = useNoyaUserManager();
|
|
7597
7706
|
return useObservable(
|
|
7598
|
-
userManager?.
|
|
7599
|
-
(0,
|
|
7600
|
-
(users) => {
|
|
7601
|
-
return users.find((user) => {
|
|
7602
|
-
const prefix = user.connectionId.slice(0, 8);
|
|
7603
|
-
return userId?.includes(prefix);
|
|
7604
|
-
});
|
|
7605
|
-
},
|
|
7606
|
-
[userId]
|
|
7607
|
-
)
|
|
7707
|
+
userManager?.allUsers$,
|
|
7708
|
+
(0, import_react21.useCallback)((users) => (0, import_state_manager5.findNoyaUser)(users, id), [id])
|
|
7608
7709
|
);
|
|
7609
7710
|
}
|
|
7711
|
+
function useNoyaActiveUsers() {
|
|
7712
|
+
const userManager = useNoyaUserManager();
|
|
7713
|
+
return useObservable(userManager?.connectedUsers$);
|
|
7714
|
+
}
|
|
7715
|
+
function useNoyaCurrentUser() {
|
|
7716
|
+
const userManager = useNoyaUserManager();
|
|
7717
|
+
return useObservable(userManager?.currentUser$);
|
|
7718
|
+
}
|
|
7719
|
+
function useNoyaCurrentUserId() {
|
|
7720
|
+
const userManager = useNoyaUserManager();
|
|
7721
|
+
return useObservable(userManager?.currentId$);
|
|
7722
|
+
}
|
|
7610
7723
|
function useAnySharedConnectionData() {
|
|
7611
7724
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7612
7725
|
return noyaManager.sharedConnectionDataManager;
|
|
@@ -7615,26 +7728,6 @@ function useEnqueueInput() {
|
|
|
7615
7728
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7616
7729
|
return noyaManager.enqueueInput;
|
|
7617
7730
|
}
|
|
7618
|
-
function useNoyaUser() {
|
|
7619
|
-
const userManager = useUserManager();
|
|
7620
|
-
return useObservable(userManager?.currentUser$);
|
|
7621
|
-
}
|
|
7622
|
-
function useNoyaId() {
|
|
7623
|
-
const userManager = useUserManager();
|
|
7624
|
-
return useObservable(userManager?.currentId$);
|
|
7625
|
-
}
|
|
7626
|
-
function useNoyaUserId() {
|
|
7627
|
-
const userManager = useUserManager();
|
|
7628
|
-
return useObservable(userManager?.currentUserId$);
|
|
7629
|
-
}
|
|
7630
|
-
function useNoyaConnectionId() {
|
|
7631
|
-
const userManager = useUserManager();
|
|
7632
|
-
return useObservable(userManager?.currentConnectionId$);
|
|
7633
|
-
}
|
|
7634
|
-
function useNoyaClientId() {
|
|
7635
|
-
const userManager = useUserManager();
|
|
7636
|
-
return useObservable(userManager?.currentClientId$);
|
|
7637
|
-
}
|
|
7638
7731
|
function useIsProcessing() {
|
|
7639
7732
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7640
7733
|
return useObservable(noyaManager.isProcessing$);
|
|
@@ -7662,7 +7755,7 @@ function useNoyaTranscriptionManager() {
|
|
|
7662
7755
|
}
|
|
7663
7756
|
function useNoyaAssetTranscription(assetId, options) {
|
|
7664
7757
|
const transcriptionManager = useNoyaTranscriptionManager();
|
|
7665
|
-
const observable = (0,
|
|
7758
|
+
const observable = (0, import_react21.useMemo)(() => {
|
|
7666
7759
|
if (!assetId) return void 0;
|
|
7667
7760
|
return transcriptionManager.getAssetTranscription$(assetId, {
|
|
7668
7761
|
endpoint: options?.endpoint,
|
|
@@ -7688,13 +7781,13 @@ function useResources({
|
|
|
7688
7781
|
const assetManager = useAssetManager();
|
|
7689
7782
|
const resourceMap = useObservable(
|
|
7690
7783
|
resourceManager.optimisticResources$,
|
|
7691
|
-
(0,
|
|
7784
|
+
(0, import_react21.useCallback)((resources) => {
|
|
7692
7785
|
return Object.fromEntries(
|
|
7693
7786
|
resources.map((resource) => [resource.path, resource])
|
|
7694
7787
|
);
|
|
7695
7788
|
}, [])
|
|
7696
7789
|
);
|
|
7697
|
-
const setResourceMap = (0,
|
|
7790
|
+
const setResourceMap = (0, import_react21.useCallback)(
|
|
7698
7791
|
async (action) => {
|
|
7699
7792
|
const newResourceMap = action instanceof Function ? action(resourceMap) : action;
|
|
7700
7793
|
const { addedResources, removedResources, modifiedResources } = diffResourceMaps(resourceMap, newResourceMap, "id");
|
|
@@ -7728,9 +7821,9 @@ function useActivityEvents(streamFilter) {
|
|
|
7728
7821
|
);
|
|
7729
7822
|
}
|
|
7730
7823
|
function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
7731
|
-
const [streamId, setStreamId] = (0,
|
|
7824
|
+
const [streamId, setStreamId] = (0, import_react21.useState)(void 0);
|
|
7732
7825
|
const stableStreamFilter = (0, import_react_utils3.useJsonMemo)(streamFilter);
|
|
7733
|
-
(0,
|
|
7826
|
+
(0, import_react21.useEffect)(() => {
|
|
7734
7827
|
if (!stableStreamFilter) return;
|
|
7735
7828
|
const streamId2 = activityEventsManager.subscribe(stableStreamFilter);
|
|
7736
7829
|
setStreamId(streamId2);
|
|
@@ -7761,7 +7854,7 @@ function createNoyaContext({
|
|
|
7761
7854
|
children,
|
|
7762
7855
|
contextValue
|
|
7763
7856
|
}) {
|
|
7764
|
-
return /* @__PURE__ */
|
|
7857
|
+
return /* @__PURE__ */ import_react21.default.createElement(AnyNoyaStateContext.Provider, { value: contextValue }, children);
|
|
7765
7858
|
}
|
|
7766
7859
|
function NoyaStateProvider({
|
|
7767
7860
|
children,
|
|
@@ -7776,7 +7869,7 @@ function createNoyaContext({
|
|
|
7776
7869
|
safeEval,
|
|
7777
7870
|
...options
|
|
7778
7871
|
});
|
|
7779
|
-
const contextValue = (0,
|
|
7872
|
+
const contextValue = (0, import_react21.useMemo)(
|
|
7780
7873
|
() => ({
|
|
7781
7874
|
noyaManager,
|
|
7782
7875
|
theme,
|
|
@@ -7784,12 +7877,12 @@ function createNoyaContext({
|
|
|
7784
7877
|
}),
|
|
7785
7878
|
[noyaManager, theme, viewType]
|
|
7786
7879
|
);
|
|
7787
|
-
return /* @__PURE__ */
|
|
7880
|
+
return /* @__PURE__ */ import_react21.default.createElement(NoyaContextProvider, { contextValue }, options.fallback !== void 0 ? /* @__PURE__ */ import_react21.default.createElement(FallbackUntilInitialized, { fallback: options.fallback }, children) : children);
|
|
7788
7881
|
}
|
|
7789
7882
|
function useValue(path2, options) {
|
|
7790
7883
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7791
7884
|
let actualPath = typeof path2 === "function" || !path2 ? "" : path2;
|
|
7792
|
-
const mappedObservable = (0,
|
|
7885
|
+
const mappedObservable = (0, import_react21.useMemo)(() => {
|
|
7793
7886
|
if (typeof path2 === "function") {
|
|
7794
7887
|
return noyaManager.multiplayerStateManager.optimisticState$.map(path2, {
|
|
7795
7888
|
isEqual: options?.isEqual
|
|
@@ -7802,7 +7895,7 @@ function createNoyaContext({
|
|
|
7802
7895
|
}
|
|
7803
7896
|
function useSetValue(path2) {
|
|
7804
7897
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7805
|
-
const setValue = (0,
|
|
7898
|
+
const setValue = (0, import_react21.useCallback)(
|
|
7806
7899
|
(...args) => {
|
|
7807
7900
|
const [metadata, value] = args.length === 2 ? args : [{}, args[0]];
|
|
7808
7901
|
noyaManager.multiplayerStateManager.setStateAtPath(
|
|
@@ -7838,7 +7931,7 @@ function createNoyaContext({
|
|
|
7838
7931
|
}
|
|
7839
7932
|
function useSetLeftMenuItems(leftMenuItems) {
|
|
7840
7933
|
const { menuManager } = useNoyaManager();
|
|
7841
|
-
(0,
|
|
7934
|
+
(0, import_react21.useEffect)(() => {
|
|
7842
7935
|
if (leftMenuItems) {
|
|
7843
7936
|
menuManager.setLeftMenuItems(leftMenuItems);
|
|
7844
7937
|
}
|
|
@@ -7850,7 +7943,7 @@ function createNoyaContext({
|
|
|
7850
7943
|
}
|
|
7851
7944
|
function useSetRightMenuItems(rightMenuItems) {
|
|
7852
7945
|
const { menuManager } = useNoyaManager();
|
|
7853
|
-
(0,
|
|
7946
|
+
(0, import_react21.useEffect)(() => {
|
|
7854
7947
|
if (rightMenuItems) {
|
|
7855
7948
|
menuManager.setRightMenuItems(rightMenuItems);
|
|
7856
7949
|
}
|
|
@@ -7858,19 +7951,19 @@ function createNoyaContext({
|
|
|
7858
7951
|
}
|
|
7859
7952
|
function useHandleMenuItem(callback) {
|
|
7860
7953
|
const { menuManager } = useNoyaManager();
|
|
7861
|
-
(0,
|
|
7954
|
+
(0, import_react21.useEffect)(() => {
|
|
7862
7955
|
return menuManager.addListener(callback);
|
|
7863
7956
|
}, [menuManager, callback]);
|
|
7864
7957
|
}
|
|
7865
7958
|
function useOnSelectMenuItemCallback() {
|
|
7866
7959
|
const { menuManager } = useNoyaManager();
|
|
7867
|
-
return (0,
|
|
7960
|
+
return (0, import_react21.useCallback)((type) => menuManager.emit(type), [menuManager]);
|
|
7868
7961
|
}
|
|
7869
7962
|
function useMenu(options) {
|
|
7870
7963
|
const { leftMenuItems, rightMenuItems, onSelectMenuItem } = options;
|
|
7871
7964
|
useSetLeftMenuItems(leftMenuItems);
|
|
7872
7965
|
useSetRightMenuItems(rightMenuItems);
|
|
7873
|
-
const noop = (0,
|
|
7966
|
+
const noop = (0, import_react21.useCallback)(() => {
|
|
7874
7967
|
}, []);
|
|
7875
7968
|
useHandleMenuItem(onSelectMenuItem ?? noop);
|
|
7876
7969
|
}
|
|
@@ -7897,7 +7990,7 @@ function createNoyaContext({
|
|
|
7897
7990
|
// src/ai.ts
|
|
7898
7991
|
function useRegisterAITool(tool) {
|
|
7899
7992
|
const aiManager = useAIManager();
|
|
7900
|
-
(0,
|
|
7993
|
+
(0, import_react22.useEffect)(() => {
|
|
7901
7994
|
return aiManager.registerTool(tool);
|
|
7902
7995
|
}, [aiManager, tool]);
|
|
7903
7996
|
}
|
|
@@ -7909,7 +8002,7 @@ function useCallableAITools() {
|
|
|
7909
8002
|
// src/components/UserPointersOverlay.tsx
|
|
7910
8003
|
var import_observable2 = require("@noya-app/observable");
|
|
7911
8004
|
var import_react_utils4 = require("@noya-app/react-utils");
|
|
7912
|
-
var
|
|
8005
|
+
var import_react23 = __toESM(require("react"));
|
|
7913
8006
|
function shouldShow(hideAfter, updatedAt) {
|
|
7914
8007
|
return !!updatedAt && Date.now() - updatedAt < hideAfter;
|
|
7915
8008
|
}
|
|
@@ -7919,7 +8012,7 @@ var UserPointerInternal = (0, import_react_utils4.memoGeneric)(function UserPoin
|
|
|
7919
8012
|
hideAfter = 5e3,
|
|
7920
8013
|
renderUserPointer
|
|
7921
8014
|
}) {
|
|
7922
|
-
const observable = (0,
|
|
8015
|
+
const observable = (0, import_react23.useMemo)(() => {
|
|
7923
8016
|
const metadata$ = sharedConnectionDataManager.metadata$.observePath([user.connectionId]).throttle(50);
|
|
7924
8017
|
const data$ = sharedConnectionDataManager.data$.observePath([user.connectionId]).throttle(50);
|
|
7925
8018
|
return import_observable2.Observable.combine([metadata$, data$], ([metadata2, data2]) => {
|
|
@@ -7927,10 +8020,10 @@ var UserPointerInternal = (0, import_react_utils4.memoGeneric)(function UserPoin
|
|
|
7927
8020
|
});
|
|
7928
8021
|
}, [sharedConnectionDataManager, user.connectionId]);
|
|
7929
8022
|
const { metadata, data } = useObservable(observable);
|
|
7930
|
-
const [, setForceUpdate] = (0,
|
|
8023
|
+
const [, setForceUpdate] = (0, import_react23.useState)(0);
|
|
7931
8024
|
const updatedAt = metadata?.updatedAt ?? 0;
|
|
7932
8025
|
const show = shouldShow(hideAfter, updatedAt);
|
|
7933
|
-
(0,
|
|
8026
|
+
(0, import_react23.useEffect)(() => {
|
|
7934
8027
|
if (!show) return;
|
|
7935
8028
|
const timeoutId = setTimeout(() => {
|
|
7936
8029
|
setForceUpdate((prev) => prev + 1);
|
|
@@ -7954,9 +8047,9 @@ var UserPointersOverlay = (0, import_react_utils4.memoGeneric)(function UserPoin
|
|
|
7954
8047
|
sharedConnectionDataManager.currentConnectionId$
|
|
7955
8048
|
);
|
|
7956
8049
|
const connectedUsers = useObservable(userManager.connectedUsers$);
|
|
7957
|
-
return /* @__PURE__ */
|
|
8050
|
+
return /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, connectedUsers.map((user) => {
|
|
7958
8051
|
if (user.connectionId === currentConnectionId) return null;
|
|
7959
|
-
return /* @__PURE__ */
|
|
8052
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
7960
8053
|
UserPointerInternal,
|
|
7961
8054
|
{
|
|
7962
8055
|
key: user.connectionId,
|
|
@@ -7969,17 +8062,17 @@ var UserPointersOverlay = (0, import_react_utils4.memoGeneric)(function UserPoin
|
|
|
7969
8062
|
});
|
|
7970
8063
|
|
|
7971
8064
|
// src/WebSocketConnection.ts
|
|
7972
|
-
var
|
|
8065
|
+
var import_state_manager6 = require("@noya-app/state-manager");
|
|
7973
8066
|
var WebSocketConnection = class {
|
|
7974
8067
|
constructor(url, options = {}) {
|
|
7975
8068
|
this.url = url;
|
|
7976
8069
|
this.options = options;
|
|
7977
|
-
this.ws = new
|
|
8070
|
+
this.ws = new import_state_manager6.ReconnectingWebSocket({
|
|
7978
8071
|
debug: options.debug,
|
|
7979
8072
|
onopen: this.handleOpen,
|
|
7980
8073
|
onmessage: this.handleMessage,
|
|
7981
8074
|
onclose: this.handleClose,
|
|
7982
|
-
activityDetector: new
|
|
8075
|
+
activityDetector: new import_state_manager6.UserActivityDetector()
|
|
7983
8076
|
});
|
|
7984
8077
|
}
|
|
7985
8078
|
ws;
|
|
@@ -8084,8 +8177,6 @@ var WebSocketConnection = class {
|
|
|
8084
8177
|
useBindNoyaManager,
|
|
8085
8178
|
useCallableAITools,
|
|
8086
8179
|
useColorScheme,
|
|
8087
|
-
useConnectedUser,
|
|
8088
|
-
useConnectedUsers,
|
|
8089
8180
|
useEnqueueInput,
|
|
8090
8181
|
useFileName,
|
|
8091
8182
|
useFilePropertyManager,
|
|
@@ -8096,14 +8187,15 @@ var WebSocketConnection = class {
|
|
|
8096
8187
|
useManagedHistory,
|
|
8097
8188
|
useManagedState,
|
|
8098
8189
|
useMultiplayerState,
|
|
8190
|
+
useNoyaActiveUsers,
|
|
8099
8191
|
useNoyaAssetTranscription,
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
useNoyaId,
|
|
8192
|
+
useNoyaCurrentUser,
|
|
8193
|
+
useNoyaCurrentUserId,
|
|
8103
8194
|
useNoyaStateInternal,
|
|
8104
8195
|
useNoyaTranscriptionManager,
|
|
8105
8196
|
useNoyaUser,
|
|
8106
|
-
|
|
8197
|
+
useNoyaUserManager,
|
|
8198
|
+
useNoyaUsers,
|
|
8107
8199
|
useObservable,
|
|
8108
8200
|
useOutputTransforms,
|
|
8109
8201
|
usePipelineManager,
|
|
@@ -8116,7 +8208,6 @@ var WebSocketConnection = class {
|
|
|
8116
8208
|
useSecrets,
|
|
8117
8209
|
useSetFileNameState,
|
|
8118
8210
|
useStateInspector,
|
|
8119
|
-
useUserManager,
|
|
8120
8211
|
useViewType,
|
|
8121
8212
|
...require("@noya-app/state-manager")
|
|
8122
8213
|
});
|