@noya-app/noya-api-client-react 0.1.43 → 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 +15 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +596 -193
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +571 -168
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -7501,19 +7501,16 @@ var jwt;
|
|
|
7501
7501
|
jwt2.DEFAULT_HEADER = HEADER;
|
|
7502
7502
|
})(jwt || (jwt = {}));
|
|
7503
7503
|
|
|
7504
|
-
// ../state-manager/src/
|
|
7505
|
-
var import_noya_utils6 = require("@noya-app/noya-utils");
|
|
7504
|
+
// ../state-manager/src/LogManager.ts
|
|
7506
7505
|
var import_observable7 = require("@noya-app/observable");
|
|
7507
7506
|
|
|
7508
|
-
// ../state-manager/src/
|
|
7509
|
-
var
|
|
7510
|
-
var import_observable9 = require("@noya-app/observable");
|
|
7511
|
-
|
|
7512
|
-
// ../state-manager/src/stateManager.ts
|
|
7507
|
+
// ../state-manager/src/MenuManager.ts
|
|
7508
|
+
var import_noya_utils6 = require("@noya-app/noya-utils");
|
|
7513
7509
|
var import_observable8 = require("@noya-app/observable");
|
|
7514
7510
|
|
|
7515
7511
|
// ../state-manager/src/multiplayer.ts
|
|
7516
|
-
var
|
|
7512
|
+
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
7513
|
+
var import_observable10 = require("@noya-app/observable");
|
|
7517
7514
|
|
|
7518
7515
|
// ../../node_modules/@marcbachmann/cel-js/lib/errors.js
|
|
7519
7516
|
var ParseError = class extends Error {
|
|
@@ -10491,7 +10488,7 @@ var globalEnvironment = new Environment({
|
|
|
10491
10488
|
});
|
|
10492
10489
|
|
|
10493
10490
|
// ../state-manager/src/multiplayerPolicies.ts
|
|
10494
|
-
var
|
|
10491
|
+
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
10495
10492
|
var celEnvironment = new Environment({
|
|
10496
10493
|
unlistedVariablesAreDyn: true
|
|
10497
10494
|
});
|
|
@@ -10526,18 +10523,27 @@ celEnvironment.registerFunction("random(): double", () => Math.random()).registe
|
|
|
10526
10523
|
const nowValue = typeof nowVariable?.value === "number" ? nowVariable.value : typeof nowVariable?.value === "string" ? Number(nowVariable.value) : Date.now();
|
|
10527
10524
|
return new Date(nowValue).toISOString();
|
|
10528
10525
|
}
|
|
10529
|
-
).registerFunction("uuid(): string", () => (0,
|
|
10526
|
+
).registerFunction("uuid(): string", () => (0, import_noya_utils7.uuid)());
|
|
10530
10527
|
var READ_DENIED = Symbol("readDenied");
|
|
10531
10528
|
|
|
10529
|
+
// ../state-manager/src/serverScripts.ts
|
|
10530
|
+
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
10531
|
+
|
|
10532
|
+
// ../state-manager/src/stateManager.ts
|
|
10533
|
+
var import_observable9 = require("@noya-app/observable");
|
|
10534
|
+
|
|
10535
|
+
// ../state-manager/src/multiplayer.ts
|
|
10536
|
+
var createHash = (value, options) => (0, import_noya_utils9.hash)(value, { ...options, ignoreUndefinedProperties: true });
|
|
10537
|
+
|
|
10532
10538
|
// ../state-manager/src/NoyaManager.ts
|
|
10533
|
-
var
|
|
10534
|
-
var
|
|
10539
|
+
var import_noya_utils19 = require("@noya-app/noya-utils");
|
|
10540
|
+
var import_observable22 = require("@noya-app/observable");
|
|
10535
10541
|
|
|
10536
10542
|
// ../noya-pipeline/src/graphToTasks.ts
|
|
10537
|
-
var
|
|
10543
|
+
var import_observable11 = require("@noya-app/observable");
|
|
10538
10544
|
|
|
10539
10545
|
// ../noya-pipeline/src/state.ts
|
|
10540
|
-
var
|
|
10546
|
+
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
10541
10547
|
var rectSchema = Type.Object({
|
|
10542
10548
|
x: Type.Number(),
|
|
10543
10549
|
y: Type.Number(),
|
|
@@ -10636,40 +10642,163 @@ var pipelineSchema = Type.Object(
|
|
|
10636
10642
|
);
|
|
10637
10643
|
|
|
10638
10644
|
// ../state-manager/src/PipelineManager.ts
|
|
10639
|
-
var import_observable11 = require("@noya-app/observable");
|
|
10640
|
-
|
|
10641
|
-
// ../state-manager/src/PublishingManager.ts
|
|
10642
10645
|
var import_observable12 = require("@noya-app/observable");
|
|
10643
10646
|
|
|
10644
|
-
// ../state-manager/src/
|
|
10645
|
-
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
10647
|
+
// ../state-manager/src/PublishingManager.ts
|
|
10646
10648
|
var import_observable13 = require("@noya-app/observable");
|
|
10647
10649
|
|
|
10648
|
-
// ../state-manager/src/
|
|
10650
|
+
// ../state-manager/src/ResourceManager.ts
|
|
10649
10651
|
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
10650
10652
|
var import_observable14 = require("@noya-app/observable");
|
|
10651
10653
|
|
|
10652
|
-
// ../state-manager/src/
|
|
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
|
|
10663
|
-
sourceCode: Type.String({
|
|
10664
|
-
description: "The source code of the mutator function."
|
|
10665
|
-
}),
|
|
10666
|
-
message: Type.String({
|
|
10667
|
-
description: `A message that summarizes the changes made to the document state.`
|
|
10668
|
-
})
|
|
10669
|
-
});
|
|
10664
|
+
// ../state-manager/src/TaskManager.ts
|
|
10665
|
+
var import_observable18 = require("@noya-app/observable");
|
|
10670
10666
|
|
|
10671
|
-
// ../state-manager/src/
|
|
10667
|
+
// ../state-manager/src/TranscriptionManager.ts
|
|
10672
10668
|
var import_noya_utils13 = require("@noya-app/noya-utils");
|
|
10669
|
+
var import_observable19 = require("@noya-app/observable");
|
|
10670
|
+
|
|
10671
|
+
// ../state-manager/src/UserManager.ts
|
|
10672
|
+
var import_observable21 = require("@noya-app/observable");
|
|
10673
|
+
|
|
10674
|
+
// ../state-manager/src/sync/clientId.ts
|
|
10675
|
+
var import_noya_utils15 = require("@noya-app/noya-utils");
|
|
10676
|
+
var import_observable20 = require("@noya-app/observable");
|
|
10677
|
+
|
|
10678
|
+
// ../state-manager/src/sync/defaultNames.ts
|
|
10679
|
+
var import_noya_utils14 = require("@noya-app/noya-utils");
|
|
10680
|
+
var animals = [
|
|
10681
|
+
"cat",
|
|
10682
|
+
"dog",
|
|
10683
|
+
"owl",
|
|
10684
|
+
"fish",
|
|
10685
|
+
"horse",
|
|
10686
|
+
"rabbit",
|
|
10687
|
+
"snake",
|
|
10688
|
+
"lion",
|
|
10689
|
+
"bear",
|
|
10690
|
+
"wolf",
|
|
10691
|
+
"fox",
|
|
10692
|
+
"elephant",
|
|
10693
|
+
"giraffe",
|
|
10694
|
+
"zebra",
|
|
10695
|
+
"panda",
|
|
10696
|
+
"monkey",
|
|
10697
|
+
"penguin",
|
|
10698
|
+
"koala",
|
|
10699
|
+
"kangaroo",
|
|
10700
|
+
"whale",
|
|
10701
|
+
"shark",
|
|
10702
|
+
"turtle",
|
|
10703
|
+
"crocodile",
|
|
10704
|
+
"hippo"
|
|
10705
|
+
];
|
|
10706
|
+
var adjectives = [
|
|
10707
|
+
"happy",
|
|
10708
|
+
"sleepy",
|
|
10709
|
+
"hungry",
|
|
10710
|
+
"thirsty",
|
|
10711
|
+
"healthy",
|
|
10712
|
+
"rich",
|
|
10713
|
+
"funky",
|
|
10714
|
+
"cool",
|
|
10715
|
+
"awesome",
|
|
10716
|
+
"amazing",
|
|
10717
|
+
"fantastic",
|
|
10718
|
+
"incredible",
|
|
10719
|
+
"super",
|
|
10720
|
+
"mega",
|
|
10721
|
+
"ultra"
|
|
10722
|
+
];
|
|
10723
|
+
function randomElement(array) {
|
|
10724
|
+
return array[Math.floor(Math.random() * array.length)];
|
|
10725
|
+
}
|
|
10726
|
+
function getClientImageUrl(animal) {
|
|
10727
|
+
return `https://avatars.noya.site/animals/animals_${animal}.svg`;
|
|
10728
|
+
}
|
|
10729
|
+
function randomClientIdentity() {
|
|
10730
|
+
const animal = randomElement(animals);
|
|
10731
|
+
const name = `${(0, import_noya_utils14.upperFirst)(randomElement(adjectives))} ${(0, import_noya_utils14.upperFirst)(animal)}`;
|
|
10732
|
+
return {
|
|
10733
|
+
name,
|
|
10734
|
+
animal,
|
|
10735
|
+
image: getClientImageUrl(animal)
|
|
10736
|
+
};
|
|
10737
|
+
}
|
|
10738
|
+
function getClientAnimalFromName(name) {
|
|
10739
|
+
const parts = name.trim().split(/\s+/);
|
|
10740
|
+
const possibleAnimal = parts[parts.length - 1]?.toLowerCase();
|
|
10741
|
+
if (!possibleAnimal) return void 0;
|
|
10742
|
+
return animals.includes(possibleAnimal) ? possibleAnimal : void 0;
|
|
10743
|
+
}
|
|
10744
|
+
|
|
10745
|
+
// ../state-manager/src/sync/clientId.ts
|
|
10746
|
+
var CLIENT_ID_STORAGE_KEY = "noya-client-id";
|
|
10747
|
+
var CLIENT_NAME_STORAGE_KEY = "noya-client-name";
|
|
10748
|
+
var CLIENT_IMAGE_STORAGE_KEY = "noya-client-image";
|
|
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);
|
|
10752
|
+
var safeGetItem = (key) => {
|
|
10753
|
+
try {
|
|
10754
|
+
return typeof localStorage !== "undefined" ? localStorage.getItem(key) : null;
|
|
10755
|
+
} catch {
|
|
10756
|
+
return null;
|
|
10757
|
+
}
|
|
10758
|
+
};
|
|
10759
|
+
var safeSetItem = (key, value) => {
|
|
10760
|
+
try {
|
|
10761
|
+
if (typeof localStorage !== "undefined") {
|
|
10762
|
+
localStorage.setItem(key, value);
|
|
10763
|
+
}
|
|
10764
|
+
} catch {
|
|
10765
|
+
}
|
|
10766
|
+
};
|
|
10767
|
+
if (typeof window !== "undefined") {
|
|
10768
|
+
const storedClientId = safeGetItem(CLIENT_ID_STORAGE_KEY);
|
|
10769
|
+
if (storedClientId) {
|
|
10770
|
+
clientId$.set(storedClientId);
|
|
10771
|
+
} else {
|
|
10772
|
+
const newClientId = (0, import_noya_utils15.uuid)();
|
|
10773
|
+
safeSetItem(CLIENT_ID_STORAGE_KEY, newClientId);
|
|
10774
|
+
clientId$.set(newClientId);
|
|
10775
|
+
}
|
|
10776
|
+
let storedClientName = safeGetItem(CLIENT_NAME_STORAGE_KEY) ?? void 0;
|
|
10777
|
+
let storedClientImage = safeGetItem(CLIENT_IMAGE_STORAGE_KEY) ?? void 0;
|
|
10778
|
+
const newIdentity = randomClientIdentity();
|
|
10779
|
+
if (!storedClientName) {
|
|
10780
|
+
storedClientName = newIdentity.name;
|
|
10781
|
+
safeSetItem(CLIENT_NAME_STORAGE_KEY, storedClientName);
|
|
10782
|
+
}
|
|
10783
|
+
if (!storedClientImage) {
|
|
10784
|
+
const animal = (storedClientName && getClientAnimalFromName(storedClientName)) ?? newIdentity.animal;
|
|
10785
|
+
if (animal) {
|
|
10786
|
+
storedClientImage = getClientImageUrl(animal);
|
|
10787
|
+
safeSetItem(CLIENT_IMAGE_STORAGE_KEY, storedClientImage);
|
|
10788
|
+
}
|
|
10789
|
+
}
|
|
10790
|
+
clientName$.set(storedClientName);
|
|
10791
|
+
clientImage$.set(storedClientImage);
|
|
10792
|
+
}
|
|
10793
|
+
|
|
10794
|
+
// ../state-manager/src/sync/syncUtils.ts
|
|
10795
|
+
var import_noya_utils16 = require("@noya-app/noya-utils");
|
|
10796
|
+
|
|
10797
|
+
// ../state-manager/src/sync/localRpcHelpers.ts
|
|
10798
|
+
var import_noya_utils17 = require("@noya-app/noya-utils");
|
|
10799
|
+
|
|
10800
|
+
// ../state-manager/src/sync/localStorageSync.ts
|
|
10801
|
+
var import_noya_utils18 = require("@noya-app/noya-utils");
|
|
10673
10802
|
|
|
10674
10803
|
// ../noya-keymap/src/hooks.ts
|
|
10675
10804
|
var import_react4 = require("react");
|
|
@@ -10781,11 +10910,21 @@ var MenuItemTree = (0, import_tree_visit3.defineTree)((node) => {
|
|
|
10781
10910
|
return node.type === "submenu" ? node.items : [];
|
|
10782
10911
|
});
|
|
10783
10912
|
|
|
10913
|
+
// ../state-manager/src/NoyaManager.ts
|
|
10914
|
+
var createMutatorParametersSchema = Type.Object({
|
|
10915
|
+
sourceCode: Type.String({
|
|
10916
|
+
description: "The source code of the mutator function."
|
|
10917
|
+
}),
|
|
10918
|
+
message: Type.String({
|
|
10919
|
+
description: `A message that summarizes the changes made to the document state.`
|
|
10920
|
+
})
|
|
10921
|
+
});
|
|
10922
|
+
|
|
10784
10923
|
// ../noya-multiplayer-react/src/ai.ts
|
|
10785
|
-
var
|
|
10924
|
+
var import_react62 = require("react");
|
|
10786
10925
|
|
|
10787
10926
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
10788
|
-
var
|
|
10927
|
+
var import_observable23 = require("@noya-app/observable");
|
|
10789
10928
|
|
|
10790
10929
|
// ../noya-react-utils/src/components/AutoSizer.tsx
|
|
10791
10930
|
var React2 = __toESM(require("react"));
|
|
@@ -10967,7 +11106,7 @@ var FileDropTarget = memoGeneric(function FileDropTarget2({ children, onDropFile
|
|
|
10967
11106
|
var import_react8 = require("react");
|
|
10968
11107
|
|
|
10969
11108
|
// ../noya-react-utils/src/hooks/useDeepArray.ts
|
|
10970
|
-
var
|
|
11109
|
+
var import_noya_utils20 = require("@noya-app/noya-utils");
|
|
10971
11110
|
var import_react9 = require("react");
|
|
10972
11111
|
function useJsonMemo(value) {
|
|
10973
11112
|
const stringified = (0, import_react9.useMemo)(
|
|
@@ -10982,7 +11121,7 @@ function useJsonMemo(value) {
|
|
|
10982
11121
|
}
|
|
10983
11122
|
|
|
10984
11123
|
// ../noya-react-utils/src/hooks/useDeepState.ts
|
|
10985
|
-
var
|
|
11124
|
+
var import_noya_utils21 = require("@noya-app/noya-utils");
|
|
10986
11125
|
var import_react10 = require("react");
|
|
10987
11126
|
|
|
10988
11127
|
// ../noya-react-utils/src/hooks/useFetch.ts
|
|
@@ -11013,7 +11152,7 @@ var import_react17 = require("react");
|
|
|
11013
11152
|
var import_react18 = require("react");
|
|
11014
11153
|
|
|
11015
11154
|
// ../noya-react-utils/src/hooks/useShallowArray.ts
|
|
11016
|
-
var
|
|
11155
|
+
var import_noya_utils22 = require("@noya-app/noya-utils");
|
|
11017
11156
|
var import_react19 = require("react");
|
|
11018
11157
|
|
|
11019
11158
|
// ../noya-react-utils/src/hooks/useStableCallback.ts
|
|
@@ -11023,7 +11162,7 @@ var import_react20 = require("react");
|
|
|
11023
11162
|
var import_react21 = require("react");
|
|
11024
11163
|
|
|
11025
11164
|
// ../noya-react-utils/src/hooks/useUrlHashParameters.ts
|
|
11026
|
-
var
|
|
11165
|
+
var import_noya_utils23 = require("@noya-app/noya-utils");
|
|
11027
11166
|
var import_react22 = require("react");
|
|
11028
11167
|
|
|
11029
11168
|
// ../noya-react-utils/src/hooks/useWindowSize.ts
|
|
@@ -11086,13 +11225,13 @@ function downloadBlob(...params) {
|
|
|
11086
11225
|
}
|
|
11087
11226
|
|
|
11088
11227
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
11089
|
-
var
|
|
11228
|
+
var import_react61 = __toESM(require("react"));
|
|
11090
11229
|
|
|
11091
11230
|
// ../noya-multiplayer-react/src/noyaApp.ts
|
|
11092
|
-
var
|
|
11231
|
+
var import_react59 = require("react");
|
|
11093
11232
|
|
|
11094
11233
|
// ../noya-multiplayer-react/src/hooks.ts
|
|
11095
|
-
var
|
|
11234
|
+
var import_react58 = require("react");
|
|
11096
11235
|
var import_client2 = require("react-dom/client");
|
|
11097
11236
|
|
|
11098
11237
|
// ../noya-multiplayer-react/src/components/ErrorOverlay.tsx
|
|
@@ -11170,12 +11309,12 @@ var ErrorOverlay = React6.memo(function ErrorOverlay2({
|
|
|
11170
11309
|
});
|
|
11171
11310
|
|
|
11172
11311
|
// ../noya-multiplayer-react/src/inspector/useStateInspector.tsx
|
|
11173
|
-
var
|
|
11312
|
+
var import_react57 = __toESM(require("react"));
|
|
11174
11313
|
var import_client = require("react-dom/client");
|
|
11175
11314
|
|
|
11176
11315
|
// ../noya-multiplayer-react/src/inspector/StateInspector.tsx
|
|
11177
|
-
var
|
|
11178
|
-
var
|
|
11316
|
+
var import_noya_utils24 = require("@noya-app/noya-utils");
|
|
11317
|
+
var import_react56 = __toESM(require("react"));
|
|
11179
11318
|
|
|
11180
11319
|
// ../../node_modules/react-inspector/dist/index.mjs
|
|
11181
11320
|
var import_react24 = __toESM(require("react"), 1);
|
|
@@ -12752,7 +12891,9 @@ function EventsSection({
|
|
|
12752
12891
|
setShowEvents,
|
|
12753
12892
|
colorScheme,
|
|
12754
12893
|
eventsContainerRef,
|
|
12755
|
-
connectionEvents
|
|
12894
|
+
connectionEvents,
|
|
12895
|
+
paused,
|
|
12896
|
+
onTogglePaused
|
|
12756
12897
|
}) {
|
|
12757
12898
|
const theme3 = getStateInspectorTheme(colorScheme);
|
|
12758
12899
|
return /* @__PURE__ */ import_react49.default.createElement(
|
|
@@ -12761,9 +12902,20 @@ function EventsSection({
|
|
|
12761
12902
|
open: showEvents,
|
|
12762
12903
|
setOpen: setShowEvents,
|
|
12763
12904
|
title: "Events",
|
|
12764
|
-
colorScheme
|
|
12905
|
+
colorScheme,
|
|
12906
|
+
right: /* @__PURE__ */ import_react49.default.createElement(StateInspectorButton, { theme: theme3, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
12765
12907
|
},
|
|
12766
|
-
/* @__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(
|
|
12767
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(
|
|
12768
12920
|
StateInspectorRow,
|
|
12769
12921
|
{
|
|
@@ -12794,7 +12946,7 @@ function EventsSection({
|
|
|
12794
12946
|
}
|
|
12795
12947
|
)
|
|
12796
12948
|
)
|
|
12797
|
-
), !connectionEvents && /* @__PURE__ */ import_react49.default.createElement(
|
|
12949
|
+
), !connectionEvents?.length && /* @__PURE__ */ import_react49.default.createElement(
|
|
12798
12950
|
"div",
|
|
12799
12951
|
{
|
|
12800
12952
|
style: {
|
|
@@ -13029,6 +13181,117 @@ function HistorySection({
|
|
|
13029
13181
|
);
|
|
13030
13182
|
}
|
|
13031
13183
|
|
|
13184
|
+
// ../noya-multiplayer-react/src/inspector/sections/ServerScriptLogsSection.tsx
|
|
13185
|
+
var import_react51 = __toESM(require("react"));
|
|
13186
|
+
var levelColors = {
|
|
13187
|
+
error: "#f87171",
|
|
13188
|
+
warn: "#facc15",
|
|
13189
|
+
log: "#9ca3af"
|
|
13190
|
+
};
|
|
13191
|
+
function formatTimestamp(timestamp) {
|
|
13192
|
+
return new Date(timestamp).toLocaleTimeString();
|
|
13193
|
+
}
|
|
13194
|
+
function ServerScriptLogsSection({
|
|
13195
|
+
showLogs,
|
|
13196
|
+
setShowLogs,
|
|
13197
|
+
colorScheme,
|
|
13198
|
+
logs,
|
|
13199
|
+
containerRef,
|
|
13200
|
+
paused,
|
|
13201
|
+
onTogglePaused,
|
|
13202
|
+
title = "Server Script Logs"
|
|
13203
|
+
}) {
|
|
13204
|
+
const theme3 = getStateInspectorTheme(colorScheme);
|
|
13205
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
13206
|
+
StateInspectorDisclosureSection,
|
|
13207
|
+
{
|
|
13208
|
+
open: showLogs,
|
|
13209
|
+
setOpen: setShowLogs,
|
|
13210
|
+
title,
|
|
13211
|
+
colorScheme,
|
|
13212
|
+
right: /* @__PURE__ */ import_react51.default.createElement(StateInspectorButton, { theme: theme3, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
13213
|
+
},
|
|
13214
|
+
/* @__PURE__ */ import_react51.default.createElement(StateInspectorDisclosureRowInner, { ref: containerRef }, paused && /* @__PURE__ */ import_react51.default.createElement(
|
|
13215
|
+
"div",
|
|
13216
|
+
{
|
|
13217
|
+
style: {
|
|
13218
|
+
padding: "4px 12px",
|
|
13219
|
+
fontSize: "11px",
|
|
13220
|
+
opacity: 0.7
|
|
13221
|
+
}
|
|
13222
|
+
},
|
|
13223
|
+
"Log streaming paused"
|
|
13224
|
+
), logs.map((log) => /* @__PURE__ */ import_react51.default.createElement(StateInspectorRow, { key: log.id, colorScheme }, /* @__PURE__ */ import_react51.default.createElement(
|
|
13225
|
+
"div",
|
|
13226
|
+
{
|
|
13227
|
+
style: {
|
|
13228
|
+
display: "flex",
|
|
13229
|
+
gap: "6px",
|
|
13230
|
+
alignItems: "center",
|
|
13231
|
+
fontSize: "10px",
|
|
13232
|
+
color: "inherit",
|
|
13233
|
+
marginBottom: log.values.length ? "4px" : 0,
|
|
13234
|
+
textTransform: "uppercase"
|
|
13235
|
+
}
|
|
13236
|
+
},
|
|
13237
|
+
/* @__PURE__ */ import_react51.default.createElement("span", null, formatTimestamp(log.timestamp)),
|
|
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
|
+
),
|
|
13251
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
13252
|
+
"span",
|
|
13253
|
+
{
|
|
13254
|
+
style: {
|
|
13255
|
+
fontFamily: "monospace",
|
|
13256
|
+
textTransform: "none",
|
|
13257
|
+
fontSize: "10px"
|
|
13258
|
+
}
|
|
13259
|
+
},
|
|
13260
|
+
log.scriptId
|
|
13261
|
+
)
|
|
13262
|
+
), /* @__PURE__ */ import_react51.default.createElement(
|
|
13263
|
+
"div",
|
|
13264
|
+
{
|
|
13265
|
+
style: {
|
|
13266
|
+
display: "flex",
|
|
13267
|
+
flexDirection: "column",
|
|
13268
|
+
gap: "4px"
|
|
13269
|
+
}
|
|
13270
|
+
},
|
|
13271
|
+
log.values.length > 0 ? log.values.map((value, index) => /* @__PURE__ */ import_react51.default.createElement(
|
|
13272
|
+
themedObjectInspector,
|
|
13273
|
+
{
|
|
13274
|
+
key: index,
|
|
13275
|
+
data: value,
|
|
13276
|
+
theme: theme3
|
|
13277
|
+
}
|
|
13278
|
+
)) : /* @__PURE__ */ import_react51.default.createElement("span", { style: { fontSize: "11px", opacity: 0.7 } }, "No data")
|
|
13279
|
+
))), !logs?.length && /* @__PURE__ */ import_react51.default.createElement(
|
|
13280
|
+
"div",
|
|
13281
|
+
{
|
|
13282
|
+
style: {
|
|
13283
|
+
padding: "12px",
|
|
13284
|
+
fontSize: "12px",
|
|
13285
|
+
display: "flex",
|
|
13286
|
+
flexDirection: "column",
|
|
13287
|
+
gap: "4px"
|
|
13288
|
+
}
|
|
13289
|
+
},
|
|
13290
|
+
/* @__PURE__ */ import_react51.default.createElement("span", null, "No logs received")
|
|
13291
|
+
))
|
|
13292
|
+
);
|
|
13293
|
+
}
|
|
13294
|
+
|
|
13032
13295
|
// ../noya-multiplayer-react/src/inspector/zip/crc32.ts
|
|
13033
13296
|
var CRC_TABLE = (() => {
|
|
13034
13297
|
const t = new Uint32Array(256);
|
|
@@ -13553,15 +13816,15 @@ function decodeAll(buffer) {
|
|
|
13553
13816
|
}
|
|
13554
13817
|
|
|
13555
13818
|
// ../noya-multiplayer-react/src/inspector/StateInspectorTitleLabel.tsx
|
|
13556
|
-
var
|
|
13819
|
+
var import_react52 = __toESM(require("react"));
|
|
13557
13820
|
function StateInspectorTitleLabel({
|
|
13558
13821
|
children
|
|
13559
13822
|
}) {
|
|
13560
|
-
return /* @__PURE__ */
|
|
13823
|
+
return /* @__PURE__ */ import_react52.default.createElement("span", { style: { display: "flex", alignItems: "center", gap: "4px" } }, children);
|
|
13561
13824
|
}
|
|
13562
13825
|
|
|
13563
13826
|
// ../noya-multiplayer-react/src/inspector/StateInspectorToggleButton.tsx
|
|
13564
|
-
var
|
|
13827
|
+
var import_react53 = __toESM(require("react"));
|
|
13565
13828
|
function StateInspectorToggleButton({
|
|
13566
13829
|
showInspector,
|
|
13567
13830
|
setShowInspector,
|
|
@@ -13569,7 +13832,7 @@ function StateInspectorToggleButton({
|
|
|
13569
13832
|
anchor
|
|
13570
13833
|
}) {
|
|
13571
13834
|
const isRightAnchor = anchor === "right";
|
|
13572
|
-
const rightIcon = /* @__PURE__ */
|
|
13835
|
+
const rightIcon = /* @__PURE__ */ import_react53.default.createElement(
|
|
13573
13836
|
"svg",
|
|
13574
13837
|
{
|
|
13575
13838
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -13579,7 +13842,7 @@ function StateInspectorToggleButton({
|
|
|
13579
13842
|
stroke: "currentColor",
|
|
13580
13843
|
className: "size-6"
|
|
13581
13844
|
},
|
|
13582
|
-
/* @__PURE__ */
|
|
13845
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
13583
13846
|
"path",
|
|
13584
13847
|
{
|
|
13585
13848
|
strokeLinecap: "round",
|
|
@@ -13588,7 +13851,7 @@ function StateInspectorToggleButton({
|
|
|
13588
13851
|
}
|
|
13589
13852
|
)
|
|
13590
13853
|
);
|
|
13591
|
-
const leftIcon = /* @__PURE__ */
|
|
13854
|
+
const leftIcon = /* @__PURE__ */ import_react53.default.createElement(
|
|
13592
13855
|
"svg",
|
|
13593
13856
|
{
|
|
13594
13857
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -13598,7 +13861,7 @@ function StateInspectorToggleButton({
|
|
|
13598
13861
|
stroke: "currentColor",
|
|
13599
13862
|
className: "size-6"
|
|
13600
13863
|
},
|
|
13601
|
-
/* @__PURE__ */
|
|
13864
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
13602
13865
|
"path",
|
|
13603
13866
|
{
|
|
13604
13867
|
strokeLinecap: "round",
|
|
@@ -13607,7 +13870,7 @@ function StateInspectorToggleButton({
|
|
|
13607
13870
|
}
|
|
13608
13871
|
)
|
|
13609
13872
|
);
|
|
13610
|
-
return /* @__PURE__ */
|
|
13873
|
+
return /* @__PURE__ */ import_react53.default.createElement(
|
|
13611
13874
|
"span",
|
|
13612
13875
|
{
|
|
13613
13876
|
role: "button",
|
|
@@ -13628,15 +13891,15 @@ function StateInspectorToggleButton({
|
|
|
13628
13891
|
setShowInspector(!showInspector);
|
|
13629
13892
|
}
|
|
13630
13893
|
},
|
|
13631
|
-
showInspector ? "Hide Inspector" : /* @__PURE__ */
|
|
13894
|
+
showInspector ? "Hide Inspector" : /* @__PURE__ */ import_react53.default.createElement("span", { style: { width: "12px", height: "12px" } }, isRightAnchor ? rightIcon : leftIcon)
|
|
13632
13895
|
);
|
|
13633
13896
|
}
|
|
13634
13897
|
|
|
13635
13898
|
// ../noya-multiplayer-react/src/inspector/useLocalStorageState.tsx
|
|
13636
|
-
var
|
|
13899
|
+
var import_react54 = __toESM(require("react"));
|
|
13637
13900
|
var localStorage2 = typeof window !== "undefined" ? window.localStorage : null;
|
|
13638
13901
|
function useLocalStorageState(key, defaultValue) {
|
|
13639
|
-
const [state, setState] =
|
|
13902
|
+
const [state, setState] = import_react54.default.useState(() => {
|
|
13640
13903
|
const value = localStorage2?.getItem(key);
|
|
13641
13904
|
let result = defaultValue;
|
|
13642
13905
|
if (value) {
|
|
@@ -13655,6 +13918,31 @@ function useLocalStorageState(key, defaultValue) {
|
|
|
13655
13918
|
return [state, setLocalStorageState];
|
|
13656
13919
|
}
|
|
13657
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
|
+
|
|
13658
13946
|
// ../noya-multiplayer-react/src/inspector/StateInspector.tsx
|
|
13659
13947
|
var StateInspector = memoGeneric(function StateInspector2({
|
|
13660
13948
|
noyaManager,
|
|
@@ -13669,22 +13957,25 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13669
13957
|
assetManager,
|
|
13670
13958
|
userManager,
|
|
13671
13959
|
secretManager,
|
|
13672
|
-
|
|
13960
|
+
sharedConnectionDataManager,
|
|
13673
13961
|
connectionEventManager,
|
|
13674
13962
|
taskManager,
|
|
13675
13963
|
ioManager,
|
|
13676
13964
|
resourceManager,
|
|
13677
|
-
activityEventsManager
|
|
13965
|
+
activityEventsManager,
|
|
13966
|
+
logManager
|
|
13678
13967
|
} = noyaManager;
|
|
13679
|
-
const [didMount, setDidMount] =
|
|
13968
|
+
const [didMount, setDidMount] = import_react56.default.useState(false);
|
|
13680
13969
|
const tasks = useObservable2(taskManager.tasks$);
|
|
13681
13970
|
const inputs = useObservable2(ioManager.inputs$);
|
|
13682
13971
|
const outputTransforms = useObservable2(ioManager.outputTransforms$);
|
|
13683
|
-
(0,
|
|
13972
|
+
(0, import_react56.useLayoutEffect)(() => {
|
|
13684
13973
|
setDidMount(true);
|
|
13685
13974
|
}, []);
|
|
13686
|
-
const eventsContainerRef =
|
|
13687
|
-
const activityEventsContainerRef =
|
|
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);
|
|
13688
13979
|
const [showInspector, setShowInspector] = useLocalStorageState(
|
|
13689
13980
|
"noya-multiplayer-react-show-inspector",
|
|
13690
13981
|
true
|
|
@@ -13701,6 +13992,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13701
13992
|
"noya-multiplayer-react-show-users",
|
|
13702
13993
|
true
|
|
13703
13994
|
);
|
|
13995
|
+
const [showUserDetails, setShowUserDetails] = useLocalStorageState(
|
|
13996
|
+
"noya-multiplayer-react-show-user-details",
|
|
13997
|
+
false
|
|
13998
|
+
);
|
|
13704
13999
|
const [showData, setShowData] = useLocalStorageState(
|
|
13705
14000
|
"noya-multiplayer-react-show-data",
|
|
13706
14001
|
true
|
|
@@ -13709,8 +14004,8 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13709
14004
|
"noya-multiplayer-react-show-tasks",
|
|
13710
14005
|
false
|
|
13711
14006
|
);
|
|
13712
|
-
const [
|
|
13713
|
-
"noya-multiplayer-react-show-
|
|
14007
|
+
const [showShared, setShowShared] = useLocalStorageState(
|
|
14008
|
+
"noya-multiplayer-react-show-shared",
|
|
13714
14009
|
false
|
|
13715
14010
|
);
|
|
13716
14011
|
const [showAssets, setShowAssets] = useLocalStorageState(
|
|
@@ -13737,16 +14032,59 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13737
14032
|
"noya-multiplayer-react-show-activity-events",
|
|
13738
14033
|
false
|
|
13739
14034
|
);
|
|
14035
|
+
const [showServerLogs, setShowServerLogs] = useLocalStorageState(
|
|
14036
|
+
"noya-multiplayer-react-show-server-logs",
|
|
14037
|
+
false
|
|
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
|
+
);
|
|
13740
14047
|
const connectionEvents = useObservable2(connectionEventManager.events$);
|
|
13741
|
-
|
|
14048
|
+
const {
|
|
14049
|
+
visibleItems: visibleConnectionEvents,
|
|
14050
|
+
paused: connectionEventsPaused,
|
|
14051
|
+
togglePaused: toggleConnectionEventsPaused
|
|
14052
|
+
} = usePausedStream(connectionEvents);
|
|
14053
|
+
(0, import_react56.useEffect)(() => {
|
|
13742
14054
|
if (eventsContainerRef.current) {
|
|
13743
14055
|
eventsContainerRef.current.scrollTop = eventsContainerRef.current.scrollHeight;
|
|
13744
14056
|
}
|
|
13745
|
-
}, [
|
|
14057
|
+
}, [visibleConnectionEvents]);
|
|
14058
|
+
const serverLogs = useObservable2(logManager.logs$);
|
|
14059
|
+
const {
|
|
14060
|
+
visibleItems: visibleServerLogs,
|
|
14061
|
+
paused: serverLogsPaused,
|
|
14062
|
+
togglePaused: toggleServerLogsPaused
|
|
14063
|
+
} = usePausedStream(serverLogs);
|
|
14064
|
+
const serverSimulationLogs = useObservable2(
|
|
14065
|
+
multiplayerStateManager.serverSimulationLogs$
|
|
14066
|
+
);
|
|
14067
|
+
const {
|
|
14068
|
+
visibleItems: visibleServerSimulationLogs,
|
|
14069
|
+
paused: serverSimulationLogsPaused,
|
|
14070
|
+
togglePaused: toggleServerSimulationLogsPaused
|
|
14071
|
+
} = usePausedStream(serverSimulationLogs);
|
|
14072
|
+
(0, import_react56.useEffect)(() => {
|
|
14073
|
+
if (!showServerLogs) return;
|
|
14074
|
+
if (serverLogsContainerRef.current) {
|
|
14075
|
+
serverLogsContainerRef.current.scrollTop = serverLogsContainerRef.current.scrollHeight;
|
|
14076
|
+
}
|
|
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]);
|
|
13746
14084
|
const multipeerStateInitialized = useObservable2(
|
|
13747
14085
|
multiplayerStateManager.isInitialized$
|
|
13748
14086
|
);
|
|
13749
|
-
const
|
|
14087
|
+
const shared = useObservable2(sharedConnectionDataManager.data$);
|
|
13750
14088
|
const historySnapshot = useManagedHistory(multiplayerStateManager.sm);
|
|
13751
14089
|
const assets = useObservable2(assetManager.assets$);
|
|
13752
14090
|
const resources = useObservable2(resourceManager.resources$);
|
|
@@ -13754,8 +14092,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13754
14092
|
const assetsInitialized = useObservable2(assetManager.isInitialized$);
|
|
13755
14093
|
const secrets = useObservable2(secretManager.secrets$);
|
|
13756
14094
|
const secretsInitialized = useObservable2(secretManager.isInitialized$);
|
|
13757
|
-
const connectedUsers = useObservable2(userManager.
|
|
13758
|
-
const
|
|
14095
|
+
const connectedUsers = useObservable2(userManager.allUsers$);
|
|
14096
|
+
const connectionId = useObservable2(userManager.currentConnectionId$);
|
|
14097
|
+
const simulationDiagnostics = multiplayerStateManager.getServerSimulationDiagnostics?.() ?? null;
|
|
14098
|
+
const showSimulationLogsSection = (simulationDiagnostics?.simulateLocally ?? false) || visibleServerSimulationLogs.length > 0;
|
|
13759
14099
|
const state = useObservable2(multiplayerStateManager.optimisticState$);
|
|
13760
14100
|
const inputsInitialized = useObservable2(ioManager.inputsInitialized$);
|
|
13761
14101
|
const outputTransformsInitialized = useObservable2(
|
|
@@ -13782,11 +14122,11 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13782
14122
|
zIndex: 9999,
|
|
13783
14123
|
lineHeight: "13px"
|
|
13784
14124
|
};
|
|
13785
|
-
const handleExportAll = (0,
|
|
14125
|
+
const handleExportAll = (0, import_react56.useCallback)(async () => {
|
|
13786
14126
|
const buffer = await exportAll(noyaManager);
|
|
13787
14127
|
downloadBlob(new Blob([buffer]), "state.zip");
|
|
13788
14128
|
}, [noyaManager]);
|
|
13789
|
-
const handleImportAll = (0,
|
|
14129
|
+
const handleImportAll = (0, import_react56.useCallback)(async () => {
|
|
13790
14130
|
const file = await uploadFile();
|
|
13791
14131
|
const buffer = await file.arrayBuffer();
|
|
13792
14132
|
importAll(buffer, noyaManager, {
|
|
@@ -13799,7 +14139,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13799
14139
|
}, [noyaManager]);
|
|
13800
14140
|
if (!didMount) return null;
|
|
13801
14141
|
if (!showInspector) {
|
|
13802
|
-
return /* @__PURE__ */
|
|
14142
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
13803
14143
|
"div",
|
|
13804
14144
|
{
|
|
13805
14145
|
...props,
|
|
@@ -13811,7 +14151,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13811
14151
|
},
|
|
13812
14152
|
onClick: () => setShowInspector(true)
|
|
13813
14153
|
},
|
|
13814
|
-
/* @__PURE__ */
|
|
14154
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
13815
14155
|
StateInspectorToggleButton,
|
|
13816
14156
|
{
|
|
13817
14157
|
showInspector,
|
|
@@ -13822,7 +14162,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13822
14162
|
)
|
|
13823
14163
|
);
|
|
13824
14164
|
}
|
|
13825
|
-
return /* @__PURE__ */
|
|
14165
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
13826
14166
|
"div",
|
|
13827
14167
|
{
|
|
13828
14168
|
...props,
|
|
@@ -13831,7 +14171,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13831
14171
|
...props.style
|
|
13832
14172
|
}
|
|
13833
14173
|
},
|
|
13834
|
-
/* @__PURE__ */
|
|
14174
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
13835
14175
|
StateInspectorDisclosureSection,
|
|
13836
14176
|
{
|
|
13837
14177
|
isFirst: true,
|
|
@@ -13841,9 +14181,17 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13841
14181
|
colorScheme,
|
|
13842
14182
|
style: {
|
|
13843
14183
|
flex: "0 0 auto",
|
|
13844
|
-
maxHeight: "
|
|
14184
|
+
maxHeight: "50%",
|
|
14185
|
+
overflowY: "auto"
|
|
13845
14186
|
},
|
|
13846
|
-
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(
|
|
13847
14195
|
StateInspectorToggleButton,
|
|
13848
14196
|
{
|
|
13849
14197
|
showInspector,
|
|
@@ -13851,38 +14199,40 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13851
14199
|
theme: theme3,
|
|
13852
14200
|
anchor
|
|
13853
14201
|
}
|
|
13854
|
-
)
|
|
14202
|
+
))
|
|
13855
14203
|
},
|
|
13856
|
-
/* @__PURE__ */
|
|
13857
|
-
|
|
13858
|
-
|
|
13859
|
-
key: user.id,
|
|
13860
|
-
colorScheme,
|
|
13861
|
-
variant: user.id === userId ? "up" : void 0,
|
|
13862
|
-
bordered: index !== array.length - 1
|
|
13863
|
-
},
|
|
13864
|
-
user.image && /* @__PURE__ */ import_react54.default.createElement(
|
|
13865
|
-
"img",
|
|
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(
|
|
14206
|
+
StateInspectorRow,
|
|
13866
14207
|
{
|
|
13867
|
-
|
|
13868
|
-
|
|
14208
|
+
key: user.connectionId,
|
|
14209
|
+
colorScheme,
|
|
14210
|
+
variant: user.connectionId === connectionId ? "up" : void 0,
|
|
14211
|
+
bordered: index !== array.length - 1,
|
|
13869
14212
|
style: {
|
|
13870
|
-
|
|
13871
|
-
height: "13px",
|
|
13872
|
-
borderRadius: "50%",
|
|
13873
|
-
marginRight: "4px",
|
|
13874
|
-
display: "inline-block",
|
|
13875
|
-
position: "relative",
|
|
13876
|
-
background: solidBorderColor,
|
|
13877
|
-
verticalAlign: "middle"
|
|
14213
|
+
opacity: user.inactive ? 0.5 : 1
|
|
13878
14214
|
}
|
|
13879
|
-
}
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13885
|
-
|
|
14215
|
+
},
|
|
14216
|
+
user.image && /* @__PURE__ */ import_react56.default.createElement(
|
|
14217
|
+
"img",
|
|
14218
|
+
{
|
|
14219
|
+
src: user.image,
|
|
14220
|
+
alt: user.name,
|
|
14221
|
+
style: {
|
|
14222
|
+
width: "13px",
|
|
14223
|
+
height: "13px",
|
|
14224
|
+
borderRadius: "50%",
|
|
14225
|
+
marginRight: "4px",
|
|
14226
|
+
display: "inline-block",
|
|
14227
|
+
position: "relative",
|
|
14228
|
+
background: solidBorderColor,
|
|
14229
|
+
verticalAlign: "middle"
|
|
14230
|
+
}
|
|
14231
|
+
}
|
|
14232
|
+
),
|
|
14233
|
+
showUserDetails ? /* @__PURE__ */ import_react56.default.createElement(themedObjectInspector, { data: user, theme: theme3 }) : user.name
|
|
14234
|
+
);
|
|
14235
|
+
}), !connectedUsers && /* @__PURE__ */ import_react56.default.createElement(
|
|
13886
14236
|
"div",
|
|
13887
14237
|
{
|
|
13888
14238
|
style: {
|
|
@@ -13893,13 +14243,13 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13893
14243
|
gap: "4px"
|
|
13894
14244
|
}
|
|
13895
14245
|
},
|
|
13896
|
-
/* @__PURE__ */
|
|
14246
|
+
/* @__PURE__ */ import_react56.default.createElement("span", null, "No connected users")
|
|
13897
14247
|
))
|
|
13898
14248
|
),
|
|
13899
|
-
/* @__PURE__ */
|
|
14249
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
13900
14250
|
StateInspectorDisclosureSection,
|
|
13901
14251
|
{
|
|
13902
|
-
title: /* @__PURE__ */
|
|
14252
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Data", /* @__PURE__ */ import_react56.default.createElement(
|
|
13903
14253
|
ColoredDot,
|
|
13904
14254
|
{
|
|
13905
14255
|
type: multipeerStateInitialized ? "success" : "error"
|
|
@@ -13908,7 +14258,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13908
14258
|
colorScheme,
|
|
13909
14259
|
setOpen: setShowData,
|
|
13910
14260
|
open: showData,
|
|
13911
|
-
right: /* @__PURE__ */
|
|
14261
|
+
right: /* @__PURE__ */ import_react56.default.createElement(
|
|
13912
14262
|
"span",
|
|
13913
14263
|
{
|
|
13914
14264
|
style: {
|
|
@@ -13916,9 +14266,9 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13916
14266
|
gap: "12px"
|
|
13917
14267
|
}
|
|
13918
14268
|
},
|
|
13919
|
-
/* @__PURE__ */
|
|
13920
|
-
/* @__PURE__ */
|
|
13921
|
-
/* @__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(
|
|
13922
14272
|
StateInspectorButton,
|
|
13923
14273
|
{
|
|
13924
14274
|
theme: theme3,
|
|
@@ -13930,14 +14280,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13930
14280
|
)
|
|
13931
14281
|
)
|
|
13932
14282
|
},
|
|
13933
|
-
/* @__PURE__ */
|
|
14283
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
13934
14284
|
themedObjectInspector,
|
|
13935
14285
|
{
|
|
13936
14286
|
name: multiplayerStateManager.schema ? "state" : void 0,
|
|
13937
14287
|
data: state,
|
|
13938
14288
|
theme: theme3
|
|
13939
14289
|
}
|
|
13940
|
-
)), multiplayerStateManager.schema && /* @__PURE__ */
|
|
14290
|
+
)), multiplayerStateManager.schema && /* @__PURE__ */ import_react56.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react56.default.createElement(
|
|
13941
14291
|
themedObjectInspector,
|
|
13942
14292
|
{
|
|
13943
14293
|
name: "schema",
|
|
@@ -13946,7 +14296,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13946
14296
|
}
|
|
13947
14297
|
)))
|
|
13948
14298
|
),
|
|
13949
|
-
/* @__PURE__ */
|
|
14299
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
13950
14300
|
HistorySection,
|
|
13951
14301
|
{
|
|
13952
14302
|
showHistory,
|
|
@@ -13956,14 +14306,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13956
14306
|
multiplayerStateManager
|
|
13957
14307
|
}
|
|
13958
14308
|
),
|
|
13959
|
-
/* @__PURE__ */
|
|
14309
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
13960
14310
|
StateInspectorDisclosureSection,
|
|
13961
14311
|
{
|
|
13962
14312
|
open: showAssets,
|
|
13963
14313
|
setOpen: setShowAssets,
|
|
13964
|
-
title: /* @__PURE__ */
|
|
14314
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Assets (", assets.length, ")", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: assetsInitialized ? "success" : "error" })),
|
|
13965
14315
|
colorScheme,
|
|
13966
|
-
right: /* @__PURE__ */
|
|
14316
|
+
right: /* @__PURE__ */ import_react56.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
13967
14317
|
StateInspectorButton,
|
|
13968
14318
|
{
|
|
13969
14319
|
theme: theme3,
|
|
@@ -13978,7 +14328,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13978
14328
|
}
|
|
13979
14329
|
},
|
|
13980
14330
|
"Delete all"
|
|
13981
|
-
), /* @__PURE__ */
|
|
14331
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
13982
14332
|
StateInspectorButton,
|
|
13983
14333
|
{
|
|
13984
14334
|
theme: theme3,
|
|
@@ -13991,7 +14341,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13991
14341
|
}
|
|
13992
14342
|
},
|
|
13993
14343
|
"Reload"
|
|
13994
|
-
), /* @__PURE__ */
|
|
14344
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
13995
14345
|
StateInspectorButton,
|
|
13996
14346
|
{
|
|
13997
14347
|
theme: theme3,
|
|
@@ -14015,14 +14365,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14015
14365
|
"Upload"
|
|
14016
14366
|
))
|
|
14017
14367
|
},
|
|
14018
|
-
/* @__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(
|
|
14019
14369
|
themedObjectInspector,
|
|
14020
14370
|
{
|
|
14021
14371
|
name: asset.id,
|
|
14022
14372
|
data: truncateAsset(asset),
|
|
14023
14373
|
theme: theme3
|
|
14024
14374
|
}
|
|
14025
|
-
), /* @__PURE__ */
|
|
14375
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14026
14376
|
StateInspectorButton,
|
|
14027
14377
|
{
|
|
14028
14378
|
theme: theme3,
|
|
@@ -14031,14 +14381,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14031
14381
|
"Delete"
|
|
14032
14382
|
))))
|
|
14033
14383
|
),
|
|
14034
|
-
advanced && /* @__PURE__ */
|
|
14384
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14035
14385
|
StateInspectorDisclosureSection,
|
|
14036
14386
|
{
|
|
14037
|
-
title: /* @__PURE__ */
|
|
14387
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Resources (", resources.length, ")", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: resourcesInitialized ? "success" : "error" })),
|
|
14038
14388
|
colorScheme,
|
|
14039
14389
|
open: showResources,
|
|
14040
14390
|
setOpen: setShowResources,
|
|
14041
|
-
right: /* @__PURE__ */
|
|
14391
|
+
right: /* @__PURE__ */ import_react56.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14042
14392
|
StateInspectorButton,
|
|
14043
14393
|
{
|
|
14044
14394
|
theme: theme3,
|
|
@@ -14053,12 +14403,12 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14053
14403
|
}
|
|
14054
14404
|
},
|
|
14055
14405
|
"Delete all"
|
|
14056
|
-
), /* @__PURE__ */
|
|
14406
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14057
14407
|
StateInspectorButton,
|
|
14058
14408
|
{
|
|
14059
14409
|
theme: theme3,
|
|
14060
14410
|
onClick: async () => {
|
|
14061
|
-
const path2 = prompt("Enter directory path") || (0,
|
|
14411
|
+
const path2 = prompt("Enter directory path") || (0, import_noya_utils24.uuid)();
|
|
14062
14412
|
await resourceManager.createResource({
|
|
14063
14413
|
type: "directory",
|
|
14064
14414
|
path: path2
|
|
@@ -14066,7 +14416,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14066
14416
|
}
|
|
14067
14417
|
},
|
|
14068
14418
|
"Create Directory"
|
|
14069
|
-
), /* @__PURE__ */
|
|
14419
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14070
14420
|
StateInspectorButton,
|
|
14071
14421
|
{
|
|
14072
14422
|
theme: theme3,
|
|
@@ -14074,9 +14424,9 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14074
14424
|
const file = await uploadFile();
|
|
14075
14425
|
resourceManager.createResource({
|
|
14076
14426
|
type: "asset",
|
|
14077
|
-
path: file.name || (0,
|
|
14427
|
+
path: file.name || (0, import_noya_utils24.uuid)(),
|
|
14078
14428
|
asset: {
|
|
14079
|
-
content:
|
|
14429
|
+
content: import_noya_utils24.Base64.encode(await file.arrayBuffer()),
|
|
14080
14430
|
contentType: file.type,
|
|
14081
14431
|
encoding: "base64"
|
|
14082
14432
|
}
|
|
@@ -14086,21 +14436,21 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14086
14436
|
"Create Asset"
|
|
14087
14437
|
))
|
|
14088
14438
|
},
|
|
14089
|
-
/* @__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(
|
|
14090
14440
|
themedObjectInspector,
|
|
14091
14441
|
{
|
|
14092
14442
|
name: resource.path,
|
|
14093
14443
|
data: resource,
|
|
14094
14444
|
theme: theme3
|
|
14095
14445
|
}
|
|
14096
|
-
), /* @__PURE__ */
|
|
14446
|
+
), /* @__PURE__ */ import_react56.default.createElement("div", { style: { display: "flex", gap: "4px" } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
14097
14447
|
StateInspectorButton,
|
|
14098
14448
|
{
|
|
14099
14449
|
theme: theme3,
|
|
14100
14450
|
onClick: () => resourceManager.deleteResource({ id: resource.id })
|
|
14101
14451
|
},
|
|
14102
14452
|
"Delete"
|
|
14103
|
-
), /* @__PURE__ */
|
|
14453
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
14104
14454
|
StateInspectorButton,
|
|
14105
14455
|
{
|
|
14106
14456
|
theme: theme3,
|
|
@@ -14113,14 +14463,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14113
14463
|
"Rename"
|
|
14114
14464
|
)))))
|
|
14115
14465
|
),
|
|
14116
|
-
advanced && /* @__PURE__ */
|
|
14466
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14117
14467
|
StateInspectorDisclosureSection,
|
|
14118
14468
|
{
|
|
14119
|
-
title: /* @__PURE__ */
|
|
14469
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Secrets", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: secretsInitialized ? "success" : "error" })),
|
|
14120
14470
|
colorScheme,
|
|
14121
14471
|
open: showSecrets,
|
|
14122
14472
|
setOpen: setShowSecrets,
|
|
14123
|
-
right: /* @__PURE__ */
|
|
14473
|
+
right: /* @__PURE__ */ import_react56.default.createElement(
|
|
14124
14474
|
StateInspectorButton,
|
|
14125
14475
|
{
|
|
14126
14476
|
theme: theme3,
|
|
@@ -14135,7 +14485,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14135
14485
|
"Create"
|
|
14136
14486
|
)
|
|
14137
14487
|
},
|
|
14138
|
-
/* @__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(
|
|
14139
14489
|
StateInspectorButton,
|
|
14140
14490
|
{
|
|
14141
14491
|
theme: theme3,
|
|
@@ -14144,15 +14494,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14144
14494
|
"Delete"
|
|
14145
14495
|
))))
|
|
14146
14496
|
),
|
|
14147
|
-
advanced && /* @__PURE__ */
|
|
14497
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14148
14498
|
StateInspectorDisclosureSection,
|
|
14149
14499
|
{
|
|
14150
14500
|
open: showInputs,
|
|
14151
14501
|
setOpen: setShowInputs,
|
|
14152
|
-
title: /* @__PURE__ */
|
|
14502
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Inputs", /* @__PURE__ */ import_react56.default.createElement(ColoredDot, { type: inputsInitialized ? "success" : "error" })),
|
|
14153
14503
|
colorScheme
|
|
14154
14504
|
},
|
|
14155
|
-
/* @__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(
|
|
14156
14506
|
"div",
|
|
14157
14507
|
{
|
|
14158
14508
|
style: {
|
|
@@ -14163,15 +14513,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14163
14513
|
gap: "4px"
|
|
14164
14514
|
}
|
|
14165
14515
|
},
|
|
14166
|
-
/* @__PURE__ */
|
|
14516
|
+
/* @__PURE__ */ import_react56.default.createElement("span", null, "No inputs")
|
|
14167
14517
|
))
|
|
14168
14518
|
),
|
|
14169
|
-
advanced && /* @__PURE__ */
|
|
14519
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14170
14520
|
StateInspectorDisclosureSection,
|
|
14171
14521
|
{
|
|
14172
14522
|
open: showOutputTransforms,
|
|
14173
14523
|
setOpen: setShowOutputTransforms,
|
|
14174
|
-
title: /* @__PURE__ */
|
|
14524
|
+
title: /* @__PURE__ */ import_react56.default.createElement(StateInspectorTitleLabel, null, "Output Transforms", /* @__PURE__ */ import_react56.default.createElement(
|
|
14175
14525
|
ColoredDot,
|
|
14176
14526
|
{
|
|
14177
14527
|
type: outputTransformsInitialized ? "success" : "error"
|
|
@@ -14179,7 +14529,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14179
14529
|
)),
|
|
14180
14530
|
colorScheme
|
|
14181
14531
|
},
|
|
14182
|
-
/* @__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(
|
|
14183
14533
|
"div",
|
|
14184
14534
|
{
|
|
14185
14535
|
style: {
|
|
@@ -14190,10 +14540,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14190
14540
|
gap: "4px"
|
|
14191
14541
|
}
|
|
14192
14542
|
},
|
|
14193
|
-
/* @__PURE__ */
|
|
14543
|
+
/* @__PURE__ */ import_react56.default.createElement("span", null, "No output transforms")
|
|
14194
14544
|
))
|
|
14195
14545
|
),
|
|
14196
|
-
advanced && /* @__PURE__ */
|
|
14546
|
+
advanced && /* @__PURE__ */ import_react56.default.createElement(
|
|
14197
14547
|
StateInspectorDisclosureSection,
|
|
14198
14548
|
{
|
|
14199
14549
|
title: "Tasks",
|
|
@@ -14201,7 +14551,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14201
14551
|
open: showTasks,
|
|
14202
14552
|
setOpen: setShowTasks
|
|
14203
14553
|
},
|
|
14204
|
-
/* @__PURE__ */
|
|
14554
|
+
/* @__PURE__ */ import_react56.default.createElement(StateInspectorDisclosureRowInner, null, tasks?.map((task) => /* @__PURE__ */ import_react56.default.createElement(
|
|
14205
14555
|
StateInspectorRow,
|
|
14206
14556
|
{
|
|
14207
14557
|
key: task.id,
|
|
@@ -14210,7 +14560,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14210
14560
|
backgroundColor: task.status === "done" ? "rgba(0,255,0,0.2)" : task.status === "error" ? "rgba(255,0,0,0.2)" : void 0
|
|
14211
14561
|
}
|
|
14212
14562
|
},
|
|
14213
|
-
/* @__PURE__ */
|
|
14563
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14214
14564
|
themedObjectInspector,
|
|
14215
14565
|
{
|
|
14216
14566
|
name: task.name,
|
|
@@ -14220,15 +14570,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14220
14570
|
)
|
|
14221
14571
|
)))
|
|
14222
14572
|
),
|
|
14223
|
-
/* @__PURE__ */
|
|
14573
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14224
14574
|
StateInspectorDisclosureSection,
|
|
14225
14575
|
{
|
|
14226
|
-
open:
|
|
14227
|
-
setOpen:
|
|
14228
|
-
title: "
|
|
14576
|
+
open: showShared,
|
|
14577
|
+
setOpen: setShowShared,
|
|
14578
|
+
title: "Shared Connection Data",
|
|
14229
14579
|
colorScheme
|
|
14230
14580
|
},
|
|
14231
|
-
/* @__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(
|
|
14232
14582
|
themedObjectInspector,
|
|
14233
14583
|
{
|
|
14234
14584
|
name: key,
|
|
@@ -14238,7 +14588,56 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14238
14588
|
}
|
|
14239
14589
|
))))
|
|
14240
14590
|
),
|
|
14241
|
-
|
|
14591
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14592
|
+
ServerScriptLogsSection,
|
|
14593
|
+
{
|
|
14594
|
+
colorScheme,
|
|
14595
|
+
showLogs: showServerLogs,
|
|
14596
|
+
setShowLogs: setShowServerLogs,
|
|
14597
|
+
logs: visibleServerLogs,
|
|
14598
|
+
paused: serverLogsPaused,
|
|
14599
|
+
onTogglePaused: toggleServerLogsPaused,
|
|
14600
|
+
containerRef: serverLogsContainerRef
|
|
14601
|
+
}
|
|
14602
|
+
),
|
|
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(
|
|
14242
14641
|
ActivityEventsSection,
|
|
14243
14642
|
{
|
|
14244
14643
|
colorScheme,
|
|
@@ -14248,10 +14647,12 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14248
14647
|
activityEventsManager
|
|
14249
14648
|
}
|
|
14250
14649
|
),
|
|
14251
|
-
/* @__PURE__ */
|
|
14650
|
+
/* @__PURE__ */ import_react56.default.createElement(
|
|
14252
14651
|
EventsSection,
|
|
14253
14652
|
{
|
|
14254
|
-
connectionEvents,
|
|
14653
|
+
connectionEvents: visibleConnectionEvents,
|
|
14654
|
+
paused: connectionEventsPaused,
|
|
14655
|
+
onTogglePaused: toggleConnectionEventsPaused,
|
|
14255
14656
|
colorScheme,
|
|
14256
14657
|
eventsContainerRef,
|
|
14257
14658
|
showEvents,
|
|
@@ -14260,7 +14661,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14260
14661
|
)
|
|
14261
14662
|
);
|
|
14262
14663
|
});
|
|
14263
|
-
var truncateAsset = (0,
|
|
14664
|
+
var truncateAsset = (0, import_noya_utils24.memoize)((asset) => {
|
|
14264
14665
|
if (asset.url.startsWith("data:") || asset.url.startsWith("blob:")) {
|
|
14265
14666
|
return { ...asset, url: ellipsis(asset.url, 40) };
|
|
14266
14667
|
}
|
|
@@ -14269,7 +14670,7 @@ var truncateAsset = (0, import_noya_utils18.memoize)((asset) => {
|
|
|
14269
14670
|
|
|
14270
14671
|
// ../noya-multiplayer-react/src/hooks.ts
|
|
14271
14672
|
function useManagedHistory(stateManager) {
|
|
14272
|
-
return (0,
|
|
14673
|
+
return (0, import_react58.useSyncExternalStore)(
|
|
14273
14674
|
stateManager.historyEmittor.addListener,
|
|
14274
14675
|
stateManager.getHistorySnapshot,
|
|
14275
14676
|
stateManager.getHistorySnapshot
|
|
@@ -14277,15 +14678,15 @@ function useManagedHistory(stateManager) {
|
|
|
14277
14678
|
}
|
|
14278
14679
|
|
|
14279
14680
|
// ../noya-multiplayer-react/src/singleton.tsx
|
|
14280
|
-
var
|
|
14681
|
+
var import_react60 = __toESM(require("react"));
|
|
14281
14682
|
|
|
14282
14683
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
14283
|
-
var AnyNoyaStateContext = (0,
|
|
14684
|
+
var AnyNoyaStateContext = (0, import_react61.createContext)(void 0);
|
|
14284
14685
|
var emptyArray = [];
|
|
14285
14686
|
function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
14286
|
-
const [streamId, setStreamId] = (0,
|
|
14687
|
+
const [streamId, setStreamId] = (0, import_react61.useState)(void 0);
|
|
14287
14688
|
const stableStreamFilter = useJsonMemo(streamFilter);
|
|
14288
|
-
(0,
|
|
14689
|
+
(0, import_react61.useEffect)(() => {
|
|
14289
14690
|
if (!stableStreamFilter) return;
|
|
14290
14691
|
const streamId2 = activityEventsManager.subscribe(stableStreamFilter);
|
|
14291
14692
|
setStreamId(streamId2);
|
|
@@ -14299,29 +14700,29 @@ function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
|
14299
14700
|
}
|
|
14300
14701
|
|
|
14301
14702
|
// ../noya-multiplayer-react/src/components/UserPointersOverlay.tsx
|
|
14302
|
-
var
|
|
14303
|
-
var
|
|
14703
|
+
var import_observable24 = require("@noya-app/observable");
|
|
14704
|
+
var import_react63 = __toESM(require("react"));
|
|
14304
14705
|
function shouldShow(hideAfter, updatedAt) {
|
|
14305
14706
|
return !!updatedAt && Date.now() - updatedAt < hideAfter;
|
|
14306
14707
|
}
|
|
14307
14708
|
var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
14308
14709
|
user,
|
|
14309
|
-
|
|
14710
|
+
sharedConnectionDataManager,
|
|
14310
14711
|
hideAfter = 5e3,
|
|
14311
14712
|
renderUserPointer
|
|
14312
14713
|
}) {
|
|
14313
|
-
const observable = (0,
|
|
14314
|
-
const metadata$ =
|
|
14315
|
-
const data$ =
|
|
14316
|
-
return
|
|
14714
|
+
const observable = (0, import_react63.useMemo)(() => {
|
|
14715
|
+
const metadata$ = sharedConnectionDataManager.metadata$.observePath([user.connectionId]).throttle(50);
|
|
14716
|
+
const data$ = sharedConnectionDataManager.data$.observePath([user.connectionId]).throttle(50);
|
|
14717
|
+
return import_observable24.Observable.combine([metadata$, data$], ([metadata2, data2]) => {
|
|
14317
14718
|
return { metadata: metadata2, data: data2 };
|
|
14318
14719
|
});
|
|
14319
|
-
}, [
|
|
14720
|
+
}, [sharedConnectionDataManager, user.connectionId]);
|
|
14320
14721
|
const { metadata, data } = useObservable2(observable);
|
|
14321
|
-
const [, setForceUpdate] = (0,
|
|
14722
|
+
const [, setForceUpdate] = (0, import_react63.useState)(0);
|
|
14322
14723
|
const updatedAt = metadata?.updatedAt ?? 0;
|
|
14323
14724
|
const show = shouldShow(hideAfter, updatedAt);
|
|
14324
|
-
(0,
|
|
14725
|
+
(0, import_react63.useEffect)(() => {
|
|
14325
14726
|
if (!show) return;
|
|
14326
14727
|
const timeoutId = setTimeout(() => {
|
|
14327
14728
|
setForceUpdate((prev) => prev + 1);
|
|
@@ -14330,7 +14731,7 @@ var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
|
14330
14731
|
}, [hideAfter, show, updatedAt]);
|
|
14331
14732
|
if (!data?.pointer) return null;
|
|
14332
14733
|
return renderUserPointer({
|
|
14333
|
-
userId: user.
|
|
14734
|
+
userId: user.connectionId,
|
|
14334
14735
|
name: user.name,
|
|
14335
14736
|
point: data.pointer,
|
|
14336
14737
|
visible: show
|
|
@@ -14338,19 +14739,21 @@ var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
|
14338
14739
|
});
|
|
14339
14740
|
var UserPointersOverlay = memoGeneric(function UserPointers({
|
|
14340
14741
|
userManager,
|
|
14341
|
-
|
|
14742
|
+
sharedConnectionDataManager,
|
|
14342
14743
|
renderUserPointer
|
|
14343
14744
|
}) {
|
|
14344
|
-
const
|
|
14745
|
+
const currentConnectionId = useObservable2(
|
|
14746
|
+
sharedConnectionDataManager.currentConnectionId$
|
|
14747
|
+
);
|
|
14345
14748
|
const connectedUsers = useObservable2(userManager.connectedUsers$);
|
|
14346
|
-
return /* @__PURE__ */
|
|
14347
|
-
if (user.
|
|
14348
|
-
return /* @__PURE__ */
|
|
14749
|
+
return /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, connectedUsers.map((user) => {
|
|
14750
|
+
if (user.connectionId === currentConnectionId) return null;
|
|
14751
|
+
return /* @__PURE__ */ import_react63.default.createElement(
|
|
14349
14752
|
UserPointerInternal,
|
|
14350
14753
|
{
|
|
14351
|
-
key: user.
|
|
14754
|
+
key: user.connectionId,
|
|
14352
14755
|
user,
|
|
14353
|
-
|
|
14756
|
+
sharedConnectionDataManager,
|
|
14354
14757
|
renderUserPointer
|
|
14355
14758
|
}
|
|
14356
14759
|
);
|
|
@@ -14359,15 +14762,15 @@ var UserPointersOverlay = memoGeneric(function UserPointers({
|
|
|
14359
14762
|
|
|
14360
14763
|
// src/react/tableHooks.ts
|
|
14361
14764
|
var import_observable_store = require("@noya-app/observable-store");
|
|
14362
|
-
var
|
|
14765
|
+
var import_react64 = require("react");
|
|
14363
14766
|
function useTable(table, {
|
|
14364
14767
|
where,
|
|
14365
14768
|
select
|
|
14366
14769
|
}, options = {}) {
|
|
14367
|
-
const stableSelect = (0,
|
|
14770
|
+
const stableSelect = (0, import_react64.useMemo)(() => {
|
|
14368
14771
|
return JSON.stringify(select);
|
|
14369
14772
|
}, [select]);
|
|
14370
|
-
const stableWhere = (0,
|
|
14773
|
+
const stableWhere = (0, import_react64.useMemo)(() => {
|
|
14371
14774
|
let cloneWithNoUndefined = {};
|
|
14372
14775
|
for (const [key, value] of Object.entries(where ?? {})) {
|
|
14373
14776
|
if (value !== void 0) {
|
|
@@ -14376,7 +14779,7 @@ function useTable(table, {
|
|
|
14376
14779
|
}
|
|
14377
14780
|
return JSON.stringify(cloneWithNoUndefined);
|
|
14378
14781
|
}, [where]);
|
|
14379
|
-
const observable = (0,
|
|
14782
|
+
const observable = (0, import_react64.useMemo)(() => {
|
|
14380
14783
|
const parsedSelect = JSON.parse(stableSelect);
|
|
14381
14784
|
const parsedWhere = JSON.parse(stableWhere);
|
|
14382
14785
|
if (!table) {
|
|
@@ -14403,18 +14806,18 @@ function useTable(table, {
|
|
|
14403
14806
|
}
|
|
14404
14807
|
);
|
|
14405
14808
|
}, [stableSelect, stableWhere, table, options.policy, options.debug]);
|
|
14406
|
-
(0,
|
|
14809
|
+
(0, import_react64.useEffect)(() => {
|
|
14407
14810
|
observable.start?.();
|
|
14408
14811
|
}, [observable]);
|
|
14409
14812
|
const { status, data } = useObservable2(observable);
|
|
14410
|
-
const optimisticUpdate = (0,
|
|
14813
|
+
const optimisticUpdate = (0, import_react64.useCallback)(
|
|
14411
14814
|
(entity, config) => {
|
|
14412
14815
|
if (!table) return;
|
|
14413
14816
|
table.optimisticUpdate(entity, config);
|
|
14414
14817
|
},
|
|
14415
14818
|
[table]
|
|
14416
14819
|
);
|
|
14417
|
-
return (0,
|
|
14820
|
+
return (0, import_react64.useMemo)(() => {
|
|
14418
14821
|
return {
|
|
14419
14822
|
status,
|
|
14420
14823
|
data,
|
|
@@ -14444,7 +14847,7 @@ function useFileListItem(id, select, options = {}) {
|
|
|
14444
14847
|
{ where: { id: id ?? null }, select },
|
|
14445
14848
|
options
|
|
14446
14849
|
);
|
|
14447
|
-
return (0,
|
|
14850
|
+
return (0, import_react64.useMemo)(() => {
|
|
14448
14851
|
return {
|
|
14449
14852
|
data: data.at(0),
|
|
14450
14853
|
status,
|
|
@@ -14474,7 +14877,7 @@ function useUser(id, select, options = {}) {
|
|
|
14474
14877
|
{ select, where: { id: id ?? null } },
|
|
14475
14878
|
options
|
|
14476
14879
|
);
|
|
14477
|
-
return (0,
|
|
14880
|
+
return (0, import_react64.useMemo)(() => {
|
|
14478
14881
|
return {
|
|
14479
14882
|
status,
|
|
14480
14883
|
data: data.at(0),
|