@noya-app/noya-api-client-react 0.1.43 → 0.1.44
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 +7 -7
- package/CHANGELOG.md +8 -0
- package/dist/index.js +463 -182
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +440 -159
- 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_utils8 = 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,15 +10523,21 @@ 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/stateManager.ts
|
|
10530
|
+
var import_observable9 = require("@noya-app/observable");
|
|
10531
|
+
|
|
10532
|
+
// ../state-manager/src/multiplayer.ts
|
|
10533
|
+
var createHash = (value, options) => (0, import_noya_utils8.hash)(value, { ...options, ignoreUndefinedProperties: true });
|
|
10534
|
+
|
|
10532
10535
|
// ../state-manager/src/NoyaManager.ts
|
|
10533
|
-
var
|
|
10534
|
-
var
|
|
10536
|
+
var import_noya_utils19 = require("@noya-app/noya-utils");
|
|
10537
|
+
var import_observable21 = require("@noya-app/observable");
|
|
10535
10538
|
|
|
10536
10539
|
// ../noya-pipeline/src/graphToTasks.ts
|
|
10537
|
-
var
|
|
10540
|
+
var import_observable11 = require("@noya-app/observable");
|
|
10538
10541
|
|
|
10539
10542
|
// ../noya-pipeline/src/state.ts
|
|
10540
10543
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
@@ -10636,40 +10639,163 @@ var pipelineSchema = Type.Object(
|
|
|
10636
10639
|
);
|
|
10637
10640
|
|
|
10638
10641
|
// ../state-manager/src/PipelineManager.ts
|
|
10639
|
-
var
|
|
10642
|
+
var import_observable12 = require("@noya-app/observable");
|
|
10640
10643
|
|
|
10641
10644
|
// ../state-manager/src/PublishingManager.ts
|
|
10642
|
-
var
|
|
10645
|
+
var import_observable13 = require("@noya-app/observable");
|
|
10643
10646
|
|
|
10644
10647
|
// ../state-manager/src/ResourceManager.ts
|
|
10645
10648
|
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
10646
|
-
var
|
|
10649
|
+
var import_observable14 = require("@noya-app/observable");
|
|
10647
10650
|
|
|
10648
10651
|
// ../state-manager/src/rpcManager.ts
|
|
10649
10652
|
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
10650
|
-
var
|
|
10653
|
+
var import_observable15 = require("@noya-app/observable");
|
|
10651
10654
|
|
|
10652
10655
|
// ../state-manager/src/SecretManager.ts
|
|
10653
|
-
var
|
|
10656
|
+
var import_observable16 = require("@noya-app/observable");
|
|
10654
10657
|
|
|
10655
10658
|
// ../state-manager/src/TaskManager.ts
|
|
10656
|
-
var
|
|
10659
|
+
var import_observable17 = require("@noya-app/observable");
|
|
10660
|
+
|
|
10661
|
+
// ../state-manager/src/TranscriptionManager.ts
|
|
10662
|
+
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
10663
|
+
var import_observable18 = require("@noya-app/observable");
|
|
10657
10664
|
|
|
10658
10665
|
// ../state-manager/src/UserManager.ts
|
|
10659
|
-
var
|
|
10666
|
+
var import_observable20 = require("@noya-app/observable");
|
|
10660
10667
|
|
|
10661
|
-
// ../state-manager/src/
|
|
10662
|
-
var
|
|
10663
|
-
|
|
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
|
-
});
|
|
10668
|
+
// ../state-manager/src/sync/clientId.ts
|
|
10669
|
+
var import_noya_utils14 = require("@noya-app/noya-utils");
|
|
10670
|
+
var import_observable19 = require("@noya-app/observable");
|
|
10670
10671
|
|
|
10671
|
-
// ../state-manager/src/sync/
|
|
10672
|
+
// ../state-manager/src/sync/defaultNames.ts
|
|
10672
10673
|
var import_noya_utils13 = require("@noya-app/noya-utils");
|
|
10674
|
+
var animals = [
|
|
10675
|
+
"cat",
|
|
10676
|
+
"dog",
|
|
10677
|
+
"owl",
|
|
10678
|
+
"fish",
|
|
10679
|
+
"horse",
|
|
10680
|
+
"rabbit",
|
|
10681
|
+
"snake",
|
|
10682
|
+
"lion",
|
|
10683
|
+
"bear",
|
|
10684
|
+
"wolf",
|
|
10685
|
+
"fox",
|
|
10686
|
+
"elephant",
|
|
10687
|
+
"giraffe",
|
|
10688
|
+
"zebra",
|
|
10689
|
+
"panda",
|
|
10690
|
+
"monkey",
|
|
10691
|
+
"penguin",
|
|
10692
|
+
"koala",
|
|
10693
|
+
"kangaroo",
|
|
10694
|
+
"whale",
|
|
10695
|
+
"shark",
|
|
10696
|
+
"turtle",
|
|
10697
|
+
"crocodile",
|
|
10698
|
+
"hippo"
|
|
10699
|
+
];
|
|
10700
|
+
var adjectives = [
|
|
10701
|
+
"happy",
|
|
10702
|
+
"sleepy",
|
|
10703
|
+
"hungry",
|
|
10704
|
+
"thirsty",
|
|
10705
|
+
"healthy",
|
|
10706
|
+
"rich",
|
|
10707
|
+
"funky",
|
|
10708
|
+
"cool",
|
|
10709
|
+
"awesome",
|
|
10710
|
+
"amazing",
|
|
10711
|
+
"fantastic",
|
|
10712
|
+
"incredible",
|
|
10713
|
+
"super",
|
|
10714
|
+
"mega",
|
|
10715
|
+
"ultra"
|
|
10716
|
+
];
|
|
10717
|
+
function randomElement(array) {
|
|
10718
|
+
return array[Math.floor(Math.random() * array.length)];
|
|
10719
|
+
}
|
|
10720
|
+
function getClientImageUrl(animal) {
|
|
10721
|
+
return `https://avatars.noya.site/animals/animals_${animal}.svg`;
|
|
10722
|
+
}
|
|
10723
|
+
function randomClientIdentity() {
|
|
10724
|
+
const animal = randomElement(animals);
|
|
10725
|
+
const name = `${(0, import_noya_utils13.upperFirst)(randomElement(adjectives))} ${(0, import_noya_utils13.upperFirst)(animal)}`;
|
|
10726
|
+
return {
|
|
10727
|
+
name,
|
|
10728
|
+
animal,
|
|
10729
|
+
image: getClientImageUrl(animal)
|
|
10730
|
+
};
|
|
10731
|
+
}
|
|
10732
|
+
function getClientAnimalFromName(name) {
|
|
10733
|
+
const parts = name.trim().split(/\s+/);
|
|
10734
|
+
const possibleAnimal = parts[parts.length - 1]?.toLowerCase();
|
|
10735
|
+
if (!possibleAnimal) return void 0;
|
|
10736
|
+
return animals.includes(possibleAnimal) ? possibleAnimal : void 0;
|
|
10737
|
+
}
|
|
10738
|
+
|
|
10739
|
+
// ../state-manager/src/sync/clientId.ts
|
|
10740
|
+
var CLIENT_ID_STORAGE_KEY = "noya-client-id";
|
|
10741
|
+
var CLIENT_NAME_STORAGE_KEY = "noya-client-name";
|
|
10742
|
+
var CLIENT_IMAGE_STORAGE_KEY = "noya-client-image";
|
|
10743
|
+
var clientId$ = new import_observable19.Observable(void 0);
|
|
10744
|
+
var clientName$ = new import_observable19.Observable(void 0);
|
|
10745
|
+
var clientImage$ = new import_observable19.Observable(void 0);
|
|
10746
|
+
var safeGetItem = (key) => {
|
|
10747
|
+
try {
|
|
10748
|
+
return typeof localStorage !== "undefined" ? localStorage.getItem(key) : null;
|
|
10749
|
+
} catch {
|
|
10750
|
+
return null;
|
|
10751
|
+
}
|
|
10752
|
+
};
|
|
10753
|
+
var safeSetItem = (key, value) => {
|
|
10754
|
+
try {
|
|
10755
|
+
if (typeof localStorage !== "undefined") {
|
|
10756
|
+
localStorage.setItem(key, value);
|
|
10757
|
+
}
|
|
10758
|
+
} catch {
|
|
10759
|
+
}
|
|
10760
|
+
};
|
|
10761
|
+
if (typeof window !== "undefined") {
|
|
10762
|
+
const storedClientId = safeGetItem(CLIENT_ID_STORAGE_KEY);
|
|
10763
|
+
if (storedClientId) {
|
|
10764
|
+
clientId$.set(storedClientId);
|
|
10765
|
+
} else {
|
|
10766
|
+
const newClientId = (0, import_noya_utils14.uuid)();
|
|
10767
|
+
safeSetItem(CLIENT_ID_STORAGE_KEY, newClientId);
|
|
10768
|
+
clientId$.set(newClientId);
|
|
10769
|
+
}
|
|
10770
|
+
let storedClientName = safeGetItem(CLIENT_NAME_STORAGE_KEY) ?? void 0;
|
|
10771
|
+
let storedClientImage = safeGetItem(CLIENT_IMAGE_STORAGE_KEY) ?? void 0;
|
|
10772
|
+
const newIdentity = randomClientIdentity();
|
|
10773
|
+
if (!storedClientName) {
|
|
10774
|
+
storedClientName = newIdentity.name;
|
|
10775
|
+
safeSetItem(CLIENT_NAME_STORAGE_KEY, storedClientName);
|
|
10776
|
+
}
|
|
10777
|
+
if (!storedClientImage) {
|
|
10778
|
+
const animal = (storedClientName && getClientAnimalFromName(storedClientName)) ?? newIdentity.animal;
|
|
10779
|
+
if (animal) {
|
|
10780
|
+
storedClientImage = getClientImageUrl(animal);
|
|
10781
|
+
safeSetItem(CLIENT_IMAGE_STORAGE_KEY, storedClientImage);
|
|
10782
|
+
}
|
|
10783
|
+
}
|
|
10784
|
+
clientName$.set(storedClientName);
|
|
10785
|
+
clientImage$.set(storedClientImage);
|
|
10786
|
+
}
|
|
10787
|
+
|
|
10788
|
+
// ../state-manager/src/sync/syncUtils.ts
|
|
10789
|
+
var import_noya_utils15 = require("@noya-app/noya-utils");
|
|
10790
|
+
|
|
10791
|
+
// ../state-manager/src/sync/localRpcHelpers.ts
|
|
10792
|
+
var import_noya_utils16 = require("@noya-app/noya-utils");
|
|
10793
|
+
|
|
10794
|
+
// ../state-manager/src/sync/localStorageSync.ts
|
|
10795
|
+
var import_noya_utils18 = require("@noya-app/noya-utils");
|
|
10796
|
+
|
|
10797
|
+
// ../state-manager/src/serverScripts.ts
|
|
10798
|
+
var import_noya_utils17 = require("@noya-app/noya-utils");
|
|
10673
10799
|
|
|
10674
10800
|
// ../noya-keymap/src/hooks.ts
|
|
10675
10801
|
var import_react4 = require("react");
|
|
@@ -10781,11 +10907,21 @@ var MenuItemTree = (0, import_tree_visit3.defineTree)((node) => {
|
|
|
10781
10907
|
return node.type === "submenu" ? node.items : [];
|
|
10782
10908
|
});
|
|
10783
10909
|
|
|
10910
|
+
// ../state-manager/src/NoyaManager.ts
|
|
10911
|
+
var createMutatorParametersSchema = Type.Object({
|
|
10912
|
+
sourceCode: Type.String({
|
|
10913
|
+
description: "The source code of the mutator function."
|
|
10914
|
+
}),
|
|
10915
|
+
message: Type.String({
|
|
10916
|
+
description: `A message that summarizes the changes made to the document state.`
|
|
10917
|
+
})
|
|
10918
|
+
});
|
|
10919
|
+
|
|
10784
10920
|
// ../noya-multiplayer-react/src/ai.ts
|
|
10785
|
-
var
|
|
10921
|
+
var import_react61 = require("react");
|
|
10786
10922
|
|
|
10787
10923
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
10788
|
-
var
|
|
10924
|
+
var import_observable22 = require("@noya-app/observable");
|
|
10789
10925
|
|
|
10790
10926
|
// ../noya-react-utils/src/components/AutoSizer.tsx
|
|
10791
10927
|
var React2 = __toESM(require("react"));
|
|
@@ -10967,7 +11103,7 @@ var FileDropTarget = memoGeneric(function FileDropTarget2({ children, onDropFile
|
|
|
10967
11103
|
var import_react8 = require("react");
|
|
10968
11104
|
|
|
10969
11105
|
// ../noya-react-utils/src/hooks/useDeepArray.ts
|
|
10970
|
-
var
|
|
11106
|
+
var import_noya_utils20 = require("@noya-app/noya-utils");
|
|
10971
11107
|
var import_react9 = require("react");
|
|
10972
11108
|
function useJsonMemo(value) {
|
|
10973
11109
|
const stringified = (0, import_react9.useMemo)(
|
|
@@ -10982,7 +11118,7 @@ function useJsonMemo(value) {
|
|
|
10982
11118
|
}
|
|
10983
11119
|
|
|
10984
11120
|
// ../noya-react-utils/src/hooks/useDeepState.ts
|
|
10985
|
-
var
|
|
11121
|
+
var import_noya_utils21 = require("@noya-app/noya-utils");
|
|
10986
11122
|
var import_react10 = require("react");
|
|
10987
11123
|
|
|
10988
11124
|
// ../noya-react-utils/src/hooks/useFetch.ts
|
|
@@ -11013,7 +11149,7 @@ var import_react17 = require("react");
|
|
|
11013
11149
|
var import_react18 = require("react");
|
|
11014
11150
|
|
|
11015
11151
|
// ../noya-react-utils/src/hooks/useShallowArray.ts
|
|
11016
|
-
var
|
|
11152
|
+
var import_noya_utils22 = require("@noya-app/noya-utils");
|
|
11017
11153
|
var import_react19 = require("react");
|
|
11018
11154
|
|
|
11019
11155
|
// ../noya-react-utils/src/hooks/useStableCallback.ts
|
|
@@ -11023,7 +11159,7 @@ var import_react20 = require("react");
|
|
|
11023
11159
|
var import_react21 = require("react");
|
|
11024
11160
|
|
|
11025
11161
|
// ../noya-react-utils/src/hooks/useUrlHashParameters.ts
|
|
11026
|
-
var
|
|
11162
|
+
var import_noya_utils23 = require("@noya-app/noya-utils");
|
|
11027
11163
|
var import_react22 = require("react");
|
|
11028
11164
|
|
|
11029
11165
|
// ../noya-react-utils/src/hooks/useWindowSize.ts
|
|
@@ -11086,13 +11222,13 @@ function downloadBlob(...params) {
|
|
|
11086
11222
|
}
|
|
11087
11223
|
|
|
11088
11224
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
11089
|
-
var
|
|
11225
|
+
var import_react60 = __toESM(require("react"));
|
|
11090
11226
|
|
|
11091
11227
|
// ../noya-multiplayer-react/src/noyaApp.ts
|
|
11092
|
-
var
|
|
11228
|
+
var import_react58 = require("react");
|
|
11093
11229
|
|
|
11094
11230
|
// ../noya-multiplayer-react/src/hooks.ts
|
|
11095
|
-
var
|
|
11231
|
+
var import_react57 = require("react");
|
|
11096
11232
|
var import_client2 = require("react-dom/client");
|
|
11097
11233
|
|
|
11098
11234
|
// ../noya-multiplayer-react/src/components/ErrorOverlay.tsx
|
|
@@ -11170,12 +11306,12 @@ var ErrorOverlay = React6.memo(function ErrorOverlay2({
|
|
|
11170
11306
|
});
|
|
11171
11307
|
|
|
11172
11308
|
// ../noya-multiplayer-react/src/inspector/useStateInspector.tsx
|
|
11173
|
-
var
|
|
11309
|
+
var import_react56 = __toESM(require("react"));
|
|
11174
11310
|
var import_client = require("react-dom/client");
|
|
11175
11311
|
|
|
11176
11312
|
// ../noya-multiplayer-react/src/inspector/StateInspector.tsx
|
|
11177
|
-
var
|
|
11178
|
-
var
|
|
11313
|
+
var import_noya_utils24 = require("@noya-app/noya-utils");
|
|
11314
|
+
var import_react55 = __toESM(require("react"));
|
|
11179
11315
|
|
|
11180
11316
|
// ../../node_modules/react-inspector/dist/index.mjs
|
|
11181
11317
|
var import_react24 = __toESM(require("react"), 1);
|
|
@@ -13029,6 +13165,105 @@ function HistorySection({
|
|
|
13029
13165
|
);
|
|
13030
13166
|
}
|
|
13031
13167
|
|
|
13168
|
+
// ../noya-multiplayer-react/src/inspector/sections/ServerScriptLogsSection.tsx
|
|
13169
|
+
var import_react51 = __toESM(require("react"));
|
|
13170
|
+
var levelColors = {
|
|
13171
|
+
error: "#f87171",
|
|
13172
|
+
warn: "#facc15",
|
|
13173
|
+
log: "#9ca3af"
|
|
13174
|
+
};
|
|
13175
|
+
function formatTimestamp(timestamp) {
|
|
13176
|
+
return new Date(timestamp).toLocaleTimeString();
|
|
13177
|
+
}
|
|
13178
|
+
function ServerScriptLogsSection({
|
|
13179
|
+
showLogs,
|
|
13180
|
+
setShowLogs,
|
|
13181
|
+
colorScheme,
|
|
13182
|
+
logs,
|
|
13183
|
+
containerRef,
|
|
13184
|
+
paused,
|
|
13185
|
+
onTogglePaused
|
|
13186
|
+
}) {
|
|
13187
|
+
const theme3 = getStateInspectorTheme(colorScheme);
|
|
13188
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
13189
|
+
StateInspectorDisclosureSection,
|
|
13190
|
+
{
|
|
13191
|
+
open: showLogs,
|
|
13192
|
+
setOpen: setShowLogs,
|
|
13193
|
+
title: "Server Script Logs",
|
|
13194
|
+
colorScheme,
|
|
13195
|
+
right: /* @__PURE__ */ import_react51.default.createElement(StateInspectorButton, { theme: theme3, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
13196
|
+
},
|
|
13197
|
+
/* @__PURE__ */ import_react51.default.createElement(StateInspectorDisclosureRowInner, { ref: containerRef }, paused && /* @__PURE__ */ import_react51.default.createElement(
|
|
13198
|
+
"div",
|
|
13199
|
+
{
|
|
13200
|
+
style: {
|
|
13201
|
+
padding: "4px 12px",
|
|
13202
|
+
fontSize: "11px",
|
|
13203
|
+
opacity: 0.7
|
|
13204
|
+
}
|
|
13205
|
+
},
|
|
13206
|
+
"Log streaming paused"
|
|
13207
|
+
), logs.map((log) => /* @__PURE__ */ import_react51.default.createElement(StateInspectorRow, { key: log.id, colorScheme }, /* @__PURE__ */ import_react51.default.createElement(
|
|
13208
|
+
"div",
|
|
13209
|
+
{
|
|
13210
|
+
style: {
|
|
13211
|
+
display: "flex",
|
|
13212
|
+
gap: "6px",
|
|
13213
|
+
alignItems: "center",
|
|
13214
|
+
fontSize: "10px",
|
|
13215
|
+
color: "inherit",
|
|
13216
|
+
marginBottom: log.values.length ? "4px" : 0,
|
|
13217
|
+
textTransform: "uppercase"
|
|
13218
|
+
}
|
|
13219
|
+
},
|
|
13220
|
+
/* @__PURE__ */ import_react51.default.createElement("span", null, formatTimestamp(log.timestamp)),
|
|
13221
|
+
/* @__PURE__ */ import_react51.default.createElement("span", { style: { color: levelColors[log.level] } }, log.level),
|
|
13222
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
13223
|
+
"span",
|
|
13224
|
+
{
|
|
13225
|
+
style: {
|
|
13226
|
+
fontFamily: "monospace",
|
|
13227
|
+
textTransform: "none",
|
|
13228
|
+
fontSize: "10px"
|
|
13229
|
+
}
|
|
13230
|
+
},
|
|
13231
|
+
log.scriptId
|
|
13232
|
+
)
|
|
13233
|
+
), /* @__PURE__ */ import_react51.default.createElement(
|
|
13234
|
+
"div",
|
|
13235
|
+
{
|
|
13236
|
+
style: {
|
|
13237
|
+
display: "flex",
|
|
13238
|
+
flexDirection: "column",
|
|
13239
|
+
gap: "4px"
|
|
13240
|
+
}
|
|
13241
|
+
},
|
|
13242
|
+
log.values.length > 0 ? log.values.map((value, index) => /* @__PURE__ */ import_react51.default.createElement(
|
|
13243
|
+
themedObjectInspector,
|
|
13244
|
+
{
|
|
13245
|
+
key: index,
|
|
13246
|
+
data: value,
|
|
13247
|
+
theme: theme3,
|
|
13248
|
+
expandLevel: 3
|
|
13249
|
+
}
|
|
13250
|
+
)) : /* @__PURE__ */ import_react51.default.createElement("span", { style: { fontSize: "11px", opacity: 0.7 } }, "No data")
|
|
13251
|
+
))), !logs?.length && /* @__PURE__ */ import_react51.default.createElement(
|
|
13252
|
+
"div",
|
|
13253
|
+
{
|
|
13254
|
+
style: {
|
|
13255
|
+
padding: "12px",
|
|
13256
|
+
fontSize: "12px",
|
|
13257
|
+
display: "flex",
|
|
13258
|
+
flexDirection: "column",
|
|
13259
|
+
gap: "4px"
|
|
13260
|
+
}
|
|
13261
|
+
},
|
|
13262
|
+
/* @__PURE__ */ import_react51.default.createElement("span", null, "No logs received")
|
|
13263
|
+
))
|
|
13264
|
+
);
|
|
13265
|
+
}
|
|
13266
|
+
|
|
13032
13267
|
// ../noya-multiplayer-react/src/inspector/zip/crc32.ts
|
|
13033
13268
|
var CRC_TABLE = (() => {
|
|
13034
13269
|
const t = new Uint32Array(256);
|
|
@@ -13553,15 +13788,15 @@ function decodeAll(buffer) {
|
|
|
13553
13788
|
}
|
|
13554
13789
|
|
|
13555
13790
|
// ../noya-multiplayer-react/src/inspector/StateInspectorTitleLabel.tsx
|
|
13556
|
-
var
|
|
13791
|
+
var import_react52 = __toESM(require("react"));
|
|
13557
13792
|
function StateInspectorTitleLabel({
|
|
13558
13793
|
children
|
|
13559
13794
|
}) {
|
|
13560
|
-
return /* @__PURE__ */
|
|
13795
|
+
return /* @__PURE__ */ import_react52.default.createElement("span", { style: { display: "flex", alignItems: "center", gap: "4px" } }, children);
|
|
13561
13796
|
}
|
|
13562
13797
|
|
|
13563
13798
|
// ../noya-multiplayer-react/src/inspector/StateInspectorToggleButton.tsx
|
|
13564
|
-
var
|
|
13799
|
+
var import_react53 = __toESM(require("react"));
|
|
13565
13800
|
function StateInspectorToggleButton({
|
|
13566
13801
|
showInspector,
|
|
13567
13802
|
setShowInspector,
|
|
@@ -13569,7 +13804,7 @@ function StateInspectorToggleButton({
|
|
|
13569
13804
|
anchor
|
|
13570
13805
|
}) {
|
|
13571
13806
|
const isRightAnchor = anchor === "right";
|
|
13572
|
-
const rightIcon = /* @__PURE__ */
|
|
13807
|
+
const rightIcon = /* @__PURE__ */ import_react53.default.createElement(
|
|
13573
13808
|
"svg",
|
|
13574
13809
|
{
|
|
13575
13810
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -13579,7 +13814,7 @@ function StateInspectorToggleButton({
|
|
|
13579
13814
|
stroke: "currentColor",
|
|
13580
13815
|
className: "size-6"
|
|
13581
13816
|
},
|
|
13582
|
-
/* @__PURE__ */
|
|
13817
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
13583
13818
|
"path",
|
|
13584
13819
|
{
|
|
13585
13820
|
strokeLinecap: "round",
|
|
@@ -13588,7 +13823,7 @@ function StateInspectorToggleButton({
|
|
|
13588
13823
|
}
|
|
13589
13824
|
)
|
|
13590
13825
|
);
|
|
13591
|
-
const leftIcon = /* @__PURE__ */
|
|
13826
|
+
const leftIcon = /* @__PURE__ */ import_react53.default.createElement(
|
|
13592
13827
|
"svg",
|
|
13593
13828
|
{
|
|
13594
13829
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -13598,7 +13833,7 @@ function StateInspectorToggleButton({
|
|
|
13598
13833
|
stroke: "currentColor",
|
|
13599
13834
|
className: "size-6"
|
|
13600
13835
|
},
|
|
13601
|
-
/* @__PURE__ */
|
|
13836
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
13602
13837
|
"path",
|
|
13603
13838
|
{
|
|
13604
13839
|
strokeLinecap: "round",
|
|
@@ -13607,7 +13842,7 @@ function StateInspectorToggleButton({
|
|
|
13607
13842
|
}
|
|
13608
13843
|
)
|
|
13609
13844
|
);
|
|
13610
|
-
return /* @__PURE__ */
|
|
13845
|
+
return /* @__PURE__ */ import_react53.default.createElement(
|
|
13611
13846
|
"span",
|
|
13612
13847
|
{
|
|
13613
13848
|
role: "button",
|
|
@@ -13628,15 +13863,15 @@ function StateInspectorToggleButton({
|
|
|
13628
13863
|
setShowInspector(!showInspector);
|
|
13629
13864
|
}
|
|
13630
13865
|
},
|
|
13631
|
-
showInspector ? "Hide Inspector" : /* @__PURE__ */
|
|
13866
|
+
showInspector ? "Hide Inspector" : /* @__PURE__ */ import_react53.default.createElement("span", { style: { width: "12px", height: "12px" } }, isRightAnchor ? rightIcon : leftIcon)
|
|
13632
13867
|
);
|
|
13633
13868
|
}
|
|
13634
13869
|
|
|
13635
13870
|
// ../noya-multiplayer-react/src/inspector/useLocalStorageState.tsx
|
|
13636
|
-
var
|
|
13871
|
+
var import_react54 = __toESM(require("react"));
|
|
13637
13872
|
var localStorage2 = typeof window !== "undefined" ? window.localStorage : null;
|
|
13638
13873
|
function useLocalStorageState(key, defaultValue) {
|
|
13639
|
-
const [state, setState] =
|
|
13874
|
+
const [state, setState] = import_react54.default.useState(() => {
|
|
13640
13875
|
const value = localStorage2?.getItem(key);
|
|
13641
13876
|
let result = defaultValue;
|
|
13642
13877
|
if (value) {
|
|
@@ -13669,22 +13904,24 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13669
13904
|
assetManager,
|
|
13670
13905
|
userManager,
|
|
13671
13906
|
secretManager,
|
|
13672
|
-
|
|
13907
|
+
sharedConnectionDataManager,
|
|
13673
13908
|
connectionEventManager,
|
|
13674
13909
|
taskManager,
|
|
13675
13910
|
ioManager,
|
|
13676
13911
|
resourceManager,
|
|
13677
|
-
activityEventsManager
|
|
13912
|
+
activityEventsManager,
|
|
13913
|
+
logManager
|
|
13678
13914
|
} = noyaManager;
|
|
13679
|
-
const [didMount, setDidMount] =
|
|
13915
|
+
const [didMount, setDidMount] = import_react55.default.useState(false);
|
|
13680
13916
|
const tasks = useObservable2(taskManager.tasks$);
|
|
13681
13917
|
const inputs = useObservable2(ioManager.inputs$);
|
|
13682
13918
|
const outputTransforms = useObservable2(ioManager.outputTransforms$);
|
|
13683
|
-
(0,
|
|
13919
|
+
(0, import_react55.useLayoutEffect)(() => {
|
|
13684
13920
|
setDidMount(true);
|
|
13685
13921
|
}, []);
|
|
13686
|
-
const eventsContainerRef =
|
|
13687
|
-
const activityEventsContainerRef =
|
|
13922
|
+
const eventsContainerRef = import_react55.default.useRef(null);
|
|
13923
|
+
const activityEventsContainerRef = import_react55.default.useRef(null);
|
|
13924
|
+
const serverLogsContainerRef = import_react55.default.useRef(null);
|
|
13688
13925
|
const [showInspector, setShowInspector] = useLocalStorageState(
|
|
13689
13926
|
"noya-multiplayer-react-show-inspector",
|
|
13690
13927
|
true
|
|
@@ -13709,8 +13946,8 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13709
13946
|
"noya-multiplayer-react-show-tasks",
|
|
13710
13947
|
false
|
|
13711
13948
|
);
|
|
13712
|
-
const [
|
|
13713
|
-
"noya-multiplayer-react-show-
|
|
13949
|
+
const [showShared, setShowShared] = useLocalStorageState(
|
|
13950
|
+
"noya-multiplayer-react-show-shared",
|
|
13714
13951
|
false
|
|
13715
13952
|
);
|
|
13716
13953
|
const [showAssets, setShowAssets] = useLocalStorageState(
|
|
@@ -13737,16 +13974,43 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13737
13974
|
"noya-multiplayer-react-show-activity-events",
|
|
13738
13975
|
false
|
|
13739
13976
|
);
|
|
13977
|
+
const [showServerLogs, setShowServerLogs] = useLocalStorageState(
|
|
13978
|
+
"noya-multiplayer-react-show-server-logs",
|
|
13979
|
+
false
|
|
13980
|
+
);
|
|
13740
13981
|
const connectionEvents = useObservable2(connectionEventManager.events$);
|
|
13741
|
-
(0,
|
|
13982
|
+
(0, import_react55.useEffect)(() => {
|
|
13742
13983
|
if (eventsContainerRef.current) {
|
|
13743
13984
|
eventsContainerRef.current.scrollTop = eventsContainerRef.current.scrollHeight;
|
|
13744
13985
|
}
|
|
13745
13986
|
}, [connectionEvents]);
|
|
13987
|
+
const serverLogs = useObservable2(logManager.logs$);
|
|
13988
|
+
const [serverLogsPaused, setServerLogsPaused] = import_react55.default.useState(false);
|
|
13989
|
+
const [visibleServerLogs, setVisibleServerLogs] = import_react55.default.useState(
|
|
13990
|
+
serverLogs ?? []
|
|
13991
|
+
);
|
|
13992
|
+
const toggleServerLogsPaused = (0, import_react55.useCallback)(() => {
|
|
13993
|
+
setServerLogsPaused((value) => {
|
|
13994
|
+
if (!value) {
|
|
13995
|
+
setVisibleServerLogs(serverLogs ?? []);
|
|
13996
|
+
}
|
|
13997
|
+
return !value;
|
|
13998
|
+
});
|
|
13999
|
+
}, [serverLogs]);
|
|
14000
|
+
(0, import_react55.useEffect)(() => {
|
|
14001
|
+
if (serverLogsPaused) return;
|
|
14002
|
+
setVisibleServerLogs(serverLogs ?? []);
|
|
14003
|
+
}, [serverLogs, serverLogsPaused]);
|
|
14004
|
+
(0, import_react55.useEffect)(() => {
|
|
14005
|
+
if (!showServerLogs) return;
|
|
14006
|
+
if (serverLogsContainerRef.current) {
|
|
14007
|
+
serverLogsContainerRef.current.scrollTop = serverLogsContainerRef.current.scrollHeight;
|
|
14008
|
+
}
|
|
14009
|
+
}, [showServerLogs, visibleServerLogs]);
|
|
13746
14010
|
const multipeerStateInitialized = useObservable2(
|
|
13747
14011
|
multiplayerStateManager.isInitialized$
|
|
13748
14012
|
);
|
|
13749
|
-
const
|
|
14013
|
+
const shared = useObservable2(sharedConnectionDataManager.data$);
|
|
13750
14014
|
const historySnapshot = useManagedHistory(multiplayerStateManager.sm);
|
|
13751
14015
|
const assets = useObservable2(assetManager.assets$);
|
|
13752
14016
|
const resources = useObservable2(resourceManager.resources$);
|
|
@@ -13755,7 +14019,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13755
14019
|
const secrets = useObservable2(secretManager.secrets$);
|
|
13756
14020
|
const secretsInitialized = useObservable2(secretManager.isInitialized$);
|
|
13757
14021
|
const connectedUsers = useObservable2(userManager.connectedUsers$);
|
|
13758
|
-
const
|
|
14022
|
+
const connectionId = useObservable2(userManager.currentConnectionId$);
|
|
13759
14023
|
const state = useObservable2(multiplayerStateManager.optimisticState$);
|
|
13760
14024
|
const inputsInitialized = useObservable2(ioManager.inputsInitialized$);
|
|
13761
14025
|
const outputTransformsInitialized = useObservable2(
|
|
@@ -13782,11 +14046,11 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13782
14046
|
zIndex: 9999,
|
|
13783
14047
|
lineHeight: "13px"
|
|
13784
14048
|
};
|
|
13785
|
-
const handleExportAll = (0,
|
|
14049
|
+
const handleExportAll = (0, import_react55.useCallback)(async () => {
|
|
13786
14050
|
const buffer = await exportAll(noyaManager);
|
|
13787
14051
|
downloadBlob(new Blob([buffer]), "state.zip");
|
|
13788
14052
|
}, [noyaManager]);
|
|
13789
|
-
const handleImportAll = (0,
|
|
14053
|
+
const handleImportAll = (0, import_react55.useCallback)(async () => {
|
|
13790
14054
|
const file = await uploadFile();
|
|
13791
14055
|
const buffer = await file.arrayBuffer();
|
|
13792
14056
|
importAll(buffer, noyaManager, {
|
|
@@ -13799,7 +14063,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13799
14063
|
}, [noyaManager]);
|
|
13800
14064
|
if (!didMount) return null;
|
|
13801
14065
|
if (!showInspector) {
|
|
13802
|
-
return /* @__PURE__ */
|
|
14066
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
13803
14067
|
"div",
|
|
13804
14068
|
{
|
|
13805
14069
|
...props,
|
|
@@ -13811,7 +14075,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13811
14075
|
},
|
|
13812
14076
|
onClick: () => setShowInspector(true)
|
|
13813
14077
|
},
|
|
13814
|
-
/* @__PURE__ */
|
|
14078
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
13815
14079
|
StateInspectorToggleButton,
|
|
13816
14080
|
{
|
|
13817
14081
|
showInspector,
|
|
@@ -13822,7 +14086,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13822
14086
|
)
|
|
13823
14087
|
);
|
|
13824
14088
|
}
|
|
13825
|
-
return /* @__PURE__ */
|
|
14089
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
13826
14090
|
"div",
|
|
13827
14091
|
{
|
|
13828
14092
|
...props,
|
|
@@ -13831,7 +14095,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13831
14095
|
...props.style
|
|
13832
14096
|
}
|
|
13833
14097
|
},
|
|
13834
|
-
/* @__PURE__ */
|
|
14098
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
13835
14099
|
StateInspectorDisclosureSection,
|
|
13836
14100
|
{
|
|
13837
14101
|
isFirst: true,
|
|
@@ -13843,7 +14107,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13843
14107
|
flex: "0 0 auto",
|
|
13844
14108
|
maxHeight: "200px"
|
|
13845
14109
|
},
|
|
13846
|
-
right: /* @__PURE__ */
|
|
14110
|
+
right: /* @__PURE__ */ import_react55.default.createElement(
|
|
13847
14111
|
StateInspectorToggleButton,
|
|
13848
14112
|
{
|
|
13849
14113
|
showInspector,
|
|
@@ -13853,36 +14117,39 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13853
14117
|
}
|
|
13854
14118
|
)
|
|
13855
14119
|
},
|
|
13856
|
-
/* @__PURE__ */
|
|
13857
|
-
|
|
13858
|
-
|
|
13859
|
-
|
|
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",
|
|
14120
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, { style: { flex: "0 0 auto" } }, connectedUsers?.map((user, index, array) => {
|
|
14121
|
+
const identifier = user.userId ?? user.connectionId;
|
|
14122
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
14123
|
+
StateInspectorRow,
|
|
13866
14124
|
{
|
|
13867
|
-
|
|
13868
|
-
|
|
13869
|
-
|
|
13870
|
-
|
|
13871
|
-
|
|
13872
|
-
|
|
13873
|
-
|
|
13874
|
-
|
|
13875
|
-
|
|
13876
|
-
|
|
13877
|
-
|
|
14125
|
+
key: user.connectionId,
|
|
14126
|
+
colorScheme,
|
|
14127
|
+
variant: user.connectionId === connectionId ? "up" : void 0,
|
|
14128
|
+
bordered: index !== array.length - 1
|
|
14129
|
+
},
|
|
14130
|
+
user.image && /* @__PURE__ */ import_react55.default.createElement(
|
|
14131
|
+
"img",
|
|
14132
|
+
{
|
|
14133
|
+
src: user.image,
|
|
14134
|
+
alt: user.name,
|
|
14135
|
+
style: {
|
|
14136
|
+
width: "13px",
|
|
14137
|
+
height: "13px",
|
|
14138
|
+
borderRadius: "50%",
|
|
14139
|
+
marginRight: "4px",
|
|
14140
|
+
display: "inline-block",
|
|
14141
|
+
position: "relative",
|
|
14142
|
+
background: solidBorderColor,
|
|
14143
|
+
verticalAlign: "middle"
|
|
14144
|
+
}
|
|
13878
14145
|
}
|
|
13879
|
-
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13885
|
-
)
|
|
14146
|
+
),
|
|
14147
|
+
user.name,
|
|
14148
|
+
" (",
|
|
14149
|
+
ellipsis(identifier, 8, "middle"),
|
|
14150
|
+
")"
|
|
14151
|
+
);
|
|
14152
|
+
}), !connectedUsers && /* @__PURE__ */ import_react55.default.createElement(
|
|
13886
14153
|
"div",
|
|
13887
14154
|
{
|
|
13888
14155
|
style: {
|
|
@@ -13893,13 +14160,13 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13893
14160
|
gap: "4px"
|
|
13894
14161
|
}
|
|
13895
14162
|
},
|
|
13896
|
-
/* @__PURE__ */
|
|
14163
|
+
/* @__PURE__ */ import_react55.default.createElement("span", null, "No connected users")
|
|
13897
14164
|
))
|
|
13898
14165
|
),
|
|
13899
|
-
/* @__PURE__ */
|
|
14166
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
13900
14167
|
StateInspectorDisclosureSection,
|
|
13901
14168
|
{
|
|
13902
|
-
title: /* @__PURE__ */
|
|
14169
|
+
title: /* @__PURE__ */ import_react55.default.createElement(StateInspectorTitleLabel, null, "Data", /* @__PURE__ */ import_react55.default.createElement(
|
|
13903
14170
|
ColoredDot,
|
|
13904
14171
|
{
|
|
13905
14172
|
type: multipeerStateInitialized ? "success" : "error"
|
|
@@ -13908,7 +14175,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13908
14175
|
colorScheme,
|
|
13909
14176
|
setOpen: setShowData,
|
|
13910
14177
|
open: showData,
|
|
13911
|
-
right: /* @__PURE__ */
|
|
14178
|
+
right: /* @__PURE__ */ import_react55.default.createElement(
|
|
13912
14179
|
"span",
|
|
13913
14180
|
{
|
|
13914
14181
|
style: {
|
|
@@ -13916,9 +14183,9 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13916
14183
|
gap: "12px"
|
|
13917
14184
|
}
|
|
13918
14185
|
},
|
|
13919
|
-
/* @__PURE__ */
|
|
13920
|
-
/* @__PURE__ */
|
|
13921
|
-
/* @__PURE__ */
|
|
14186
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorButton, { theme: theme3, onClick: handleImportAll }, "Import"),
|
|
14187
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorButton, { theme: theme3, onClick: handleExportAll }, "Export"),
|
|
14188
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
13922
14189
|
StateInspectorButton,
|
|
13923
14190
|
{
|
|
13924
14191
|
theme: theme3,
|
|
@@ -13930,14 +14197,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13930
14197
|
)
|
|
13931
14198
|
)
|
|
13932
14199
|
},
|
|
13933
|
-
/* @__PURE__ */
|
|
14200
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react55.default.createElement(
|
|
13934
14201
|
themedObjectInspector,
|
|
13935
14202
|
{
|
|
13936
14203
|
name: multiplayerStateManager.schema ? "state" : void 0,
|
|
13937
14204
|
data: state,
|
|
13938
14205
|
theme: theme3
|
|
13939
14206
|
}
|
|
13940
|
-
)), multiplayerStateManager.schema && /* @__PURE__ */
|
|
14207
|
+
)), multiplayerStateManager.schema && /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react55.default.createElement(
|
|
13941
14208
|
themedObjectInspector,
|
|
13942
14209
|
{
|
|
13943
14210
|
name: "schema",
|
|
@@ -13946,7 +14213,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13946
14213
|
}
|
|
13947
14214
|
)))
|
|
13948
14215
|
),
|
|
13949
|
-
/* @__PURE__ */
|
|
14216
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
13950
14217
|
HistorySection,
|
|
13951
14218
|
{
|
|
13952
14219
|
showHistory,
|
|
@@ -13956,14 +14223,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13956
14223
|
multiplayerStateManager
|
|
13957
14224
|
}
|
|
13958
14225
|
),
|
|
13959
|
-
/* @__PURE__ */
|
|
14226
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
13960
14227
|
StateInspectorDisclosureSection,
|
|
13961
14228
|
{
|
|
13962
14229
|
open: showAssets,
|
|
13963
14230
|
setOpen: setShowAssets,
|
|
13964
|
-
title: /* @__PURE__ */
|
|
14231
|
+
title: /* @__PURE__ */ import_react55.default.createElement(StateInspectorTitleLabel, null, "Assets (", assets.length, ")", /* @__PURE__ */ import_react55.default.createElement(ColoredDot, { type: assetsInitialized ? "success" : "error" })),
|
|
13965
14232
|
colorScheme,
|
|
13966
|
-
right: /* @__PURE__ */
|
|
14233
|
+
right: /* @__PURE__ */ import_react55.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react55.default.createElement(
|
|
13967
14234
|
StateInspectorButton,
|
|
13968
14235
|
{
|
|
13969
14236
|
theme: theme3,
|
|
@@ -13978,7 +14245,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13978
14245
|
}
|
|
13979
14246
|
},
|
|
13980
14247
|
"Delete all"
|
|
13981
|
-
), /* @__PURE__ */
|
|
14248
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
13982
14249
|
StateInspectorButton,
|
|
13983
14250
|
{
|
|
13984
14251
|
theme: theme3,
|
|
@@ -13991,7 +14258,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
13991
14258
|
}
|
|
13992
14259
|
},
|
|
13993
14260
|
"Reload"
|
|
13994
|
-
), /* @__PURE__ */
|
|
14261
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
13995
14262
|
StateInspectorButton,
|
|
13996
14263
|
{
|
|
13997
14264
|
theme: theme3,
|
|
@@ -14015,14 +14282,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14015
14282
|
"Upload"
|
|
14016
14283
|
))
|
|
14017
14284
|
},
|
|
14018
|
-
/* @__PURE__ */
|
|
14285
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, assets.map((asset) => /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { key: asset.id, colorScheme }, /* @__PURE__ */ import_react55.default.createElement(
|
|
14019
14286
|
themedObjectInspector,
|
|
14020
14287
|
{
|
|
14021
14288
|
name: asset.id,
|
|
14022
14289
|
data: truncateAsset(asset),
|
|
14023
14290
|
theme: theme3
|
|
14024
14291
|
}
|
|
14025
|
-
), /* @__PURE__ */
|
|
14292
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
14026
14293
|
StateInspectorButton,
|
|
14027
14294
|
{
|
|
14028
14295
|
theme: theme3,
|
|
@@ -14031,14 +14298,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14031
14298
|
"Delete"
|
|
14032
14299
|
))))
|
|
14033
14300
|
),
|
|
14034
|
-
advanced && /* @__PURE__ */
|
|
14301
|
+
advanced && /* @__PURE__ */ import_react55.default.createElement(
|
|
14035
14302
|
StateInspectorDisclosureSection,
|
|
14036
14303
|
{
|
|
14037
|
-
title: /* @__PURE__ */
|
|
14304
|
+
title: /* @__PURE__ */ import_react55.default.createElement(StateInspectorTitleLabel, null, "Resources (", resources.length, ")", /* @__PURE__ */ import_react55.default.createElement(ColoredDot, { type: resourcesInitialized ? "success" : "error" })),
|
|
14038
14305
|
colorScheme,
|
|
14039
14306
|
open: showResources,
|
|
14040
14307
|
setOpen: setShowResources,
|
|
14041
|
-
right: /* @__PURE__ */
|
|
14308
|
+
right: /* @__PURE__ */ import_react55.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react55.default.createElement(
|
|
14042
14309
|
StateInspectorButton,
|
|
14043
14310
|
{
|
|
14044
14311
|
theme: theme3,
|
|
@@ -14053,12 +14320,12 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14053
14320
|
}
|
|
14054
14321
|
},
|
|
14055
14322
|
"Delete all"
|
|
14056
|
-
), /* @__PURE__ */
|
|
14323
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
14057
14324
|
StateInspectorButton,
|
|
14058
14325
|
{
|
|
14059
14326
|
theme: theme3,
|
|
14060
14327
|
onClick: async () => {
|
|
14061
|
-
const path2 = prompt("Enter directory path") || (0,
|
|
14328
|
+
const path2 = prompt("Enter directory path") || (0, import_noya_utils24.uuid)();
|
|
14062
14329
|
await resourceManager.createResource({
|
|
14063
14330
|
type: "directory",
|
|
14064
14331
|
path: path2
|
|
@@ -14066,7 +14333,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14066
14333
|
}
|
|
14067
14334
|
},
|
|
14068
14335
|
"Create Directory"
|
|
14069
|
-
), /* @__PURE__ */
|
|
14336
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
14070
14337
|
StateInspectorButton,
|
|
14071
14338
|
{
|
|
14072
14339
|
theme: theme3,
|
|
@@ -14074,9 +14341,9 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14074
14341
|
const file = await uploadFile();
|
|
14075
14342
|
resourceManager.createResource({
|
|
14076
14343
|
type: "asset",
|
|
14077
|
-
path: file.name || (0,
|
|
14344
|
+
path: file.name || (0, import_noya_utils24.uuid)(),
|
|
14078
14345
|
asset: {
|
|
14079
|
-
content:
|
|
14346
|
+
content: import_noya_utils24.Base64.encode(await file.arrayBuffer()),
|
|
14080
14347
|
contentType: file.type,
|
|
14081
14348
|
encoding: "base64"
|
|
14082
14349
|
}
|
|
@@ -14086,21 +14353,21 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14086
14353
|
"Create Asset"
|
|
14087
14354
|
))
|
|
14088
14355
|
},
|
|
14089
|
-
/* @__PURE__ */
|
|
14356
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, resources?.map((resource) => /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { key: resource.id, colorScheme }, /* @__PURE__ */ import_react55.default.createElement(
|
|
14090
14357
|
themedObjectInspector,
|
|
14091
14358
|
{
|
|
14092
14359
|
name: resource.path,
|
|
14093
14360
|
data: resource,
|
|
14094
14361
|
theme: theme3
|
|
14095
14362
|
}
|
|
14096
|
-
), /* @__PURE__ */
|
|
14363
|
+
), /* @__PURE__ */ import_react55.default.createElement("div", { style: { display: "flex", gap: "4px" } }, /* @__PURE__ */ import_react55.default.createElement(
|
|
14097
14364
|
StateInspectorButton,
|
|
14098
14365
|
{
|
|
14099
14366
|
theme: theme3,
|
|
14100
14367
|
onClick: () => resourceManager.deleteResource({ id: resource.id })
|
|
14101
14368
|
},
|
|
14102
14369
|
"Delete"
|
|
14103
|
-
), /* @__PURE__ */
|
|
14370
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
14104
14371
|
StateInspectorButton,
|
|
14105
14372
|
{
|
|
14106
14373
|
theme: theme3,
|
|
@@ -14113,14 +14380,14 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14113
14380
|
"Rename"
|
|
14114
14381
|
)))))
|
|
14115
14382
|
),
|
|
14116
|
-
advanced && /* @__PURE__ */
|
|
14383
|
+
advanced && /* @__PURE__ */ import_react55.default.createElement(
|
|
14117
14384
|
StateInspectorDisclosureSection,
|
|
14118
14385
|
{
|
|
14119
|
-
title: /* @__PURE__ */
|
|
14386
|
+
title: /* @__PURE__ */ import_react55.default.createElement(StateInspectorTitleLabel, null, "Secrets", /* @__PURE__ */ import_react55.default.createElement(ColoredDot, { type: secretsInitialized ? "success" : "error" })),
|
|
14120
14387
|
colorScheme,
|
|
14121
14388
|
open: showSecrets,
|
|
14122
14389
|
setOpen: setShowSecrets,
|
|
14123
|
-
right: /* @__PURE__ */
|
|
14390
|
+
right: /* @__PURE__ */ import_react55.default.createElement(
|
|
14124
14391
|
StateInspectorButton,
|
|
14125
14392
|
{
|
|
14126
14393
|
theme: theme3,
|
|
@@ -14135,7 +14402,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14135
14402
|
"Create"
|
|
14136
14403
|
)
|
|
14137
14404
|
},
|
|
14138
|
-
/* @__PURE__ */
|
|
14405
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, secrets.map((secret) => /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { key: secret.id, colorScheme }, /* @__PURE__ */ import_react55.default.createElement(themedObjectInspector, { data: secret, theme: theme3 }), /* @__PURE__ */ import_react55.default.createElement(
|
|
14139
14406
|
StateInspectorButton,
|
|
14140
14407
|
{
|
|
14141
14408
|
theme: theme3,
|
|
@@ -14144,15 +14411,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14144
14411
|
"Delete"
|
|
14145
14412
|
))))
|
|
14146
14413
|
),
|
|
14147
|
-
advanced && /* @__PURE__ */
|
|
14414
|
+
advanced && /* @__PURE__ */ import_react55.default.createElement(
|
|
14148
14415
|
StateInspectorDisclosureSection,
|
|
14149
14416
|
{
|
|
14150
14417
|
open: showInputs,
|
|
14151
14418
|
setOpen: setShowInputs,
|
|
14152
|
-
title: /* @__PURE__ */
|
|
14419
|
+
title: /* @__PURE__ */ import_react55.default.createElement(StateInspectorTitleLabel, null, "Inputs", /* @__PURE__ */ import_react55.default.createElement(ColoredDot, { type: inputsInitialized ? "success" : "error" })),
|
|
14153
14420
|
colorScheme
|
|
14154
14421
|
},
|
|
14155
|
-
/* @__PURE__ */
|
|
14422
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, inputs?.map((input) => /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { key: input.id, colorScheme }, /* @__PURE__ */ import_react55.default.createElement(themedObjectInspector, { data: input, theme: theme3 }))), !inputs?.length && /* @__PURE__ */ import_react55.default.createElement(
|
|
14156
14423
|
"div",
|
|
14157
14424
|
{
|
|
14158
14425
|
style: {
|
|
@@ -14163,15 +14430,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14163
14430
|
gap: "4px"
|
|
14164
14431
|
}
|
|
14165
14432
|
},
|
|
14166
|
-
/* @__PURE__ */
|
|
14433
|
+
/* @__PURE__ */ import_react55.default.createElement("span", null, "No inputs")
|
|
14167
14434
|
))
|
|
14168
14435
|
),
|
|
14169
|
-
advanced && /* @__PURE__ */
|
|
14436
|
+
advanced && /* @__PURE__ */ import_react55.default.createElement(
|
|
14170
14437
|
StateInspectorDisclosureSection,
|
|
14171
14438
|
{
|
|
14172
14439
|
open: showOutputTransforms,
|
|
14173
14440
|
setOpen: setShowOutputTransforms,
|
|
14174
|
-
title: /* @__PURE__ */
|
|
14441
|
+
title: /* @__PURE__ */ import_react55.default.createElement(StateInspectorTitleLabel, null, "Output Transforms", /* @__PURE__ */ import_react55.default.createElement(
|
|
14175
14442
|
ColoredDot,
|
|
14176
14443
|
{
|
|
14177
14444
|
type: outputTransformsInitialized ? "success" : "error"
|
|
@@ -14179,7 +14446,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14179
14446
|
)),
|
|
14180
14447
|
colorScheme
|
|
14181
14448
|
},
|
|
14182
|
-
/* @__PURE__ */
|
|
14449
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, outputTransforms?.map((transform) => /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { key: transform.id, colorScheme }, /* @__PURE__ */ import_react55.default.createElement(themedObjectInspector, { data: transform, theme: theme3 }))), !outputTransforms?.length && /* @__PURE__ */ import_react55.default.createElement(
|
|
14183
14450
|
"div",
|
|
14184
14451
|
{
|
|
14185
14452
|
style: {
|
|
@@ -14190,10 +14457,10 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14190
14457
|
gap: "4px"
|
|
14191
14458
|
}
|
|
14192
14459
|
},
|
|
14193
|
-
/* @__PURE__ */
|
|
14460
|
+
/* @__PURE__ */ import_react55.default.createElement("span", null, "No output transforms")
|
|
14194
14461
|
))
|
|
14195
14462
|
),
|
|
14196
|
-
advanced && /* @__PURE__ */
|
|
14463
|
+
advanced && /* @__PURE__ */ import_react55.default.createElement(
|
|
14197
14464
|
StateInspectorDisclosureSection,
|
|
14198
14465
|
{
|
|
14199
14466
|
title: "Tasks",
|
|
@@ -14201,7 +14468,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14201
14468
|
open: showTasks,
|
|
14202
14469
|
setOpen: setShowTasks
|
|
14203
14470
|
},
|
|
14204
|
-
/* @__PURE__ */
|
|
14471
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, tasks?.map((task) => /* @__PURE__ */ import_react55.default.createElement(
|
|
14205
14472
|
StateInspectorRow,
|
|
14206
14473
|
{
|
|
14207
14474
|
key: task.id,
|
|
@@ -14210,7 +14477,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14210
14477
|
backgroundColor: task.status === "done" ? "rgba(0,255,0,0.2)" : task.status === "error" ? "rgba(255,0,0,0.2)" : void 0
|
|
14211
14478
|
}
|
|
14212
14479
|
},
|
|
14213
|
-
/* @__PURE__ */
|
|
14480
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
14214
14481
|
themedObjectInspector,
|
|
14215
14482
|
{
|
|
14216
14483
|
name: task.name,
|
|
@@ -14220,15 +14487,15 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14220
14487
|
)
|
|
14221
14488
|
)))
|
|
14222
14489
|
),
|
|
14223
|
-
/* @__PURE__ */
|
|
14490
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
14224
14491
|
StateInspectorDisclosureSection,
|
|
14225
14492
|
{
|
|
14226
|
-
open:
|
|
14227
|
-
setOpen:
|
|
14228
|
-
title: "
|
|
14493
|
+
open: showShared,
|
|
14494
|
+
setOpen: setShowShared,
|
|
14495
|
+
title: "Shared Connection Data",
|
|
14229
14496
|
colorScheme
|
|
14230
14497
|
},
|
|
14231
|
-
/* @__PURE__ */
|
|
14498
|
+
/* @__PURE__ */ import_react55.default.createElement(StateInspectorDisclosureRowInner, null, Object.entries(shared).map(([key, value]) => /* @__PURE__ */ import_react55.default.createElement(StateInspectorRow, { key, colorScheme }, /* @__PURE__ */ import_react55.default.createElement(
|
|
14232
14499
|
themedObjectInspector,
|
|
14233
14500
|
{
|
|
14234
14501
|
name: key,
|
|
@@ -14238,7 +14505,19 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14238
14505
|
}
|
|
14239
14506
|
))))
|
|
14240
14507
|
),
|
|
14241
|
-
|
|
14508
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
14509
|
+
ServerScriptLogsSection,
|
|
14510
|
+
{
|
|
14511
|
+
colorScheme,
|
|
14512
|
+
showLogs: showServerLogs,
|
|
14513
|
+
setShowLogs: setShowServerLogs,
|
|
14514
|
+
logs: visibleServerLogs,
|
|
14515
|
+
paused: serverLogsPaused,
|
|
14516
|
+
onTogglePaused: toggleServerLogsPaused,
|
|
14517
|
+
containerRef: serverLogsContainerRef
|
|
14518
|
+
}
|
|
14519
|
+
),
|
|
14520
|
+
advanced && /* @__PURE__ */ import_react55.default.createElement(
|
|
14242
14521
|
ActivityEventsSection,
|
|
14243
14522
|
{
|
|
14244
14523
|
colorScheme,
|
|
@@ -14248,7 +14527,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14248
14527
|
activityEventsManager
|
|
14249
14528
|
}
|
|
14250
14529
|
),
|
|
14251
|
-
/* @__PURE__ */
|
|
14530
|
+
/* @__PURE__ */ import_react55.default.createElement(
|
|
14252
14531
|
EventsSection,
|
|
14253
14532
|
{
|
|
14254
14533
|
connectionEvents,
|
|
@@ -14260,7 +14539,7 @@ var StateInspector = memoGeneric(function StateInspector2({
|
|
|
14260
14539
|
)
|
|
14261
14540
|
);
|
|
14262
14541
|
});
|
|
14263
|
-
var truncateAsset = (0,
|
|
14542
|
+
var truncateAsset = (0, import_noya_utils24.memoize)((asset) => {
|
|
14264
14543
|
if (asset.url.startsWith("data:") || asset.url.startsWith("blob:")) {
|
|
14265
14544
|
return { ...asset, url: ellipsis(asset.url, 40) };
|
|
14266
14545
|
}
|
|
@@ -14269,7 +14548,7 @@ var truncateAsset = (0, import_noya_utils18.memoize)((asset) => {
|
|
|
14269
14548
|
|
|
14270
14549
|
// ../noya-multiplayer-react/src/hooks.ts
|
|
14271
14550
|
function useManagedHistory(stateManager) {
|
|
14272
|
-
return (0,
|
|
14551
|
+
return (0, import_react57.useSyncExternalStore)(
|
|
14273
14552
|
stateManager.historyEmittor.addListener,
|
|
14274
14553
|
stateManager.getHistorySnapshot,
|
|
14275
14554
|
stateManager.getHistorySnapshot
|
|
@@ -14277,15 +14556,15 @@ function useManagedHistory(stateManager) {
|
|
|
14277
14556
|
}
|
|
14278
14557
|
|
|
14279
14558
|
// ../noya-multiplayer-react/src/singleton.tsx
|
|
14280
|
-
var
|
|
14559
|
+
var import_react59 = __toESM(require("react"));
|
|
14281
14560
|
|
|
14282
14561
|
// ../noya-multiplayer-react/src/NoyaStateContext.tsx
|
|
14283
|
-
var AnyNoyaStateContext = (0,
|
|
14562
|
+
var AnyNoyaStateContext = (0, import_react60.createContext)(void 0);
|
|
14284
14563
|
var emptyArray = [];
|
|
14285
14564
|
function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
14286
|
-
const [streamId, setStreamId] = (0,
|
|
14565
|
+
const [streamId, setStreamId] = (0, import_react60.useState)(void 0);
|
|
14287
14566
|
const stableStreamFilter = useJsonMemo(streamFilter);
|
|
14288
|
-
(0,
|
|
14567
|
+
(0, import_react60.useEffect)(() => {
|
|
14289
14568
|
if (!stableStreamFilter) return;
|
|
14290
14569
|
const streamId2 = activityEventsManager.subscribe(stableStreamFilter);
|
|
14291
14570
|
setStreamId(streamId2);
|
|
@@ -14299,29 +14578,29 @@ function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
|
14299
14578
|
}
|
|
14300
14579
|
|
|
14301
14580
|
// ../noya-multiplayer-react/src/components/UserPointersOverlay.tsx
|
|
14302
|
-
var
|
|
14303
|
-
var
|
|
14581
|
+
var import_observable23 = require("@noya-app/observable");
|
|
14582
|
+
var import_react62 = __toESM(require("react"));
|
|
14304
14583
|
function shouldShow(hideAfter, updatedAt) {
|
|
14305
14584
|
return !!updatedAt && Date.now() - updatedAt < hideAfter;
|
|
14306
14585
|
}
|
|
14307
14586
|
var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
14308
14587
|
user,
|
|
14309
|
-
|
|
14588
|
+
sharedConnectionDataManager,
|
|
14310
14589
|
hideAfter = 5e3,
|
|
14311
14590
|
renderUserPointer
|
|
14312
14591
|
}) {
|
|
14313
|
-
const observable = (0,
|
|
14314
|
-
const metadata$ =
|
|
14315
|
-
const data$ =
|
|
14316
|
-
return
|
|
14592
|
+
const observable = (0, import_react62.useMemo)(() => {
|
|
14593
|
+
const metadata$ = sharedConnectionDataManager.metadata$.observePath([user.connectionId]).throttle(50);
|
|
14594
|
+
const data$ = sharedConnectionDataManager.data$.observePath([user.connectionId]).throttle(50);
|
|
14595
|
+
return import_observable23.Observable.combine([metadata$, data$], ([metadata2, data2]) => {
|
|
14317
14596
|
return { metadata: metadata2, data: data2 };
|
|
14318
14597
|
});
|
|
14319
|
-
}, [
|
|
14598
|
+
}, [sharedConnectionDataManager, user.connectionId]);
|
|
14320
14599
|
const { metadata, data } = useObservable2(observable);
|
|
14321
|
-
const [, setForceUpdate] = (0,
|
|
14600
|
+
const [, setForceUpdate] = (0, import_react62.useState)(0);
|
|
14322
14601
|
const updatedAt = metadata?.updatedAt ?? 0;
|
|
14323
14602
|
const show = shouldShow(hideAfter, updatedAt);
|
|
14324
|
-
(0,
|
|
14603
|
+
(0, import_react62.useEffect)(() => {
|
|
14325
14604
|
if (!show) return;
|
|
14326
14605
|
const timeoutId = setTimeout(() => {
|
|
14327
14606
|
setForceUpdate((prev) => prev + 1);
|
|
@@ -14330,7 +14609,7 @@ var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
|
14330
14609
|
}, [hideAfter, show, updatedAt]);
|
|
14331
14610
|
if (!data?.pointer) return null;
|
|
14332
14611
|
return renderUserPointer({
|
|
14333
|
-
userId: user.
|
|
14612
|
+
userId: user.connectionId,
|
|
14334
14613
|
name: user.name,
|
|
14335
14614
|
point: data.pointer,
|
|
14336
14615
|
visible: show
|
|
@@ -14338,19 +14617,21 @@ var UserPointerInternal = memoGeneric(function UserPointerInternal2({
|
|
|
14338
14617
|
});
|
|
14339
14618
|
var UserPointersOverlay = memoGeneric(function UserPointers({
|
|
14340
14619
|
userManager,
|
|
14341
|
-
|
|
14620
|
+
sharedConnectionDataManager,
|
|
14342
14621
|
renderUserPointer
|
|
14343
14622
|
}) {
|
|
14344
|
-
const
|
|
14623
|
+
const currentConnectionId = useObservable2(
|
|
14624
|
+
sharedConnectionDataManager.currentConnectionId$
|
|
14625
|
+
);
|
|
14345
14626
|
const connectedUsers = useObservable2(userManager.connectedUsers$);
|
|
14346
|
-
return /* @__PURE__ */
|
|
14347
|
-
if (user.
|
|
14348
|
-
return /* @__PURE__ */
|
|
14627
|
+
return /* @__PURE__ */ import_react62.default.createElement(import_react62.default.Fragment, null, connectedUsers.map((user) => {
|
|
14628
|
+
if (user.connectionId === currentConnectionId) return null;
|
|
14629
|
+
return /* @__PURE__ */ import_react62.default.createElement(
|
|
14349
14630
|
UserPointerInternal,
|
|
14350
14631
|
{
|
|
14351
|
-
key: user.
|
|
14632
|
+
key: user.connectionId,
|
|
14352
14633
|
user,
|
|
14353
|
-
|
|
14634
|
+
sharedConnectionDataManager,
|
|
14354
14635
|
renderUserPointer
|
|
14355
14636
|
}
|
|
14356
14637
|
);
|
|
@@ -14359,15 +14640,15 @@ var UserPointersOverlay = memoGeneric(function UserPointers({
|
|
|
14359
14640
|
|
|
14360
14641
|
// src/react/tableHooks.ts
|
|
14361
14642
|
var import_observable_store = require("@noya-app/observable-store");
|
|
14362
|
-
var
|
|
14643
|
+
var import_react63 = require("react");
|
|
14363
14644
|
function useTable(table, {
|
|
14364
14645
|
where,
|
|
14365
14646
|
select
|
|
14366
14647
|
}, options = {}) {
|
|
14367
|
-
const stableSelect = (0,
|
|
14648
|
+
const stableSelect = (0, import_react63.useMemo)(() => {
|
|
14368
14649
|
return JSON.stringify(select);
|
|
14369
14650
|
}, [select]);
|
|
14370
|
-
const stableWhere = (0,
|
|
14651
|
+
const stableWhere = (0, import_react63.useMemo)(() => {
|
|
14371
14652
|
let cloneWithNoUndefined = {};
|
|
14372
14653
|
for (const [key, value] of Object.entries(where ?? {})) {
|
|
14373
14654
|
if (value !== void 0) {
|
|
@@ -14376,7 +14657,7 @@ function useTable(table, {
|
|
|
14376
14657
|
}
|
|
14377
14658
|
return JSON.stringify(cloneWithNoUndefined);
|
|
14378
14659
|
}, [where]);
|
|
14379
|
-
const observable = (0,
|
|
14660
|
+
const observable = (0, import_react63.useMemo)(() => {
|
|
14380
14661
|
const parsedSelect = JSON.parse(stableSelect);
|
|
14381
14662
|
const parsedWhere = JSON.parse(stableWhere);
|
|
14382
14663
|
if (!table) {
|
|
@@ -14403,18 +14684,18 @@ function useTable(table, {
|
|
|
14403
14684
|
}
|
|
14404
14685
|
);
|
|
14405
14686
|
}, [stableSelect, stableWhere, table, options.policy, options.debug]);
|
|
14406
|
-
(0,
|
|
14687
|
+
(0, import_react63.useEffect)(() => {
|
|
14407
14688
|
observable.start?.();
|
|
14408
14689
|
}, [observable]);
|
|
14409
14690
|
const { status, data } = useObservable2(observable);
|
|
14410
|
-
const optimisticUpdate = (0,
|
|
14691
|
+
const optimisticUpdate = (0, import_react63.useCallback)(
|
|
14411
14692
|
(entity, config) => {
|
|
14412
14693
|
if (!table) return;
|
|
14413
14694
|
table.optimisticUpdate(entity, config);
|
|
14414
14695
|
},
|
|
14415
14696
|
[table]
|
|
14416
14697
|
);
|
|
14417
|
-
return (0,
|
|
14698
|
+
return (0, import_react63.useMemo)(() => {
|
|
14418
14699
|
return {
|
|
14419
14700
|
status,
|
|
14420
14701
|
data,
|
|
@@ -14444,7 +14725,7 @@ function useFileListItem(id, select, options = {}) {
|
|
|
14444
14725
|
{ where: { id: id ?? null }, select },
|
|
14445
14726
|
options
|
|
14446
14727
|
);
|
|
14447
|
-
return (0,
|
|
14728
|
+
return (0, import_react63.useMemo)(() => {
|
|
14448
14729
|
return {
|
|
14449
14730
|
data: data.at(0),
|
|
14450
14731
|
status,
|
|
@@ -14474,7 +14755,7 @@ function useUser(id, select, options = {}) {
|
|
|
14474
14755
|
{ select, where: { id: id ?? null } },
|
|
14475
14756
|
options
|
|
14476
14757
|
);
|
|
14477
|
-
return (0,
|
|
14758
|
+
return (0, import_react63.useMemo)(() => {
|
|
14478
14759
|
return {
|
|
14479
14760
|
status,
|
|
14480
14761
|
data: data.at(0),
|