@noya-app/noya-api-client-react 0.1.44 → 0.1.45
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 +9 -9
- package/CHANGELOG.md +7 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +273 -151
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +239 -117
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -7509,7 +7509,7 @@ var import_noya_utils6 = require("@noya-app/noya-utils");
|
|
|
7509
7509
|
var import_observable8 = require("@noya-app/observable");
|
|
7510
7510
|
|
|
7511
7511
|
// ../state-manager/src/multiplayer.ts
|
|
7512
|
-
var
|
|
7512
|
+
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
7513
7513
|
var import_observable10 = require("@noya-app/observable");
|
|
7514
7514
|
|
|
7515
7515
|
// ../../node_modules/@marcbachmann/cel-js/lib/errors.js
|
|
@@ -10526,21 +10526,24 @@ celEnvironment.registerFunction("random(): double", () => Math.random()).registe
|
|
|
10526
10526
|
).registerFunction("uuid(): string", () => (0, import_noya_utils7.uuid)());
|
|
10527
10527
|
var READ_DENIED = Symbol("readDenied");
|
|
10528
10528
|
|
|
10529
|
+
// ../state-manager/src/serverScripts.ts
|
|
10530
|
+
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
10531
|
+
|
|
10529
10532
|
// ../state-manager/src/stateManager.ts
|
|
10530
10533
|
var import_observable9 = require("@noya-app/observable");
|
|
10531
10534
|
|
|
10532
10535
|
// ../state-manager/src/multiplayer.ts
|
|
10533
|
-
var createHash = (value, options) => (0,
|
|
10536
|
+
var createHash = (value, options) => (0, import_noya_utils9.hash)(value, { ...options, ignoreUndefinedProperties: true });
|
|
10534
10537
|
|
|
10535
10538
|
// ../state-manager/src/NoyaManager.ts
|
|
10536
10539
|
var import_noya_utils19 = require("@noya-app/noya-utils");
|
|
10537
|
-
var
|
|
10540
|
+
var import_observable22 = require("@noya-app/observable");
|
|
10538
10541
|
|
|
10539
10542
|
// ../noya-pipeline/src/graphToTasks.ts
|
|
10540
10543
|
var import_observable11 = require("@noya-app/observable");
|
|
10541
10544
|
|
|
10542
10545
|
// ../noya-pipeline/src/state.ts
|
|
10543
|
-
var
|
|
10546
|
+
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
10544
10547
|
var rectSchema = Type.Object({
|
|
10545
10548
|
x: Type.Number(),
|
|
10546
10549
|
y: Type.Number(),
|
|
@@ -10645,32 +10648,35 @@ var import_observable12 = require("@noya-app/observable");
|
|
|
10645
10648
|
var import_observable13 = require("@noya-app/observable");
|
|
10646
10649
|
|
|
10647
10650
|
// ../state-manager/src/ResourceManager.ts
|
|
10648
|
-
var
|
|
10651
|
+
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
10649
10652
|
var import_observable14 = require("@noya-app/observable");
|
|
10650
10653
|
|
|
10651
|
-
// ../state-manager/src/
|
|
10652
|
-
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
10654
|
+
// ../state-manager/src/SandboxManager.ts
|
|
10653
10655
|
var import_observable15 = require("@noya-app/observable");
|
|
10654
10656
|
|
|
10655
|
-
// ../state-manager/src/
|
|
10657
|
+
// ../state-manager/src/rpcManager.ts
|
|
10658
|
+
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
10656
10659
|
var import_observable16 = require("@noya-app/observable");
|
|
10657
10660
|
|
|
10658
|
-
// ../state-manager/src/
|
|
10661
|
+
// ../state-manager/src/SecretManager.ts
|
|
10659
10662
|
var import_observable17 = require("@noya-app/observable");
|
|
10660
10663
|
|
|
10661
|
-
// ../state-manager/src/
|
|
10662
|
-
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
10664
|
+
// ../state-manager/src/TaskManager.ts
|
|
10663
10665
|
var import_observable18 = require("@noya-app/observable");
|
|
10664
10666
|
|
|
10667
|
+
// ../state-manager/src/TranscriptionManager.ts
|
|
10668
|
+
var import_noya_utils13 = require("@noya-app/noya-utils");
|
|
10669
|
+
var import_observable19 = require("@noya-app/observable");
|
|
10670
|
+
|
|
10665
10671
|
// ../state-manager/src/UserManager.ts
|
|
10666
|
-
var
|
|
10672
|
+
var import_observable21 = require("@noya-app/observable");
|
|
10667
10673
|
|
|
10668
10674
|
// ../state-manager/src/sync/clientId.ts
|
|
10669
|
-
var
|
|
10670
|
-
var
|
|
10675
|
+
var import_noya_utils15 = require("@noya-app/noya-utils");
|
|
10676
|
+
var import_observable20 = require("@noya-app/observable");
|
|
10671
10677
|
|
|
10672
10678
|
// ../state-manager/src/sync/defaultNames.ts
|
|
10673
|
-
var
|
|
10679
|
+
var import_noya_utils14 = require("@noya-app/noya-utils");
|
|
10674
10680
|
var animals = [
|
|
10675
10681
|
"cat",
|
|
10676
10682
|
"dog",
|
|
@@ -10722,7 +10728,7 @@ function getClientImageUrl(animal) {
|
|
|
10722
10728
|
}
|
|
10723
10729
|
function randomClientIdentity() {
|
|
10724
10730
|
const animal = randomElement(animals);
|
|
10725
|
-
const name = `${(0,
|
|
10731
|
+
const name = `${(0, import_noya_utils14.upperFirst)(randomElement(adjectives))} ${(0, import_noya_utils14.upperFirst)(animal)}`;
|
|
10726
10732
|
return {
|
|
10727
10733
|
name,
|
|
10728
10734
|
animal,
|
|
@@ -10740,9 +10746,9 @@ function getClientAnimalFromName(name) {
|
|
|
10740
10746
|
var CLIENT_ID_STORAGE_KEY = "noya-client-id";
|
|
10741
10747
|
var CLIENT_NAME_STORAGE_KEY = "noya-client-name";
|
|
10742
10748
|
var CLIENT_IMAGE_STORAGE_KEY = "noya-client-image";
|
|
10743
|
-
var clientId$ = new
|
|
10744
|
-
var clientName$ = new
|
|
10745
|
-
var clientImage$ = new
|
|
10749
|
+
var clientId$ = new import_observable20.Observable(void 0);
|
|
10750
|
+
var clientName$ = new import_observable20.Observable(void 0);
|
|
10751
|
+
var clientImage$ = new import_observable20.Observable(void 0);
|
|
10746
10752
|
var safeGetItem = (key) => {
|
|
10747
10753
|
try {
|
|
10748
10754
|
return typeof localStorage !== "undefined" ? localStorage.getItem(key) : null;
|
|
@@ -10763,7 +10769,7 @@ if (typeof window !== "undefined") {
|
|
|
10763
10769
|
if (storedClientId) {
|
|
10764
10770
|
clientId$.set(storedClientId);
|
|
10765
10771
|
} else {
|
|
10766
|
-
const newClientId = (0,
|
|
10772
|
+
const newClientId = (0, import_noya_utils15.uuid)();
|
|
10767
10773
|
safeSetItem(CLIENT_ID_STORAGE_KEY, newClientId);
|
|
10768
10774
|
clientId$.set(newClientId);
|
|
10769
10775
|
}
|
|
@@ -10786,17 +10792,14 @@ if (typeof window !== "undefined") {
|
|
|
10786
10792
|
}
|
|
10787
10793
|
|
|
10788
10794
|
// ../state-manager/src/sync/syncUtils.ts
|
|
10789
|
-
var
|
|
10795
|
+
var import_noya_utils16 = require("@noya-app/noya-utils");
|
|
10790
10796
|
|
|
10791
10797
|
// ../state-manager/src/sync/localRpcHelpers.ts
|
|
10792
|
-
var
|
|
10798
|
+
var import_noya_utils17 = require("@noya-app/noya-utils");
|
|
10793
10799
|
|
|
10794
10800
|
// ../state-manager/src/sync/localStorageSync.ts
|
|
10795
10801
|
var import_noya_utils18 = require("@noya-app/noya-utils");
|
|
10796
10802
|
|
|
10797
|
-
// ../state-manager/src/serverScripts.ts
|
|
10798
|
-
var import_noya_utils17 = require("@noya-app/noya-utils");
|
|
10799
|
-
|
|
10800
10803
|
// ../noya-keymap/src/hooks.ts
|
|
10801
10804
|
var import_react4 = require("react");
|
|
10802
10805
|
|
|
@@ -10918,10 +10921,10 @@ var createMutatorParametersSchema = Type.Object({
|
|
|
10918
10921
|
});
|
|
10919
10922
|
|
|
10920
10923
|
// ../noya-multiplayer-react/src/ai.ts
|
|
10921
|
-
var
|
|
10924
|
+
var import_react62 = require("react");
|
|
10922
10925
|
|
|
10923
10926
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
10924
|
-
var
|
|
10927
|
+
var import_observable23 = require("@noya-app/observable");
|
|
10925
10928
|
|
|
10926
10929
|
// ../noya-react-utils/src/components/AutoSizer.tsx
|
|
10927
10930
|
var React2 = __toESM(require("react"));
|
|
@@ -11222,13 +11225,13 @@ function downloadBlob(...params) {
|
|
|
11222
11225
|
}
|
|
11223
11226
|
|
|
11224
11227
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
11225
|
-
var
|
|
11228
|
+
var import_react61 = __toESM(require("react"));
|
|
11226
11229
|
|
|
11227
11230
|
// ../noya-multiplayer-react/src/noyaApp.ts
|
|
11228
|
-
var
|
|
11231
|
+
var import_react59 = require("react");
|
|
11229
11232
|
|
|
11230
11233
|
// ../noya-multiplayer-react/src/hooks.ts
|
|
11231
|
-
var
|
|
11234
|
+
var import_react58 = require("react");
|
|
11232
11235
|
var import_client2 = require("react-dom/client");
|
|
11233
11236
|
|
|
11234
11237
|
// ../noya-multiplayer-react/src/components/ErrorOverlay.tsx
|
|
@@ -11306,12 +11309,12 @@ var ErrorOverlay = React6.memo(function ErrorOverlay2({
|
|
|
11306
11309
|
});
|
|
11307
11310
|
|
|
11308
11311
|
// ../noya-multiplayer-react/src/inspector/useStateInspector.tsx
|
|
11309
|
-
var
|
|
11312
|
+
var import_react57 = __toESM(require("react"));
|
|
11310
11313
|
var import_client = require("react-dom/client");
|
|
11311
11314
|
|
|
11312
11315
|
// ../noya-multiplayer-react/src/inspector/StateInspector.tsx
|
|
11313
11316
|
var import_noya_utils24 = require("@noya-app/noya-utils");
|
|
11314
|
-
var
|
|
11317
|
+
var import_react56 = __toESM(require("react"));
|
|
11315
11318
|
|
|
11316
11319
|
// ../../node_modules/react-inspector/dist/index.mjs
|
|
11317
11320
|
var import_react24 = __toESM(require("react"), 1);
|
|
@@ -12888,7 +12891,9 @@ function EventsSection({
|
|
|
12888
12891
|
setShowEvents,
|
|
12889
12892
|
colorScheme,
|
|
12890
12893
|
eventsContainerRef,
|
|
12891
|
-
connectionEvents
|
|
12894
|
+
connectionEvents,
|
|
12895
|
+
paused,
|
|
12896
|
+
onTogglePaused
|
|
12892
12897
|
}) {
|
|
12893
12898
|
const theme3 = getStateInspectorTheme(colorScheme);
|
|
12894
12899
|
return /* @__PURE__ */ import_react49.default.createElement(
|
|
@@ -12897,9 +12902,20 @@ function EventsSection({
|
|
|
12897
12902
|
open: showEvents,
|
|
12898
12903
|
setOpen: setShowEvents,
|
|
12899
12904
|
title: "Events",
|
|
12900
|
-
colorScheme
|
|
12905
|
+
colorScheme,
|
|
12906
|
+
right: /* @__PURE__ */ import_react49.default.createElement(StateInspectorButton, { theme: theme3, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
12901
12907
|
},
|
|
12902
|
-
/* @__PURE__ */ import_react49.default.createElement(StateInspectorDisclosureRowInner, { ref: eventsContainerRef },
|
|
12908
|
+
/* @__PURE__ */ import_react49.default.createElement(StateInspectorDisclosureRowInner, { ref: eventsContainerRef }, paused && /* @__PURE__ */ import_react49.default.createElement(
|
|
12909
|
+
"div",
|
|
12910
|
+
{
|
|
12911
|
+
style: {
|
|
12912
|
+
padding: "4px 12px",
|
|
12913
|
+
fontSize: "11px",
|
|
12914
|
+
opacity: 0.7
|
|
12915
|
+
}
|
|
12916
|
+
},
|
|
12917
|
+
"Event streaming paused"
|
|
12918
|
+
), connectionEvents?.map(
|
|
12903
12919
|
(event, index) => event.type === "stateChange" ? /* @__PURE__ */ import_react49.default.createElement(StateInspectorRow, { key: index, colorScheme }, "connection:", " ", /* @__PURE__ */ import_react49.default.createElement("span", { style: { fontStyle: "italic" } }, event.state.toLowerCase())) : /* @__PURE__ */ import_react49.default.createElement(
|
|
12904
12920
|
StateInspectorRow,
|
|
12905
12921
|
{
|
|
@@ -12930,7 +12946,7 @@ function EventsSection({
|
|
|
12930
12946
|
}
|
|
12931
12947
|
)
|
|
12932
12948
|
)
|
|
12933
|
-
), !connectionEvents && /* @__PURE__ */ import_react49.default.createElement(
|
|
12949
|
+
), !connectionEvents?.length && /* @__PURE__ */ import_react49.default.createElement(
|
|
12934
12950
|
"div",
|
|
12935
12951
|
{
|
|
12936
12952
|
style: {
|
|
@@ -13182,7 +13198,8 @@ function ServerScriptLogsSection({
|
|
|
13182
13198
|
logs,
|
|
13183
13199
|
containerRef,
|
|
13184
13200
|
paused,
|
|
13185
|
-
onTogglePaused
|
|
13201
|
+
onTogglePaused,
|
|
13202
|
+
title = "Server Script Logs"
|
|
13186
13203
|
}) {
|
|
13187
13204
|
const theme3 = getStateInspectorTheme(colorScheme);
|
|
13188
13205
|
return /* @__PURE__ */ import_react51.default.createElement(
|
|
@@ -13190,7 +13207,7 @@ function ServerScriptLogsSection({
|
|
|
13190
13207
|
{
|
|
13191
13208
|
open: showLogs,
|
|
13192
13209
|
setOpen: setShowLogs,
|
|
13193
|
-
title
|
|
13210
|
+
title,
|
|
13194
13211
|
colorScheme,
|
|
13195
13212
|
right: /* @__PURE__ */ import_react51.default.createElement(StateInspectorButton, { theme: theme3, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
13196
13213
|
},
|
|
@@ -13219,6 +13236,18 @@ function ServerScriptLogsSection({
|
|
|
13219
13236
|
},
|
|
13220
13237
|
/* @__PURE__ */ import_react51.default.createElement("span", null, formatTimestamp(log.timestamp)),
|
|
13221
13238
|
/* @__PURE__ */ import_react51.default.createElement("span", { style: { color: levelColors[log.level] } }, log.level),
|
|
13239
|
+
(log.origin || log.target || log.mode) && /* @__PURE__ */ import_react51.default.createElement(
|
|
13240
|
+
"span",
|
|
13241
|
+
{
|
|
13242
|
+
style: {
|
|
13243
|
+
fontFamily: "monospace",
|
|
13244
|
+
textTransform: "none",
|
|
13245
|
+
fontSize: "10px",
|
|
13246
|
+
opacity: 0.75
|
|
13247
|
+
}
|
|
13248
|
+
},
|
|
13249
|
+
[log.origin ?? log.target, log.mode].filter(Boolean).join(" / ")
|
|
13250
|
+
),
|
|
13222
13251
|
/* @__PURE__ */ import_react51.default.createElement(
|
|
13223
13252
|
"span",
|
|
13224
13253
|
{
|
|
@@ -13244,8 +13273,7 @@ function ServerScriptLogsSection({
|
|
|
13244
13273
|
{
|
|
13245
13274
|
key: index,
|
|
13246
13275
|
data: value,
|
|
13247
|
-
theme: theme3
|
|
13248
|
-
expandLevel: 3
|
|
13276
|
+
theme: theme3
|
|
13249
13277
|
}
|
|
13250
13278
|
)) : /* @__PURE__ */ import_react51.default.createElement("span", { style: { fontSize: "11px", opacity: 0.7 } }, "No data")
|
|
13251
13279
|
))), !logs?.length && /* @__PURE__ */ import_react51.default.createElement(
|
|
@@ -13890,6 +13918,31 @@ function useLocalStorageState(key, defaultValue) {
|
|
|
13890
13918
|
return [state, setLocalStorageState];
|
|
13891
13919
|
}
|
|
13892
13920
|
|
|
13921
|
+
// ../noya-multiplayer-react/src/inspector/usePausedStream.ts
|
|
13922
|
+
var import_react55 = __toESM(require("react"));
|
|
13923
|
+
function usePausedStream(items) {
|
|
13924
|
+
const [paused, setPaused] = import_react55.default.useState(false);
|
|
13925
|
+
const [visibleItems, setVisibleItems] = import_react55.default.useState(items ?? []);
|
|
13926
|
+
const togglePaused = import_react55.default.useCallback(() => {
|
|
13927
|
+
setPaused((value) => {
|
|
13928
|
+
if (!value) {
|
|
13929
|
+
setVisibleItems(items ?? []);
|
|
13930
|
+
}
|
|
13931
|
+
return !value;
|
|
13932
|
+
});
|
|
13933
|
+
}, [items]);
|
|
13934
|
+
import_react55.default.useEffect(() => {
|
|
13935
|
+
if (paused) return;
|
|
13936
|
+
setVisibleItems(items ?? []);
|
|
13937
|
+
}, [items, paused]);
|
|
13938
|
+
return {
|
|
13939
|
+
paused,
|
|
13940
|
+
setPaused,
|
|
13941
|
+
togglePaused,
|
|
13942
|
+
visibleItems
|
|
13943
|
+
};
|
|
13944
|
+
}
|
|
13945
|
+
|
|
13893
13946
|
// ../noya-multiplayer-react/src/inspector/StateInspector.tsx
|
|
13894
13947
|
var StateInspector = memoGeneric(function StateInspector2({
|
|
13895
13948
|
noyaManager,
|
|
@@ -13912,16 +13965,17 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13912
13965
|
activityEventsManager,
|
|
13913
13966
|
logManager
|
|
13914
13967
|
} = noyaManager;
|
|
13915
|
-
const [didMount, setDidMount] =
|
|
13968
|
+
const [didMount, setDidMount] = import_react56.default.useState(false);
|
|
13916
13969
|
const tasks = useObservable2(taskManager.tasks$);
|
|
13917
13970
|
const inputs = useObservable2(ioManager.inputs$);
|
|
13918
13971
|
const outputTransforms = useObservable2(ioManager.outputTransforms$);
|
|
13919
|
-
(0,
|
|
13972
|
+
(0, import_react56.useLayoutEffect)(() => {
|
|
13920
13973
|
setDidMount(true);
|
|
13921
13974
|
}, []);
|
|
13922
|
-
const eventsContainerRef =
|
|
13923
|
-
const activityEventsContainerRef =
|
|
13924
|
-
const serverLogsContainerRef =
|
|
13975
|
+
const eventsContainerRef = import_react56.default.useRef(null);
|
|
13976
|
+
const activityEventsContainerRef = import_react56.default.useRef(null);
|
|
13977
|
+
const serverLogsContainerRef = import_react56.default.useRef(null);
|
|
13978
|
+
const serverSimulationLogsContainerRef = import_react56.default.useRef(null);
|
|
13925
13979
|
const [showInspector, setShowInspector] = useLocalStorageState(
|
|
13926
13980
|
"noya-multiplayer-react-show-inspector",
|
|
13927
13981
|
true
|
|
@@ -13938,6 +13992,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13938
13992
|
"noya-multiplayer-react-show-users",
|
|
13939
13993
|
true
|
|
13940
13994
|
);
|
|
13995
|
+
const [showUserDetails, setShowUserDetails] = useLocalStorageState(
|
|
13996
|
+
"noya-multiplayer-react-show-user-details",
|
|
13997
|
+
false
|
|
13998
|
+
);
|
|
13941
13999
|
const [showData, setShowData] = useLocalStorageState(
|
|
13942
14000
|
"noya-multiplayer-react-show-data",
|
|
13943
14001
|
true
|
|
@@ -13978,35 +14036,51 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13978
14036
|
"noya-multiplayer-react-show-server-logs",
|
|
13979
14037
|
false
|
|
13980
14038
|
);
|
|
14039
|
+
const [showServerSimulationLogs, setShowServerSimulationLogs] = useLocalStorageState(
|
|
14040
|
+
"noya-multiplayer-react-show-server-simulation-logs",
|
|
14041
|
+
false
|
|
14042
|
+
);
|
|
14043
|
+
const [showSimulation, setShowSimulation] = useLocalStorageState(
|
|
14044
|
+
"noya-multiplayer-react-show-simulation",
|
|
14045
|
+
false
|
|
14046
|
+
);
|
|
13981
14047
|
const connectionEvents = useObservable2(connectionEventManager.events$);
|
|
13982
|
-
|
|
14048
|
+
const {
|
|
14049
|
+
visibleItems: visibleConnectionEvents,
|
|
14050
|
+
paused: connectionEventsPaused,
|
|
14051
|
+
togglePaused: toggleConnectionEventsPaused
|
|
14052
|
+
} = usePausedStream(connectionEvents);
|
|
14053
|
+
(0, import_react56.useEffect)(() => {
|
|
13983
14054
|
if (eventsContainerRef.current) {
|
|
13984
14055
|
eventsContainerRef.current.scrollTop = eventsContainerRef.current.scrollHeight;
|
|
13985
14056
|
}
|
|
13986
|
-
}, [
|
|
14057
|
+
}, [visibleConnectionEvents]);
|
|
13987
14058
|
const serverLogs = useObservable2(logManager.logs$);
|
|
13988
|
-
const
|
|
13989
|
-
|
|
13990
|
-
|
|
14059
|
+
const {
|
|
14060
|
+
visibleItems: visibleServerLogs,
|
|
14061
|
+
paused: serverLogsPaused,
|
|
14062
|
+
togglePaused: toggleServerLogsPaused
|
|
14063
|
+
} = usePausedStream(serverLogs);
|
|
14064
|
+
const serverSimulationLogs = useObservable2(
|
|
14065
|
+
multiplayerStateManager.serverSimulationLogs$
|
|
13991
14066
|
);
|
|
13992
|
-
const
|
|
13993
|
-
|
|
13994
|
-
|
|
13995
|
-
|
|
13996
|
-
|
|
13997
|
-
|
|
13998
|
-
});
|
|
13999
|
-
}, [serverLogs]);
|
|
14000
|
-
(0, import_react55.useEffect)(() => {
|
|
14001
|
-
if (serverLogsPaused) return;
|
|
14002
|
-
setVisibleServerLogs(serverLogs ?? []);
|
|
14003
|
-
}, [serverLogs, serverLogsPaused]);
|
|
14004
|
-
(0, import_react55.useEffect)(() => {
|
|
14067
|
+
const {
|
|
14068
|
+
visibleItems: visibleServerSimulationLogs,
|
|
14069
|
+
paused: serverSimulationLogsPaused,
|
|
14070
|
+
togglePaused: toggleServerSimulationLogsPaused
|
|
14071
|
+
} = usePausedStream(serverSimulationLogs);
|
|
14072
|
+
(0, import_react56.useEffect)(() => {
|
|
14005
14073
|
if (!showServerLogs) return;
|
|
14006
14074
|
if (serverLogsContainerRef.current) {
|
|
14007
14075
|
serverLogsContainerRef.current.scrollTop = serverLogsContainerRef.current.scrollHeight;
|
|
14008
14076
|
}
|
|
14009
14077
|
}, [showServerLogs, visibleServerLogs]);
|
|
14078
|
+
(0, import_react56.useEffect)(() => {
|
|
14079
|
+
if (!showServerSimulationLogs) return;
|
|
14080
|
+
if (serverSimulationLogsContainerRef.current) {
|
|
14081
|
+
serverSimulationLogsContainerRef.current.scrollTop = serverSimulationLogsContainerRef.current.scrollHeight;
|
|
14082
|
+
}
|
|
14083
|
+
}, [showServerSimulationLogs, visibleServerSimulationLogs]);
|
|
14010
14084
|
const multipeerStateInitialized = useObservable2(
|
|
14011
14085
|
multiplayerStateManager.isInitialized$
|
|
14012
14086
|
);
|
|
@@ -14018,8 +14092,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14018
14092
|
const assetsInitialized = useObservable2(assetManager.isInitialized$);
|
|
14019
14093
|
const secrets = useObservable2(secretManager.secrets$);
|
|
14020
14094
|
const secretsInitialized = useObservable2(secretManager.isInitialized$);
|
|
14021
|
-
const connectedUsers = useObservable2(userManager.
|
|
14095
|
+
const connectedUsers = useObservable2(userManager.allUsers$);
|
|
14022
14096
|
const connectionId = useObservable2(userManager.currentConnectionId$);
|
|
14097
|
+
const simulationDiagnostics = multiplayerStateManager.getServerSimulationDiagnostics?.() ?? null;
|
|
14098
|
+
const showSimulationLogsSection = (simulationDiagnostics?.simulateLocally ?? false) || visibleServerSimulationLogs.length > 0;
|
|
14023
14099
|
const state = useObservable2(multiplayerStateManager.optimisticState$);
|
|
14024
14100
|
const inputsInitialized = useObservable2(ioManager.inputsInitialized$);
|
|
14025
14101
|
const outputTransformsInitialized = useObservable2(
|
|
@@ -14046,11 +14122,11 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14046
14122
|
zIndex: 9999,
|
|
14047
14123
|
lineHeight: "13px"
|
|
14048
14124
|
};
|
|
14049
|
-
const handleExportAll = (0,
|
|
14125
|
+
const handleExportAll = (0, import_react56.useCallback)(async () => {
|
|
14050
14126
|
const buffer = await exportAll(noyaManager);
|
|
14051
14127
|
downloadBlob(new Blob([buffer]), "state.zip");
|
|
14052
14128
|
}, [noyaManager]);
|
|
14053
|
-
const handleImportAll = (0,
|
|
14129
|
+
const handleImportAll = (0, import_react56.useCallback)(async () => {
|
|
14054
14130
|
const file = await uploadFile();
|
|
14055
14131
|
const buffer = await file.arrayBuffer();
|
|
14056
14132
|
importAll(buffer, noyaManager, {
|
|
@@ -14063,7 +14139,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14063
14139
|
}, [noyaManager]);
|
|
14064
14140
|
if (!didMount) return null;
|
|
14065
14141
|
if (!showInspector) {
|
|
14066
|
-
return /* @__PURE__ */
|
|
14142
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
14067
14143
|
"div",
|
|
14068
14144
|
{
|
|
14069
14145
|
...props,
|
|
@@ -14075,7 +14151,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14075
14151
|
},
|
|
14076
14152
|
onClick: () => setShowInspector(true)
|
|
14077
14153
|
},
|
|
14078
|
-
/* @__PURE__ */
|
|
14154
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14079
14155
|
StateInspectorToggleButton,
|
|
14080
14156
|
{
|
|
14081
14157
|
showInspector,
|
|
@@ -14086,7 +14162,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14086
14162
|
)
|
|
14087
14163
|
);
|
|
14088
14164
|
}
|
|
14089
|
-
return /* @__PURE__ */
|
|
14165
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
14090
14166
|
"div",
|
|
14091
14167
|
{
|
|
14092
14168
|
...props,
|
|
@@ -14095,7 +14171,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14095
14171
|
...props.style
|
|
14096
14172
|
}
|
|
14097
14173
|
},
|
|
14098
|
-
/* @__PURE__ */
|
|
14174
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14099
14175
|
StateInspectorDisclosureSection,
|
|
14100
14176
|
{
|
|
14101
14177
|
isFirst: true,
|
|
@@ -14105,9 +14181,17 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14105
14181
|
colorScheme,
|
|
14106
14182
|
style: {
|
|
14107
14183
|
flex: "0 0 auto",
|
|
14108
|
-
maxHeight: "
|
|
14184
|
+
maxHeight: "50%",
|
|
14185
|
+
overflowY: "auto"
|
|
14109
14186
|
},
|
|
14110
|
-
right: /* @__PURE__ */
|
|
14187
|
+
right: /* @__PURE__ */ import_react56.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14188
|
+
StateInspectorButton,
|
|
14189
|
+
{
|
|
14190
|
+
theme: theme3,
|
|
14191
|
+
onClick: () => setShowUserDetails(!showUserDetails)
|
|
14192
|
+
},
|
|
14193
|
+
"Toggle details"
|
|
14194
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14111
14195
|
StateInspectorToggleButton,
|
|
14112
14196
|
{
|
|
14113
14197
|
showInspector,
|
|
@@ -14115,19 +14199,21 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14115
14199
|
theme: theme3,
|
|
14116
14200
|
anchor
|
|
14117
14201
|
}
|
|
14118
|
-
)
|
|
14202
|
+
))
|
|
14119
14203
|
},
|
|
14120
|
-
/* @__PURE__ */
|
|
14121
|
-
|
|
14122
|
-
return /* @__PURE__ */ import_react55.default.createElement(
|
|
14204
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, { style: { flex: "0 0 auto" } }, connectedUsers?.filter((user) => showUserDetails || !user.inactive).map((user, index, array) => {
|
|
14205
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
14123
14206
|
StateInspectorRow,
|
|
14124
14207
|
{
|
|
14125
14208
|
key: user.connectionId,
|
|
14126
14209
|
colorScheme,
|
|
14127
14210
|
variant: user.connectionId === connectionId ? "up" : void 0,
|
|
14128
|
-
bordered: index !== array.length - 1
|
|
14211
|
+
bordered: index !== array.length - 1,
|
|
14212
|
+
style: {
|
|
14213
|
+
opacity: user.inactive ? 0.5 : 1
|
|
14214
|
+
}
|
|
14129
14215
|
},
|
|
14130
|
-
user.image && /* @__PURE__ */
|
|
14216
|
+
user.image && /* @__PURE__ */ import_react56.default.createElement(
|
|
14131
14217
|
"img",
|
|
14132
14218
|
{
|
|
14133
14219
|
src: user.image,
|
|
@@ -14144,12 +14230,9 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14144
14230
|
}
|
|
14145
14231
|
}
|
|
14146
14232
|
),
|
|
14147
|
-
user.name
|
|
14148
|
-
" (",
|
|
14149
|
-
ellipsis(identifier, 8, "middle"),
|
|
14150
|
-
")"
|
|
14233
|
+
showUserDetails ? /* @__PURE__ */ import_react56.default.createElement(themedObjectInspector, { data: user, theme: theme3 }) : user.name
|
|
14151
14234
|
);
|
|
14152
|
-
}), !connectedUsers && /* @__PURE__ */
|
|
14235
|
+
}), !connectedUsers && /* @__PURE__ */ import_react56.default.createElement(
|
|
14153
14236
|
"div",
|
|
14154
14237
|
{
|
|
14155
14238
|
style: {
|
|
@@ -14160,13 +14243,13 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14160
14243
|
gap: "4px"
|
|
14161
14244
|
}
|
|
14162
14245
|
},
|
|
14163
|
-
/* @__PURE__ */
|
|
14246
|
+
/* @__PURE__ */ import_react56.default.createElement("span", null, "No connected users")
|
|
14164
14247
|
))
|
|
14165
14248
|
),
|
|
14166
|
-
/* @__PURE__ */
|
|
14249
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14167
14250
|
StateInspectorDisclosureSection,
|
|
14168
14251
|
{
|
|
14169
|
-
title: /* @__PURE__ */
|
|
14252
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Data", /* @__PURE__ */ import_react56.default.createElement(
|
|
14170
14253
|
ColoredDot,
|
|
14171
14254
|
{
|
|
14172
14255
|
type: multipeerStateInitialized ? "success" : "error"
|
|
@@ -14175,7 +14258,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14175
14258
|
colorScheme,
|
|
14176
14259
|
setOpen: setShowData,
|
|
14177
14260
|
open: showData,
|
|
14178
|
-
right: /* @__PURE__ */
|
|
14261
|
+
right: /* @__PURE__ */ import_react56.default.createElement(
|
|
14179
14262
|
"span",
|
|
14180
14263
|
{
|
|
14181
14264
|
style: {
|
|
@@ -14183,9 +14266,9 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14183
14266
|
gap: "12px"
|
|
14184
14267
|
}
|
|
14185
14268
|
},
|
|
14186
|
-
/* @__PURE__ */
|
|
14187
|
-
/* @__PURE__ */
|
|
14188
|
-
/* @__PURE__ */
|
|
14269
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorButton, { theme: theme3, onClick: handleImportAll }, "Import"),
|
|
14270
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorButton, { theme: theme3, onClick: handleExportAll }, "Export"),
|
|
14271
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14189
14272
|
StateInspectorButton,
|
|
14190
14273
|
{
|
|
14191
14274
|
theme: theme3,
|
|
@@ -14197,14 +14280,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14197
14280
|
)
|
|
14198
14281
|
)
|
|
14199
14282
|
},
|
|
14200
|
-
/* @__PURE__ */
|
|
14283
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14201
14284
|
themedObjectInspector,
|
|
14202
14285
|
{
|
|
14203
14286
|
name: multiplayerStateManager.schema ? "state" : void 0,
|
|
14204
14287
|
data: state,
|
|
14205
14288
|
theme: theme3
|
|
14206
14289
|
}
|
|
14207
|
-
)), multiplayerStateManager.schema && /* @__PURE__ */
|
|
14290
|
+
)), multiplayerStateManager.schema && /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14208
14291
|
themedObjectInspector,
|
|
14209
14292
|
{
|
|
14210
14293
|
name: "schema",
|
|
@@ -14213,7 +14296,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14213
14296
|
}
|
|
14214
14297
|
)))
|
|
14215
14298
|
),
|
|
14216
|
-
/* @__PURE__ */
|
|
14299
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14217
14300
|
HistorySection,
|
|
14218
14301
|
{
|
|
14219
14302
|
showHistory,
|
|
@@ -14223,14 +14306,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14223
14306
|
multiplayerStateManager
|
|
14224
14307
|
}
|
|
14225
14308
|
),
|
|
14226
|
-
/* @__PURE__ */
|
|
14309
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14227
14310
|
StateInspectorDisclosureSection,
|
|
14228
14311
|
{
|
|
14229
14312
|
open: showAssets,
|
|
14230
14313
|
setOpen: setShowAssets,
|
|
14231
|
-
title: /* @__PURE__ */
|
|
14314
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Assets (", assets.length, ")", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: assetsInitialized ? "success" : "error" })),
|
|
14232
14315
|
colorScheme,
|
|
14233
|
-
right: /* @__PURE__ */
|
|
14316
|
+
right: /* @__PURE__ */ import_react56.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14234
14317
|
StateInspectorButton,
|
|
14235
14318
|
{
|
|
14236
14319
|
theme: theme3,
|
|
@@ -14245,7 +14328,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14245
14328
|
}
|
|
14246
14329
|
},
|
|
14247
14330
|
"Delete all"
|
|
14248
|
-
), /* @__PURE__ */
|
|
14331
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14249
14332
|
StateInspectorButton,
|
|
14250
14333
|
{
|
|
14251
14334
|
theme: theme3,
|
|
@@ -14258,7 +14341,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14258
14341
|
}
|
|
14259
14342
|
},
|
|
14260
14343
|
"Reload"
|
|
14261
|
-
), /* @__PURE__ */
|
|
14344
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14262
14345
|
StateInspectorButton,
|
|
14263
14346
|
{
|
|
14264
14347
|
theme: theme3,
|
|
@@ -14282,14 +14365,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14282
14365
|
"Upload"
|
|
14283
14366
|
))
|
|
14284
14367
|
},
|
|
14285
|
-
/* @__PURE__ */
|
|
14368
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, assets.map((asset) => /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { key: asset.id, colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14286
14369
|
themedObjectInspector,
|
|
14287
14370
|
{
|
|
14288
14371
|
name: asset.id,
|
|
14289
14372
|
data: truncateAsset(asset),
|
|
14290
14373
|
theme: theme3
|
|
14291
14374
|
}
|
|
14292
|
-
), /* @__PURE__ */
|
|
14375
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14293
14376
|
StateInspectorButton,
|
|
14294
14377
|
{
|
|
14295
14378
|
theme: theme3,
|
|
@@ -14298,14 +14381,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14298
14381
|
"Delete"
|
|
14299
14382
|
))))
|
|
14300
14383
|
),
|
|
14301
|
-
advanced && /* @__PURE__ */
|
|
14384
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14302
14385
|
StateInspectorDisclosureSection,
|
|
14303
14386
|
{
|
|
14304
|
-
title: /* @__PURE__ */
|
|
14387
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Resources (", resources.length, ")", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: resourcesInitialized ? "success" : "error" })),
|
|
14305
14388
|
colorScheme,
|
|
14306
14389
|
open: showResources,
|
|
14307
14390
|
setOpen: setShowResources,
|
|
14308
|
-
right: /* @__PURE__ */
|
|
14391
|
+
right: /* @__PURE__ */ import_react56.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14309
14392
|
StateInspectorButton,
|
|
14310
14393
|
{
|
|
14311
14394
|
theme: theme3,
|
|
@@ -14320,7 +14403,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14320
14403
|
}
|
|
14321
14404
|
},
|
|
14322
14405
|
"Delete all"
|
|
14323
|
-
), /* @__PURE__ */
|
|
14406
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14324
14407
|
StateInspectorButton,
|
|
14325
14408
|
{
|
|
14326
14409
|
theme: theme3,
|
|
@@ -14333,7 +14416,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14333
14416
|
}
|
|
14334
14417
|
},
|
|
14335
14418
|
"Create Directory"
|
|
14336
|
-
), /* @__PURE__ */
|
|
14419
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14337
14420
|
StateInspectorButton,
|
|
14338
14421
|
{
|
|
14339
14422
|
theme: theme3,
|
|
@@ -14353,21 +14436,21 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14353
14436
|
"Create Asset"
|
|
14354
14437
|
))
|
|
14355
14438
|
},
|
|
14356
|
-
/* @__PURE__ */
|
|
14439
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, resources?.map((resource) => /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { key: resource.id, colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14357
14440
|
themedObjectInspector,
|
|
14358
14441
|
{
|
|
14359
14442
|
name: resource.path,
|
|
14360
14443
|
data: resource,
|
|
14361
14444
|
theme: theme3
|
|
14362
14445
|
}
|
|
14363
|
-
), /* @__PURE__ */
|
|
14446
|
+
), /* @__PURE__ */ import_react56.default.createElement("div", { style: { display: "flex", gap: "4px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14364
14447
|
StateInspectorButton,
|
|
14365
14448
|
{
|
|
14366
14449
|
theme: theme3,
|
|
14367
14450
|
onClick: () => resourceManager.deleteResource({ id: resource.id })
|
|
14368
14451
|
},
|
|
14369
14452
|
"Delete"
|
|
14370
|
-
), /* @__PURE__ */
|
|
14453
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14371
14454
|
StateInspectorButton,
|
|
14372
14455
|
{
|
|
14373
14456
|
theme: theme3,
|
|
@@ -14380,14 +14463,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14380
14463
|
"Rename"
|
|
14381
14464
|
)))))
|
|
14382
14465
|
),
|
|
14383
|
-
advanced && /* @__PURE__ */
|
|
14466
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14384
14467
|
StateInspectorDisclosureSection,
|
|
14385
14468
|
{
|
|
14386
|
-
title: /* @__PURE__ */
|
|
14469
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Secrets", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: secretsInitialized ? "success" : "error" })),
|
|
14387
14470
|
colorScheme,
|
|
14388
14471
|
open: showSecrets,
|
|
14389
14472
|
setOpen: setShowSecrets,
|
|
14390
|
-
right: /* @__PURE__ */
|
|
14473
|
+
right: /* @__PURE__ */ import_react56.default.createElement(
|
|
14391
14474
|
StateInspectorButton,
|
|
14392
14475
|
{
|
|
14393
14476
|
theme: theme3,
|
|
@@ -14402,7 +14485,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14402
14485
|
"Create"
|
|
14403
14486
|
)
|
|
14404
14487
|
},
|
|
14405
|
-
/* @__PURE__ */
|
|
14488
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, secrets.map((secret) => /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { key: secret.id, colorScheme }, /* @__PURE__ */ import_react56.default.createElement(themedObjectInspector, { data: secret, theme: theme3 }), /* @__PURE__ */ import_react56.default.createElement(
|
|
14406
14489
|
StateInspectorButton,
|
|
14407
14490
|
{
|
|
14408
14491
|
theme: theme3,
|
|
@@ -14411,15 +14494,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14411
14494
|
"Delete"
|
|
14412
14495
|
))))
|
|
14413
14496
|
),
|
|
14414
|
-
advanced && /* @__PURE__ */
|
|
14497
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14415
14498
|
StateInspectorDisclosureSection,
|
|
14416
14499
|
{
|
|
14417
14500
|
open: showInputs,
|
|
14418
14501
|
setOpen: setShowInputs,
|
|
14419
|
-
title: /* @__PURE__ */
|
|
14502
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Inputs", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: inputsInitialized ? "success" : "error" })),
|
|
14420
14503
|
colorScheme
|
|
14421
14504
|
},
|
|
14422
|
-
/* @__PURE__ */
|
|
14505
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, inputs?.map((input) => /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { key: input.id, colorScheme }, /* @__PURE__ */ import_react56.default.createElement(themedObjectInspector, { data: input, theme: theme3 }))), !inputs?.length && /* @__PURE__ */ import_react56.default.createElement(
|
|
14423
14506
|
"div",
|
|
14424
14507
|
{
|
|
14425
14508
|
style: {
|
|
@@ -14430,15 +14513,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14430
14513
|
gap: "4px"
|
|
14431
14514
|
}
|
|
14432
14515
|
},
|
|
14433
|
-
/* @__PURE__ */
|
|
14516
|
+
/* @__PURE__ */ import_react56.default.createElement("span", null, "No inputs")
|
|
14434
14517
|
))
|
|
14435
14518
|
),
|
|
14436
|
-
advanced && /* @__PURE__ */
|
|
14519
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14437
14520
|
StateInspectorDisclosureSection,
|
|
14438
14521
|
{
|
|
14439
14522
|
open: showOutputTransforms,
|
|
14440
14523
|
setOpen: setShowOutputTransforms,
|
|
14441
|
-
title: /* @__PURE__ */
|
|
14524
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Output Transforms", /* @__PURE__ */ import_react56.default.createElement(
|
|
14442
14525
|
ColoredDot,
|
|
14443
14526
|
{
|
|
14444
14527
|
type: outputTransformsInitialized ? "success" : "error"
|
|
@@ -14446,7 +14529,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14446
14529
|
)),
|
|
14447
14530
|
colorScheme
|
|
14448
14531
|
},
|
|
14449
|
-
/* @__PURE__ */
|
|
14532
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, outputTransforms?.map((transform) => /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { key: transform.id, colorScheme }, /* @__PURE__ */ import_react56.default.createElement(themedObjectInspector, { data: transform, theme: theme3 }))), !outputTransforms?.length && /* @__PURE__ */ import_react56.default.createElement(
|
|
14450
14533
|
"div",
|
|
14451
14534
|
{
|
|
14452
14535
|
style: {
|
|
@@ -14457,10 +14540,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14457
14540
|
gap: "4px"
|
|
14458
14541
|
}
|
|
14459
14542
|
},
|
|
14460
|
-
/* @__PURE__ */
|
|
14543
|
+
/* @__PURE__ */ import_react56.default.createElement("span", null, "No output transforms")
|
|
14461
14544
|
))
|
|
14462
14545
|
),
|
|
14463
|
-
advanced && /* @__PURE__ */
|
|
14546
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14464
14547
|
StateInspectorDisclosureSection,
|
|
14465
14548
|
{
|
|
14466
14549
|
title: "Tasks",
|
|
@@ -14468,7 +14551,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14468
14551
|
open: showTasks,
|
|
14469
14552
|
setOpen: setShowTasks
|
|
14470
14553
|
},
|
|
14471
|
-
/* @__PURE__ */
|
|
14554
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, tasks?.map((task) => /* @__PURE__ */ import_react56.default.createElement(
|
|
14472
14555
|
StateInspectorRow,
|
|
14473
14556
|
{
|
|
14474
14557
|
key: task.id,
|
|
@@ -14477,7 +14560,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14477
14560
|
backgroundColor: task.status === "done" ? "rgba(0,255,0,0.2)" : task.status === "error" ? "rgba(255,0,0,0.2)" : void 0
|
|
14478
14561
|
}
|
|
14479
14562
|
},
|
|
14480
|
-
/* @__PURE__ */
|
|
14563
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14481
14564
|
themedObjectInspector,
|
|
14482
14565
|
{
|
|
14483
14566
|
name: task.name,
|
|
@@ -14487,7 +14570,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14487
14570
|
)
|
|
14488
14571
|
)))
|
|
14489
14572
|
),
|
|
14490
|
-
/* @__PURE__ */
|
|
14573
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14491
14574
|
StateInspectorDisclosureSection,
|
|
14492
14575
|
{
|
|
14493
14576
|
open: showShared,
|
|
@@ -14495,7 +14578,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14495
14578
|
title: "Shared Connection Data",
|
|
14496
14579
|
colorScheme
|
|
14497
14580
|
},
|
|
14498
|
-
/* @__PURE__ */
|
|
14581
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, Object.entries(shared).map(([key, value]) => /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { key, colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14499
14582
|
themedObjectInspector,
|
|
14500
14583
|
{
|
|
14501
14584
|
name: key,
|
|
@@ -14505,7 +14588,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14505
14588
|
}
|
|
14506
14589
|
))))
|
|
14507
14590
|
),
|
|
14508
|
-
/* @__PURE__ */
|
|
14591
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14509
14592
|
ServerScriptLogsSection,
|
|
14510
14593
|
{
|
|
14511
14594
|
colorScheme,
|
|
@@ -14517,7 +14600,44 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14517
14600
|
containerRef: serverLogsContainerRef
|
|
14518
14601
|
}
|
|
14519
14602
|
),
|
|
14520
|
-
|
|
14603
|
+
showSimulationLogsSection && /* @__PURE__ */ import_react56.default.createElement(
|
|
14604
|
+
ServerScriptLogsSection,
|
|
14605
|
+
{
|
|
14606
|
+
title: "Server Script Simulation Logs",
|
|
14607
|
+
colorScheme,
|
|
14608
|
+
showLogs: showServerSimulationLogs,
|
|
14609
|
+
setShowLogs: setShowServerSimulationLogs,
|
|
14610
|
+
logs: visibleServerSimulationLogs,
|
|
14611
|
+
paused: serverSimulationLogsPaused,
|
|
14612
|
+
onTogglePaused: toggleServerSimulationLogsPaused,
|
|
14613
|
+
containerRef: serverSimulationLogsContainerRef
|
|
14614
|
+
}
|
|
14615
|
+
),
|
|
14616
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14617
|
+
StateInspectorDisclosureSection,
|
|
14618
|
+
{
|
|
14619
|
+
open: showSimulation,
|
|
14620
|
+
setOpen: setShowSimulation,
|
|
14621
|
+
title: "Server Simulation",
|
|
14622
|
+
colorScheme
|
|
14623
|
+
},
|
|
14624
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14625
|
+
themedObjectInspector,
|
|
14626
|
+
{
|
|
14627
|
+
name: "status",
|
|
14628
|
+
data: simulationDiagnostics ?? {
|
|
14629
|
+
simulateLocally: false,
|
|
14630
|
+
simulatorActive: false,
|
|
14631
|
+
clockSkewMs: 0,
|
|
14632
|
+
invocations: [],
|
|
14633
|
+
pendingPredictions: []
|
|
14634
|
+
},
|
|
14635
|
+
theme: theme3,
|
|
14636
|
+
expandLevel: 2
|
|
14637
|
+
}
|
|
14638
|
+
)))
|
|
14639
|
+
),
|
|
14640
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14521
14641
|
ActivityEventsSection,
|
|
14522
14642
|
{
|
|
14523
14643
|
colorScheme,
|
|
@@ -14527,10 +14647,12 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14527
14647
|
activityEventsManager
|
|
14528
14648
|
}
|
|
14529
14649
|
),
|
|
14530
|
-
/* @__PURE__ */
|
|
14650
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14531
14651
|
EventsSection,
|
|
14532
14652
|
{
|
|
14533
|
-
connectionEvents,
|
|
14653
|
+
connectionEvents: visibleConnectionEvents,
|
|
14654
|
+
paused: connectionEventsPaused,
|
|
14655
|
+
onTogglePaused: toggleConnectionEventsPaused,
|
|
14534
14656
|
colorScheme,
|
|
14535
14657
|
eventsContainerRef,
|
|
14536
14658
|
showEvents,
|
|
@@ -14548,7 +14670,7 @@ var truncateAsset = (0, import_noya_utils24.memoize)((asset) => {
|
|
|
14548
14670
|
|
|
14549
14671
|
// ../noya-multiplayer-react/src/hooks.ts
|
|
14550
14672
|
function useManagedHistory(stateManager) {
|
|
14551
|
-
return (0,
|
|
14673
|
+
return (0, import_react58.useSyncExternalStore)(
|
|
14552
14674
|
stateManager.historyEmittor.addListener,
|
|
14553
14675
|
stateManager.getHistorySnapshot,
|
|
14554
14676
|
stateManager.getHistorySnapshot
|
|
@@ -14556,15 +14678,15 @@ function useManagedHistory(stateManager) {
|
|
|
14556
14678
|
}
|
|
14557
14679
|
|
|
14558
14680
|
// ../noya-multiplayer-react/src/singleton.tsx
|
|
14559
|
-
var
|
|
14681
|
+
var import_react60 = __toESM(require("react"));
|
|
14560
14682
|
|
|
14561
14683
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
14562
|
-
var AnyNoyaStateContext = (0,
|
|
14684
|
+
var AnyNoyaStateContext = (0, import_react61.createContext)(void 0);
|
|
14563
14685
|
var emptyArray = [];
|
|
14564
14686
|
function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
14565
|
-
const [streamId, setStreamId] = (0,
|
|
14687
|
+
const [streamId, setStreamId] = (0, import_react61.useState)(void 0);
|
|
14566
14688
|
const stableStreamFilter = useJsonMemo(streamFilter);
|
|
14567
|
-
(0,
|
|
14689
|
+
(0, import_react61.useEffect)(() => {
|
|
14568
14690
|
if (!stableStreamFilter) return;
|
|
14569
14691
|
const streamId2 = activityEventsManager.subscribe(stableStreamFilter);
|
|
14570
14692
|
setStreamId(streamId2);
|
|
@@ -14578,8 +14700,8 @@ function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
|
14578
14700
|
}
|
|
14579
14701
|
|
|
14580
14702
|
// ../noya-multiplayer-react/src/components/UserPointersOverlay.tsx
|
|
14581
|
-
var
|
|
14582
|
-
var
|
|
14703
|
+
var import_observable24 = require("@noya-app/observable");
|
|
14704
|
+
var import_react63 = __toESM(require("react"));
|
|
14583
14705
|
function shouldShow(hideAfter, updatedAt) {
|
|
14584
14706
|
return !!updatedAt && Date.now() - updatedAt < hideAfter;
|
|
14585
14707
|
}
|
|
@@ -14589,18 +14711,18 @@ var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
|
14589
14711
|
hideAfter = 5e3,
|
|
14590
14712
|
renderUserPointer
|
|
14591
14713
|
}) {
|
|
14592
|
-
const observable = (0,
|
|
14714
|
+
const observable = (0, import_react63.useMemo)(() => {
|
|
14593
14715
|
const metadata$ = sharedConnectionDataManager.metadata$.observePath([user.connectionId]).throttle(50);
|
|
14594
14716
|
const data$ = sharedConnectionDataManager.data$.observePath([user.connectionId]).throttle(50);
|
|
14595
|
-
return
|
|
14717
|
+
return import_observable24.Observable.combine([metadata$, data$], ([metadata2, data2]) => {
|
|
14596
14718
|
return { metadata: metadata2, data: data2 };
|
|
14597
14719
|
});
|
|
14598
14720
|
}, [sharedConnectionDataManager, user.connectionId]);
|
|
14599
14721
|
const { metadata, data } = useObservable2(observable);
|
|
14600
|
-
const [, setForceUpdate] = (0,
|
|
14722
|
+
const [, setForceUpdate] = (0, import_react63.useState)(0);
|
|
14601
14723
|
const updatedAt = metadata?.updatedAt ?? 0;
|
|
14602
14724
|
const show = shouldShow(hideAfter, updatedAt);
|
|
14603
|
-
(0,
|
|
14725
|
+
(0, import_react63.useEffect)(() => {
|
|
14604
14726
|
if (!show) return;
|
|
14605
14727
|
const timeoutId = setTimeout(() => {
|
|
14606
14728
|
setForceUpdate((prev) => prev + 1);
|
|
@@ -14624,9 +14746,9 @@ var UserPointersOverlay = memoGeneric(function UserPointers({
|
|
|
14624
14746
|
sharedConnectionDataManager.currentConnectionId$
|
|
14625
14747
|
);
|
|
14626
14748
|
const connectedUsers = useObservable2(userManager.connectedUsers$);
|
|
14627
|
-
return /* @__PURE__ */
|
|
14749
|
+
return /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, connectedUsers.map((user) => {
|
|
14628
14750
|
if (user.connectionId === currentConnectionId) return null;
|
|
14629
|
-
return /* @__PURE__ */
|
|
14751
|
+
return /* @__PURE__ */ import_react63.default.createElement(
|
|
14630
14752
|
UserPointerInternal,
|
|
14631
14753
|
{
|
|
14632
14754
|
key: user.connectionId,
|
|
@@ -14640,15 +14762,15 @@ var UserPointersOverlay = memoGeneric(function UserPointers({
|
|
|
14640
14762
|
|
|
14641
14763
|
// src/react/tableHooks.ts
|
|
14642
14764
|
var import_observable_store = require("@noya-app/observable-store");
|
|
14643
|
-
var
|
|
14765
|
+
var import_react64 = require("react");
|
|
14644
14766
|
function useTable(table, {
|
|
14645
14767
|
where,
|
|
14646
14768
|
select
|
|
14647
14769
|
}, options = {}) {
|
|
14648
|
-
const stableSelect = (0,
|
|
14770
|
+
const stableSelect = (0, import_react64.useMemo)(() => {
|
|
14649
14771
|
return JSON.stringify(select);
|
|
14650
14772
|
}, [select]);
|
|
14651
|
-
const stableWhere = (0,
|
|
14773
|
+
const stableWhere = (0, import_react64.useMemo)(() => {
|
|
14652
14774
|
let cloneWithNoUndefined = {};
|
|
14653
14775
|
for (const [key, value] of Object.entries(where ?? {})) {
|
|
14654
14776
|
if (value !== void 0) {
|
|
@@ -14657,7 +14779,7 @@ function useTable(table, {
|
|
|
14657
14779
|
}
|
|
14658
14780
|
return JSON.stringify(cloneWithNoUndefined);
|
|
14659
14781
|
}, [where]);
|
|
14660
|
-
const observable = (0,
|
|
14782
|
+
const observable = (0, import_react64.useMemo)(() => {
|
|
14661
14783
|
const parsedSelect = JSON.parse(stableSelect);
|
|
14662
14784
|
const parsedWhere = JSON.parse(stableWhere);
|
|
14663
14785
|
if (!table) {
|
|
@@ -14684,18 +14806,18 @@ function useTable(table, {
|
|
|
14684
14806
|
}
|
|
14685
14807
|
);
|
|
14686
14808
|
}, [stableSelect, stableWhere, table, options.policy, options.debug]);
|
|
14687
|
-
(0,
|
|
14809
|
+
(0, import_react64.useEffect)(() => {
|
|
14688
14810
|
observable.start?.();
|
|
14689
14811
|
}, [observable]);
|
|
14690
14812
|
const { status, data } = useObservable2(observable);
|
|
14691
|
-
const optimisticUpdate = (0,
|
|
14813
|
+
const optimisticUpdate = (0, import_react64.useCallback)(
|
|
14692
14814
|
(entity, config) => {
|
|
14693
14815
|
if (!table) return;
|
|
14694
14816
|
table.optimisticUpdate(entity, config);
|
|
14695
14817
|
},
|
|
14696
14818
|
[table]
|
|
14697
14819
|
);
|
|
14698
|
-
return (0,
|
|
14820
|
+
return (0, import_react64.useMemo)(() => {
|
|
14699
14821
|
return {
|
|
14700
14822
|
status,
|
|
14701
14823
|
data,
|
|
@@ -14725,7 +14847,7 @@ function useFileListItem(id, select, options = {}) {
|
|
|
14725
14847
|
{ where: { id: id ?? null }, select },
|
|
14726
14848
|
options
|
|
14727
14849
|
);
|
|
14728
|
-
return (0,
|
|
14850
|
+
return (0, import_react64.useMemo)(() => {
|
|
14729
14851
|
return {
|
|
14730
14852
|
data: data.at(0),
|
|
14731
14853
|
status,
|
|
@@ -14755,7 +14877,7 @@ function useUser(id, select, options = {}) {
|
|
|
14755
14877
|
{ select, where: { id: id ?? null } },
|
|
14756
14878
|
options
|
|
14757
14879
|
);
|
|
14758
|
-
return (0,
|
|
14880
|
+
return (0, import_react64.useMemo)(() => {
|
|
14759
14881
|
return {
|
|
14760
14882
|
status,
|
|
14761
14883
|
data: data.at(0),
|