@noya-app/noya-multiplayer-react 0.1.71 → 0.1.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +11 -11
- package/CHANGELOG.md +16 -0
- package/dist/index.bundle.js +42 -26
- package/dist/index.d.mts +69 -49
- package/dist/index.d.ts +69 -49
- package/dist/index.js +475 -253
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +418 -203
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/NoyaStateContext.tsx +148 -97
- package/src/__tests__/noyaApp.test.ts +6 -0
- package/src/__tests__/resourcePayload.test.ts +24 -134
- package/src/components/UserPointersOverlay.tsx +18 -16
- package/src/hooks.ts +19 -12
- package/src/inspector/StateInspector.tsx +84 -36
- package/src/inspector/sections/ServerScriptLogsSection.tsx +128 -0
- package/src/inspector/serialization.ts +4 -2
- package/src/inspector/useStateInspector.tsx +2 -1
- package/src/noyaApp.ts +78 -20
- package/src/singleton.tsx +33 -9
package/dist/index.js
CHANGED
|
@@ -1500,7 +1500,7 @@ __export(src_exports, {
|
|
|
1500
1500
|
StateInspector: () => StateInspector,
|
|
1501
1501
|
UserPointersOverlay: () => UserPointersOverlay,
|
|
1502
1502
|
WebSocketConnection: () => WebSocketConnection,
|
|
1503
|
-
|
|
1503
|
+
buildResourcePatchPayload: () => buildResourcePatchPayload,
|
|
1504
1504
|
createDefaultAppData: () => createDefaultAppData,
|
|
1505
1505
|
createNoyaContext: () => createNoyaContext,
|
|
1506
1506
|
createStateInspectorRoot: () => createStateInspectorRoot,
|
|
@@ -1523,9 +1523,9 @@ __export(src_exports, {
|
|
|
1523
1523
|
useAIManager: () => useAIManager,
|
|
1524
1524
|
useActivityEvents: () => useActivityEvents,
|
|
1525
1525
|
useActivityEventsForManager: () => useActivityEventsForManager,
|
|
1526
|
-
useAnyEphemeralUserData: () => useAnyEphemeralUserData,
|
|
1527
1526
|
useAnyNoyaManager: () => useAnyNoyaManager,
|
|
1528
1527
|
useAnyNoyaStateContext: () => useAnyNoyaStateContext,
|
|
1528
|
+
useAnySharedConnectionData: () => useAnySharedConnectionData,
|
|
1529
1529
|
useAsset: () => useAsset,
|
|
1530
1530
|
useAssetManager: () => useAssetManager,
|
|
1531
1531
|
useAssets: () => useAssets,
|
|
@@ -1534,7 +1534,7 @@ __export(src_exports, {
|
|
|
1534
1534
|
useColorScheme: () => useColorScheme,
|
|
1535
1535
|
useConnectedUser: () => useConnectedUser,
|
|
1536
1536
|
useConnectedUsers: () => useConnectedUsers,
|
|
1537
|
-
|
|
1537
|
+
useEnqueueInput: () => useEnqueueInput,
|
|
1538
1538
|
useFileName: () => useFileName,
|
|
1539
1539
|
useFilePropertyManager: () => useFilePropertyManager,
|
|
1540
1540
|
useIOManager: () => useIOManager,
|
|
@@ -1544,7 +1544,14 @@ __export(src_exports, {
|
|
|
1544
1544
|
useManagedHistory: () => useManagedHistory,
|
|
1545
1545
|
useManagedState: () => useManagedState,
|
|
1546
1546
|
useMultiplayerState: () => useMultiplayerState,
|
|
1547
|
+
useNoyaAssetTranscription: () => useNoyaAssetTranscription,
|
|
1548
|
+
useNoyaClientId: () => useNoyaClientId,
|
|
1549
|
+
useNoyaConnectionId: () => useNoyaConnectionId,
|
|
1550
|
+
useNoyaId: () => useNoyaId,
|
|
1547
1551
|
useNoyaStateInternal: () => useNoyaStateInternal,
|
|
1552
|
+
useNoyaTranscriptionManager: () => useNoyaTranscriptionManager,
|
|
1553
|
+
useNoyaUser: () => useNoyaUser,
|
|
1554
|
+
useNoyaUserId: () => useNoyaUserId,
|
|
1548
1555
|
useObservable: () => useObservable,
|
|
1549
1556
|
useOutputTransforms: () => useOutputTransforms,
|
|
1550
1557
|
usePipelineManager: () => usePipelineManager,
|
|
@@ -1564,7 +1571,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
1564
1571
|
__reExport(src_exports, require("@noya-app/state-manager"), module.exports);
|
|
1565
1572
|
|
|
1566
1573
|
// src/ai.ts
|
|
1567
|
-
var
|
|
1574
|
+
var import_react21 = require("react");
|
|
1568
1575
|
|
|
1569
1576
|
// ../../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs
|
|
1570
1577
|
var TransformKind = Symbol.for("TypeBox.Transform");
|
|
@@ -4681,15 +4688,15 @@ format_exports.Set("uuid", validateUUID);
|
|
|
4681
4688
|
// src/NoyaStateContext.tsx
|
|
4682
4689
|
var import_observable = require("@noya-app/observable");
|
|
4683
4690
|
var import_react_utils3 = require("@noya-app/react-utils");
|
|
4684
|
-
var
|
|
4691
|
+
var import_react20 = __toESM(require("react"));
|
|
4685
4692
|
|
|
4686
4693
|
// src/noyaApp.ts
|
|
4687
4694
|
var import_state_manager3 = require("@noya-app/state-manager");
|
|
4688
|
-
var
|
|
4695
|
+
var import_react18 = require("react");
|
|
4689
4696
|
|
|
4690
4697
|
// src/hooks.ts
|
|
4691
4698
|
var import_state_manager2 = require("@noya-app/state-manager");
|
|
4692
|
-
var
|
|
4699
|
+
var import_react17 = require("react");
|
|
4693
4700
|
var import_client2 = require("react-dom/client");
|
|
4694
4701
|
|
|
4695
4702
|
// src/components/ErrorOverlay.tsx
|
|
@@ -4767,7 +4774,7 @@ var ErrorOverlay = React.memo(function ErrorOverlay2({
|
|
|
4767
4774
|
});
|
|
4768
4775
|
|
|
4769
4776
|
// src/inspector/useStateInspector.tsx
|
|
4770
|
-
var
|
|
4777
|
+
var import_react16 = __toESM(require("react"));
|
|
4771
4778
|
var import_client = require("react-dom/client");
|
|
4772
4779
|
var import_react_utils2 = require("@noya-app/react-utils");
|
|
4773
4780
|
|
|
@@ -4901,8 +4908,8 @@ function uuid() {
|
|
|
4901
4908
|
|
|
4902
4909
|
// src/inspector/StateInspector.tsx
|
|
4903
4910
|
var import_react_utils = require("@noya-app/react-utils");
|
|
4904
|
-
var
|
|
4905
|
-
var
|
|
4911
|
+
var import_react15 = __toESM(require("react"));
|
|
4912
|
+
var import_react_inspector7 = require("react-inspector");
|
|
4906
4913
|
|
|
4907
4914
|
// src/useObservable.ts
|
|
4908
4915
|
var import_react = require("react");
|
|
@@ -5573,6 +5580,106 @@ function HistorySection({
|
|
|
5573
5580
|
);
|
|
5574
5581
|
}
|
|
5575
5582
|
|
|
5583
|
+
// src/inspector/sections/ServerScriptLogsSection.tsx
|
|
5584
|
+
var import_react11 = __toESM(require("react"));
|
|
5585
|
+
var import_react_inspector6 = require("react-inspector");
|
|
5586
|
+
var levelColors = {
|
|
5587
|
+
error: "#f87171",
|
|
5588
|
+
warn: "#facc15",
|
|
5589
|
+
log: "#9ca3af"
|
|
5590
|
+
};
|
|
5591
|
+
function formatTimestamp(timestamp) {
|
|
5592
|
+
return new Date(timestamp).toLocaleTimeString();
|
|
5593
|
+
}
|
|
5594
|
+
function ServerScriptLogsSection({
|
|
5595
|
+
showLogs,
|
|
5596
|
+
setShowLogs,
|
|
5597
|
+
colorScheme,
|
|
5598
|
+
logs,
|
|
5599
|
+
containerRef,
|
|
5600
|
+
paused,
|
|
5601
|
+
onTogglePaused
|
|
5602
|
+
}) {
|
|
5603
|
+
const theme = getStateInspectorTheme(colorScheme);
|
|
5604
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
5605
|
+
StateInspectorDisclosureSection,
|
|
5606
|
+
{
|
|
5607
|
+
open: showLogs,
|
|
5608
|
+
setOpen: setShowLogs,
|
|
5609
|
+
title: "Server Script Logs",
|
|
5610
|
+
colorScheme,
|
|
5611
|
+
right: /* @__PURE__ */ import_react11.default.createElement(StateInspectorButton, { theme, onClick: onTogglePaused }, paused ? "Resume" : "Pause")
|
|
5612
|
+
},
|
|
5613
|
+
/* @__PURE__ */ import_react11.default.createElement(StateInspectorDisclosureRowInner, { ref: containerRef }, paused && /* @__PURE__ */ import_react11.default.createElement(
|
|
5614
|
+
"div",
|
|
5615
|
+
{
|
|
5616
|
+
style: {
|
|
5617
|
+
padding: "4px 12px",
|
|
5618
|
+
fontSize: "11px",
|
|
5619
|
+
opacity: 0.7
|
|
5620
|
+
}
|
|
5621
|
+
},
|
|
5622
|
+
"Log streaming paused"
|
|
5623
|
+
), logs.map((log) => /* @__PURE__ */ import_react11.default.createElement(StateInspectorRow, { key: log.id, colorScheme }, /* @__PURE__ */ import_react11.default.createElement(
|
|
5624
|
+
"div",
|
|
5625
|
+
{
|
|
5626
|
+
style: {
|
|
5627
|
+
display: "flex",
|
|
5628
|
+
gap: "6px",
|
|
5629
|
+
alignItems: "center",
|
|
5630
|
+
fontSize: "10px",
|
|
5631
|
+
color: "inherit",
|
|
5632
|
+
marginBottom: log.values.length ? "4px" : 0,
|
|
5633
|
+
textTransform: "uppercase"
|
|
5634
|
+
}
|
|
5635
|
+
},
|
|
5636
|
+
/* @__PURE__ */ import_react11.default.createElement("span", null, formatTimestamp(log.timestamp)),
|
|
5637
|
+
/* @__PURE__ */ import_react11.default.createElement("span", { style: { color: levelColors[log.level] } }, log.level),
|
|
5638
|
+
/* @__PURE__ */ import_react11.default.createElement(
|
|
5639
|
+
"span",
|
|
5640
|
+
{
|
|
5641
|
+
style: {
|
|
5642
|
+
fontFamily: "monospace",
|
|
5643
|
+
textTransform: "none",
|
|
5644
|
+
fontSize: "10px"
|
|
5645
|
+
}
|
|
5646
|
+
},
|
|
5647
|
+
log.scriptId
|
|
5648
|
+
)
|
|
5649
|
+
), /* @__PURE__ */ import_react11.default.createElement(
|
|
5650
|
+
"div",
|
|
5651
|
+
{
|
|
5652
|
+
style: {
|
|
5653
|
+
display: "flex",
|
|
5654
|
+
flexDirection: "column",
|
|
5655
|
+
gap: "4px"
|
|
5656
|
+
}
|
|
5657
|
+
},
|
|
5658
|
+
log.values.length > 0 ? log.values.map((value, index) => /* @__PURE__ */ import_react11.default.createElement(
|
|
5659
|
+
import_react_inspector6.ObjectInspector,
|
|
5660
|
+
{
|
|
5661
|
+
key: index,
|
|
5662
|
+
data: value,
|
|
5663
|
+
theme,
|
|
5664
|
+
expandLevel: 3
|
|
5665
|
+
}
|
|
5666
|
+
)) : /* @__PURE__ */ import_react11.default.createElement("span", { style: { fontSize: "11px", opacity: 0.7 } }, "No data")
|
|
5667
|
+
))), !logs?.length && /* @__PURE__ */ import_react11.default.createElement(
|
|
5668
|
+
"div",
|
|
5669
|
+
{
|
|
5670
|
+
style: {
|
|
5671
|
+
padding: "12px",
|
|
5672
|
+
fontSize: "12px",
|
|
5673
|
+
display: "flex",
|
|
5674
|
+
flexDirection: "column",
|
|
5675
|
+
gap: "4px"
|
|
5676
|
+
}
|
|
5677
|
+
},
|
|
5678
|
+
/* @__PURE__ */ import_react11.default.createElement("span", null, "No logs received")
|
|
5679
|
+
))
|
|
5680
|
+
);
|
|
5681
|
+
}
|
|
5682
|
+
|
|
5576
5683
|
// src/inspector/serialization.ts
|
|
5577
5684
|
var import_state_manager = require("@noya-app/state-manager");
|
|
5578
5685
|
|
|
@@ -6121,15 +6228,15 @@ function replaceDeep(obj, replacementMap) {
|
|
|
6121
6228
|
}
|
|
6122
6229
|
|
|
6123
6230
|
// src/inspector/StateInspectorTitleLabel.tsx
|
|
6124
|
-
var
|
|
6231
|
+
var import_react12 = __toESM(require("react"));
|
|
6125
6232
|
function StateInspectorTitleLabel({
|
|
6126
6233
|
children
|
|
6127
6234
|
}) {
|
|
6128
|
-
return /* @__PURE__ */
|
|
6235
|
+
return /* @__PURE__ */ import_react12.default.createElement("span", { style: { display: "flex", alignItems: "center", gap: "4px" } }, children);
|
|
6129
6236
|
}
|
|
6130
6237
|
|
|
6131
6238
|
// src/inspector/StateInspectorToggleButton.tsx
|
|
6132
|
-
var
|
|
6239
|
+
var import_react13 = __toESM(require("react"));
|
|
6133
6240
|
function StateInspectorToggleButton({
|
|
6134
6241
|
showInspector,
|
|
6135
6242
|
setShowInspector,
|
|
@@ -6137,7 +6244,7 @@ function StateInspectorToggleButton({
|
|
|
6137
6244
|
anchor
|
|
6138
6245
|
}) {
|
|
6139
6246
|
const isRightAnchor = anchor === "right";
|
|
6140
|
-
const rightIcon = /* @__PURE__ */
|
|
6247
|
+
const rightIcon = /* @__PURE__ */ import_react13.default.createElement(
|
|
6141
6248
|
"svg",
|
|
6142
6249
|
{
|
|
6143
6250
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6147,7 +6254,7 @@ function StateInspectorToggleButton({
|
|
|
6147
6254
|
stroke: "currentColor",
|
|
6148
6255
|
className: "size-6"
|
|
6149
6256
|
},
|
|
6150
|
-
/* @__PURE__ */
|
|
6257
|
+
/* @__PURE__ */ import_react13.default.createElement(
|
|
6151
6258
|
"path",
|
|
6152
6259
|
{
|
|
6153
6260
|
strokeLinecap: "round",
|
|
@@ -6156,7 +6263,7 @@ function StateInspectorToggleButton({
|
|
|
6156
6263
|
}
|
|
6157
6264
|
)
|
|
6158
6265
|
);
|
|
6159
|
-
const leftIcon = /* @__PURE__ */
|
|
6266
|
+
const leftIcon = /* @__PURE__ */ import_react13.default.createElement(
|
|
6160
6267
|
"svg",
|
|
6161
6268
|
{
|
|
6162
6269
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6166,7 +6273,7 @@ function StateInspectorToggleButton({
|
|
|
6166
6273
|
stroke: "currentColor",
|
|
6167
6274
|
className: "size-6"
|
|
6168
6275
|
},
|
|
6169
|
-
/* @__PURE__ */
|
|
6276
|
+
/* @__PURE__ */ import_react13.default.createElement(
|
|
6170
6277
|
"path",
|
|
6171
6278
|
{
|
|
6172
6279
|
strokeLinecap: "round",
|
|
@@ -6175,7 +6282,7 @@ function StateInspectorToggleButton({
|
|
|
6175
6282
|
}
|
|
6176
6283
|
)
|
|
6177
6284
|
);
|
|
6178
|
-
return /* @__PURE__ */
|
|
6285
|
+
return /* @__PURE__ */ import_react13.default.createElement(
|
|
6179
6286
|
"span",
|
|
6180
6287
|
{
|
|
6181
6288
|
role: "button",
|
|
@@ -6196,15 +6303,15 @@ function StateInspectorToggleButton({
|
|
|
6196
6303
|
setShowInspector(!showInspector);
|
|
6197
6304
|
}
|
|
6198
6305
|
},
|
|
6199
|
-
showInspector ? "Hide Inspector" : /* @__PURE__ */
|
|
6306
|
+
showInspector ? "Hide Inspector" : /* @__PURE__ */ import_react13.default.createElement("span", { style: { width: "12px", height: "12px" } }, isRightAnchor ? rightIcon : leftIcon)
|
|
6200
6307
|
);
|
|
6201
6308
|
}
|
|
6202
6309
|
|
|
6203
6310
|
// src/inspector/useLocalStorageState.tsx
|
|
6204
|
-
var
|
|
6311
|
+
var import_react14 = __toESM(require("react"));
|
|
6205
6312
|
var localStorage = typeof window !== "undefined" ? window.localStorage : null;
|
|
6206
6313
|
function useLocalStorageState(key, defaultValue) {
|
|
6207
|
-
const [state, setState] =
|
|
6314
|
+
const [state, setState] = import_react14.default.useState(() => {
|
|
6208
6315
|
const value = localStorage?.getItem(key);
|
|
6209
6316
|
let result = defaultValue;
|
|
6210
6317
|
if (value) {
|
|
@@ -6237,22 +6344,24 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6237
6344
|
assetManager,
|
|
6238
6345
|
userManager,
|
|
6239
6346
|
secretManager,
|
|
6240
|
-
|
|
6347
|
+
sharedConnectionDataManager,
|
|
6241
6348
|
connectionEventManager,
|
|
6242
6349
|
taskManager,
|
|
6243
6350
|
ioManager,
|
|
6244
6351
|
resourceManager,
|
|
6245
|
-
activityEventsManager
|
|
6352
|
+
activityEventsManager,
|
|
6353
|
+
logManager
|
|
6246
6354
|
} = noyaManager;
|
|
6247
|
-
const [didMount, setDidMount] =
|
|
6355
|
+
const [didMount, setDidMount] = import_react15.default.useState(false);
|
|
6248
6356
|
const tasks = useObservable(taskManager.tasks$);
|
|
6249
6357
|
const inputs = useObservable(ioManager.inputs$);
|
|
6250
6358
|
const outputTransforms = useObservable(ioManager.outputTransforms$);
|
|
6251
|
-
(0,
|
|
6359
|
+
(0, import_react15.useLayoutEffect)(() => {
|
|
6252
6360
|
setDidMount(true);
|
|
6253
6361
|
}, []);
|
|
6254
|
-
const eventsContainerRef =
|
|
6255
|
-
const activityEventsContainerRef =
|
|
6362
|
+
const eventsContainerRef = import_react15.default.useRef(null);
|
|
6363
|
+
const activityEventsContainerRef = import_react15.default.useRef(null);
|
|
6364
|
+
const serverLogsContainerRef = import_react15.default.useRef(null);
|
|
6256
6365
|
const [showInspector, setShowInspector] = useLocalStorageState(
|
|
6257
6366
|
"noya-multiplayer-react-show-inspector",
|
|
6258
6367
|
true
|
|
@@ -6277,8 +6386,8 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6277
6386
|
"noya-multiplayer-react-show-tasks",
|
|
6278
6387
|
false
|
|
6279
6388
|
);
|
|
6280
|
-
const [
|
|
6281
|
-
"noya-multiplayer-react-show-
|
|
6389
|
+
const [showShared, setShowShared] = useLocalStorageState(
|
|
6390
|
+
"noya-multiplayer-react-show-shared",
|
|
6282
6391
|
false
|
|
6283
6392
|
);
|
|
6284
6393
|
const [showAssets, setShowAssets] = useLocalStorageState(
|
|
@@ -6305,16 +6414,43 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6305
6414
|
"noya-multiplayer-react-show-activity-events",
|
|
6306
6415
|
false
|
|
6307
6416
|
);
|
|
6417
|
+
const [showServerLogs, setShowServerLogs] = useLocalStorageState(
|
|
6418
|
+
"noya-multiplayer-react-show-server-logs",
|
|
6419
|
+
false
|
|
6420
|
+
);
|
|
6308
6421
|
const connectionEvents = useObservable(connectionEventManager.events$);
|
|
6309
|
-
(0,
|
|
6422
|
+
(0, import_react15.useEffect)(() => {
|
|
6310
6423
|
if (eventsContainerRef.current) {
|
|
6311
6424
|
eventsContainerRef.current.scrollTop = eventsContainerRef.current.scrollHeight;
|
|
6312
6425
|
}
|
|
6313
6426
|
}, [connectionEvents]);
|
|
6427
|
+
const serverLogs = useObservable(logManager.logs$);
|
|
6428
|
+
const [serverLogsPaused, setServerLogsPaused] = import_react15.default.useState(false);
|
|
6429
|
+
const [visibleServerLogs, setVisibleServerLogs] = import_react15.default.useState(
|
|
6430
|
+
serverLogs ?? []
|
|
6431
|
+
);
|
|
6432
|
+
const toggleServerLogsPaused = (0, import_react15.useCallback)(() => {
|
|
6433
|
+
setServerLogsPaused((value) => {
|
|
6434
|
+
if (!value) {
|
|
6435
|
+
setVisibleServerLogs(serverLogs ?? []);
|
|
6436
|
+
}
|
|
6437
|
+
return !value;
|
|
6438
|
+
});
|
|
6439
|
+
}, [serverLogs]);
|
|
6440
|
+
(0, import_react15.useEffect)(() => {
|
|
6441
|
+
if (serverLogsPaused) return;
|
|
6442
|
+
setVisibleServerLogs(serverLogs ?? []);
|
|
6443
|
+
}, [serverLogs, serverLogsPaused]);
|
|
6444
|
+
(0, import_react15.useEffect)(() => {
|
|
6445
|
+
if (!showServerLogs) return;
|
|
6446
|
+
if (serverLogsContainerRef.current) {
|
|
6447
|
+
serverLogsContainerRef.current.scrollTop = serverLogsContainerRef.current.scrollHeight;
|
|
6448
|
+
}
|
|
6449
|
+
}, [showServerLogs, visibleServerLogs]);
|
|
6314
6450
|
const multipeerStateInitialized = useObservable(
|
|
6315
6451
|
multiplayerStateManager.isInitialized$
|
|
6316
6452
|
);
|
|
6317
|
-
const
|
|
6453
|
+
const shared = useObservable(sharedConnectionDataManager.data$);
|
|
6318
6454
|
const historySnapshot = useManagedHistory(multiplayerStateManager.sm);
|
|
6319
6455
|
const assets = useObservable(assetManager.assets$);
|
|
6320
6456
|
const resources = useObservable(resourceManager.resources$);
|
|
@@ -6323,7 +6459,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6323
6459
|
const secrets = useObservable(secretManager.secrets$);
|
|
6324
6460
|
const secretsInitialized = useObservable(secretManager.isInitialized$);
|
|
6325
6461
|
const connectedUsers = useObservable(userManager.connectedUsers$);
|
|
6326
|
-
const
|
|
6462
|
+
const connectionId = useObservable(userManager.currentConnectionId$);
|
|
6327
6463
|
const state = useObservable(multiplayerStateManager.optimisticState$);
|
|
6328
6464
|
const inputsInitialized = useObservable(ioManager.inputsInitialized$);
|
|
6329
6465
|
const outputTransformsInitialized = useObservable(
|
|
@@ -6350,11 +6486,11 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6350
6486
|
zIndex: 9999,
|
|
6351
6487
|
lineHeight: "13px"
|
|
6352
6488
|
};
|
|
6353
|
-
const handleExportAll = (0,
|
|
6489
|
+
const handleExportAll = (0, import_react15.useCallback)(async () => {
|
|
6354
6490
|
const buffer = await exportAll(noyaManager);
|
|
6355
6491
|
(0, import_react_utils.downloadBlob)(new Blob([buffer]), "state.zip");
|
|
6356
6492
|
}, [noyaManager]);
|
|
6357
|
-
const handleImportAll = (0,
|
|
6493
|
+
const handleImportAll = (0, import_react15.useCallback)(async () => {
|
|
6358
6494
|
const file = await uploadFile();
|
|
6359
6495
|
const buffer = await file.arrayBuffer();
|
|
6360
6496
|
importAll(buffer, noyaManager, {
|
|
@@ -6367,7 +6503,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6367
6503
|
}, [noyaManager]);
|
|
6368
6504
|
if (!didMount) return null;
|
|
6369
6505
|
if (!showInspector) {
|
|
6370
|
-
return /* @__PURE__ */
|
|
6506
|
+
return /* @__PURE__ */ import_react15.default.createElement(
|
|
6371
6507
|
"div",
|
|
6372
6508
|
{
|
|
6373
6509
|
...props,
|
|
@@ -6379,7 +6515,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6379
6515
|
},
|
|
6380
6516
|
onClick: () => setShowInspector(true)
|
|
6381
6517
|
},
|
|
6382
|
-
/* @__PURE__ */
|
|
6518
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6383
6519
|
StateInspectorToggleButton,
|
|
6384
6520
|
{
|
|
6385
6521
|
showInspector,
|
|
@@ -6390,7 +6526,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6390
6526
|
)
|
|
6391
6527
|
);
|
|
6392
6528
|
}
|
|
6393
|
-
return /* @__PURE__ */
|
|
6529
|
+
return /* @__PURE__ */ import_react15.default.createElement(
|
|
6394
6530
|
"div",
|
|
6395
6531
|
{
|
|
6396
6532
|
...props,
|
|
@@ -6399,7 +6535,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6399
6535
|
...props.style
|
|
6400
6536
|
}
|
|
6401
6537
|
},
|
|
6402
|
-
/* @__PURE__ */
|
|
6538
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6403
6539
|
StateInspectorDisclosureSection,
|
|
6404
6540
|
{
|
|
6405
6541
|
isFirst: true,
|
|
@@ -6411,7 +6547,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6411
6547
|
flex: "0 0 auto",
|
|
6412
6548
|
maxHeight: "200px"
|
|
6413
6549
|
},
|
|
6414
|
-
right: /* @__PURE__ */
|
|
6550
|
+
right: /* @__PURE__ */ import_react15.default.createElement(
|
|
6415
6551
|
StateInspectorToggleButton,
|
|
6416
6552
|
{
|
|
6417
6553
|
showInspector,
|
|
@@ -6421,36 +6557,39 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6421
6557
|
}
|
|
6422
6558
|
)
|
|
6423
6559
|
},
|
|
6424
|
-
/* @__PURE__ */
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
colorScheme,
|
|
6429
|
-
variant: user.id === userId ? "up" : void 0,
|
|
6430
|
-
bordered: index !== array.length - 1
|
|
6431
|
-
},
|
|
6432
|
-
user.image && /* @__PURE__ */ import_react14.default.createElement(
|
|
6433
|
-
"img",
|
|
6560
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, { style: { flex: "0 0 auto" } }, connectedUsers?.map((user, index, array) => {
|
|
6561
|
+
const identifier = user.userId ?? user.connectionId;
|
|
6562
|
+
return /* @__PURE__ */ import_react15.default.createElement(
|
|
6563
|
+
StateInspectorRow,
|
|
6434
6564
|
{
|
|
6435
|
-
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6565
|
+
key: user.connectionId,
|
|
6566
|
+
colorScheme,
|
|
6567
|
+
variant: user.connectionId === connectionId ? "up" : void 0,
|
|
6568
|
+
bordered: index !== array.length - 1
|
|
6569
|
+
},
|
|
6570
|
+
user.image && /* @__PURE__ */ import_react15.default.createElement(
|
|
6571
|
+
"img",
|
|
6572
|
+
{
|
|
6573
|
+
src: user.image,
|
|
6574
|
+
alt: user.name,
|
|
6575
|
+
style: {
|
|
6576
|
+
width: "13px",
|
|
6577
|
+
height: "13px",
|
|
6578
|
+
borderRadius: "50%",
|
|
6579
|
+
marginRight: "4px",
|
|
6580
|
+
display: "inline-block",
|
|
6581
|
+
position: "relative",
|
|
6582
|
+
background: solidBorderColor,
|
|
6583
|
+
verticalAlign: "middle"
|
|
6584
|
+
}
|
|
6446
6585
|
}
|
|
6447
|
-
|
|
6448
|
-
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
)
|
|
6586
|
+
),
|
|
6587
|
+
user.name,
|
|
6588
|
+
" (",
|
|
6589
|
+
ellipsis(identifier, 8, "middle"),
|
|
6590
|
+
")"
|
|
6591
|
+
);
|
|
6592
|
+
}), !connectedUsers && /* @__PURE__ */ import_react15.default.createElement(
|
|
6454
6593
|
"div",
|
|
6455
6594
|
{
|
|
6456
6595
|
style: {
|
|
@@ -6461,13 +6600,13 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6461
6600
|
gap: "4px"
|
|
6462
6601
|
}
|
|
6463
6602
|
},
|
|
6464
|
-
/* @__PURE__ */
|
|
6603
|
+
/* @__PURE__ */ import_react15.default.createElement("span", null, "No connected users")
|
|
6465
6604
|
))
|
|
6466
6605
|
),
|
|
6467
|
-
/* @__PURE__ */
|
|
6606
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6468
6607
|
StateInspectorDisclosureSection,
|
|
6469
6608
|
{
|
|
6470
|
-
title: /* @__PURE__ */
|
|
6609
|
+
title: /* @__PURE__ */ import_react15.default.createElement(StateInspectorTitleLabel, null, "Data", /* @__PURE__ */ import_react15.default.createElement(
|
|
6471
6610
|
ColoredDot,
|
|
6472
6611
|
{
|
|
6473
6612
|
type: multipeerStateInitialized ? "success" : "error"
|
|
@@ -6476,7 +6615,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6476
6615
|
colorScheme,
|
|
6477
6616
|
setOpen: setShowData,
|
|
6478
6617
|
open: showData,
|
|
6479
|
-
right: /* @__PURE__ */
|
|
6618
|
+
right: /* @__PURE__ */ import_react15.default.createElement(
|
|
6480
6619
|
"span",
|
|
6481
6620
|
{
|
|
6482
6621
|
style: {
|
|
@@ -6484,9 +6623,9 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6484
6623
|
gap: "12px"
|
|
6485
6624
|
}
|
|
6486
6625
|
},
|
|
6487
|
-
/* @__PURE__ */
|
|
6488
|
-
/* @__PURE__ */
|
|
6489
|
-
/* @__PURE__ */
|
|
6626
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorButton, { theme, onClick: handleImportAll }, "Import"),
|
|
6627
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorButton, { theme, onClick: handleExportAll }, "Export"),
|
|
6628
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6490
6629
|
StateInspectorButton,
|
|
6491
6630
|
{
|
|
6492
6631
|
theme,
|
|
@@ -6498,15 +6637,15 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6498
6637
|
)
|
|
6499
6638
|
)
|
|
6500
6639
|
},
|
|
6501
|
-
/* @__PURE__ */
|
|
6502
|
-
|
|
6640
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6641
|
+
import_react_inspector7.ObjectInspector,
|
|
6503
6642
|
{
|
|
6504
6643
|
name: multiplayerStateManager.schema ? "state" : void 0,
|
|
6505
6644
|
data: state,
|
|
6506
6645
|
theme
|
|
6507
6646
|
}
|
|
6508
|
-
)), multiplayerStateManager.schema && /* @__PURE__ */
|
|
6509
|
-
|
|
6647
|
+
)), multiplayerStateManager.schema && /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { colorScheme }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6648
|
+
import_react_inspector7.ObjectInspector,
|
|
6510
6649
|
{
|
|
6511
6650
|
name: "schema",
|
|
6512
6651
|
data: multiplayerStateManager.schema,
|
|
@@ -6514,7 +6653,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6514
6653
|
}
|
|
6515
6654
|
)))
|
|
6516
6655
|
),
|
|
6517
|
-
/* @__PURE__ */
|
|
6656
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6518
6657
|
HistorySection,
|
|
6519
6658
|
{
|
|
6520
6659
|
showHistory,
|
|
@@ -6524,14 +6663,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6524
6663
|
multiplayerStateManager
|
|
6525
6664
|
}
|
|
6526
6665
|
),
|
|
6527
|
-
/* @__PURE__ */
|
|
6666
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6528
6667
|
StateInspectorDisclosureSection,
|
|
6529
6668
|
{
|
|
6530
6669
|
open: showAssets,
|
|
6531
6670
|
setOpen: setShowAssets,
|
|
6532
|
-
title: /* @__PURE__ */
|
|
6671
|
+
title: /* @__PURE__ */ import_react15.default.createElement(StateInspectorTitleLabel, null, "Assets (", assets.length, ")", /* @__PURE__ */ import_react15.default.createElement(ColoredDot, { type: assetsInitialized ? "success" : "error" })),
|
|
6533
6672
|
colorScheme,
|
|
6534
|
-
right: /* @__PURE__ */
|
|
6673
|
+
right: /* @__PURE__ */ import_react15.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6535
6674
|
StateInspectorButton,
|
|
6536
6675
|
{
|
|
6537
6676
|
theme,
|
|
@@ -6546,7 +6685,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6546
6685
|
}
|
|
6547
6686
|
},
|
|
6548
6687
|
"Delete all"
|
|
6549
|
-
), /* @__PURE__ */
|
|
6688
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
6550
6689
|
StateInspectorButton,
|
|
6551
6690
|
{
|
|
6552
6691
|
theme,
|
|
@@ -6559,7 +6698,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6559
6698
|
}
|
|
6560
6699
|
},
|
|
6561
6700
|
"Reload"
|
|
6562
|
-
), /* @__PURE__ */
|
|
6701
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
6563
6702
|
StateInspectorButton,
|
|
6564
6703
|
{
|
|
6565
6704
|
theme,
|
|
@@ -6583,14 +6722,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6583
6722
|
"Upload"
|
|
6584
6723
|
))
|
|
6585
6724
|
},
|
|
6586
|
-
/* @__PURE__ */
|
|
6587
|
-
|
|
6725
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, assets.map((asset) => /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { key: asset.id, colorScheme }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6726
|
+
import_react_inspector7.ObjectInspector,
|
|
6588
6727
|
{
|
|
6589
6728
|
name: asset.id,
|
|
6590
6729
|
data: truncateAsset(asset),
|
|
6591
6730
|
theme
|
|
6592
6731
|
}
|
|
6593
|
-
), /* @__PURE__ */
|
|
6732
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
6594
6733
|
StateInspectorButton,
|
|
6595
6734
|
{
|
|
6596
6735
|
theme,
|
|
@@ -6599,14 +6738,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6599
6738
|
"Delete"
|
|
6600
6739
|
))))
|
|
6601
6740
|
),
|
|
6602
|
-
advanced && /* @__PURE__ */
|
|
6741
|
+
advanced && /* @__PURE__ */ import_react15.default.createElement(
|
|
6603
6742
|
StateInspectorDisclosureSection,
|
|
6604
6743
|
{
|
|
6605
|
-
title: /* @__PURE__ */
|
|
6744
|
+
title: /* @__PURE__ */ import_react15.default.createElement(StateInspectorTitleLabel, null, "Resources (", resources.length, ")", /* @__PURE__ */ import_react15.default.createElement(ColoredDot, { type: resourcesInitialized ? "success" : "error" })),
|
|
6606
6745
|
colorScheme,
|
|
6607
6746
|
open: showResources,
|
|
6608
6747
|
setOpen: setShowResources,
|
|
6609
|
-
right: /* @__PURE__ */
|
|
6748
|
+
right: /* @__PURE__ */ import_react15.default.createElement("span", { style: { display: "flex", gap: "10px" } }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6610
6749
|
StateInspectorButton,
|
|
6611
6750
|
{
|
|
6612
6751
|
theme,
|
|
@@ -6621,7 +6760,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6621
6760
|
}
|
|
6622
6761
|
},
|
|
6623
6762
|
"Delete all"
|
|
6624
|
-
), /* @__PURE__ */
|
|
6763
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
6625
6764
|
StateInspectorButton,
|
|
6626
6765
|
{
|
|
6627
6766
|
theme,
|
|
@@ -6634,7 +6773,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6634
6773
|
}
|
|
6635
6774
|
},
|
|
6636
6775
|
"Create Directory"
|
|
6637
|
-
), /* @__PURE__ */
|
|
6776
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
6638
6777
|
StateInspectorButton,
|
|
6639
6778
|
{
|
|
6640
6779
|
theme,
|
|
@@ -6654,21 +6793,21 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6654
6793
|
"Create Asset"
|
|
6655
6794
|
))
|
|
6656
6795
|
},
|
|
6657
|
-
/* @__PURE__ */
|
|
6658
|
-
|
|
6796
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, resources?.map((resource) => /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { key: resource.id, colorScheme }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6797
|
+
import_react_inspector7.ObjectInspector,
|
|
6659
6798
|
{
|
|
6660
6799
|
name: resource.path,
|
|
6661
6800
|
data: resource,
|
|
6662
6801
|
theme
|
|
6663
6802
|
}
|
|
6664
|
-
), /* @__PURE__ */
|
|
6803
|
+
), /* @__PURE__ */ import_react15.default.createElement("div", { style: { display: "flex", gap: "4px" } }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6665
6804
|
StateInspectorButton,
|
|
6666
6805
|
{
|
|
6667
6806
|
theme,
|
|
6668
6807
|
onClick: () => resourceManager.deleteResource({ id: resource.id })
|
|
6669
6808
|
},
|
|
6670
6809
|
"Delete"
|
|
6671
|
-
), /* @__PURE__ */
|
|
6810
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
6672
6811
|
StateInspectorButton,
|
|
6673
6812
|
{
|
|
6674
6813
|
theme,
|
|
@@ -6681,14 +6820,14 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6681
6820
|
"Rename"
|
|
6682
6821
|
)))))
|
|
6683
6822
|
),
|
|
6684
|
-
advanced && /* @__PURE__ */
|
|
6823
|
+
advanced && /* @__PURE__ */ import_react15.default.createElement(
|
|
6685
6824
|
StateInspectorDisclosureSection,
|
|
6686
6825
|
{
|
|
6687
|
-
title: /* @__PURE__ */
|
|
6826
|
+
title: /* @__PURE__ */ import_react15.default.createElement(StateInspectorTitleLabel, null, "Secrets", /* @__PURE__ */ import_react15.default.createElement(ColoredDot, { type: secretsInitialized ? "success" : "error" })),
|
|
6688
6827
|
colorScheme,
|
|
6689
6828
|
open: showSecrets,
|
|
6690
6829
|
setOpen: setShowSecrets,
|
|
6691
|
-
right: /* @__PURE__ */
|
|
6830
|
+
right: /* @__PURE__ */ import_react15.default.createElement(
|
|
6692
6831
|
StateInspectorButton,
|
|
6693
6832
|
{
|
|
6694
6833
|
theme,
|
|
@@ -6703,7 +6842,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6703
6842
|
"Create"
|
|
6704
6843
|
)
|
|
6705
6844
|
},
|
|
6706
|
-
/* @__PURE__ */
|
|
6845
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, secrets.map((secret) => /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { key: secret.id, colorScheme }, /* @__PURE__ */ import_react15.default.createElement(import_react_inspector7.ObjectInspector, { data: secret, theme }), /* @__PURE__ */ import_react15.default.createElement(
|
|
6707
6846
|
StateInspectorButton,
|
|
6708
6847
|
{
|
|
6709
6848
|
theme,
|
|
@@ -6712,15 +6851,15 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6712
6851
|
"Delete"
|
|
6713
6852
|
))))
|
|
6714
6853
|
),
|
|
6715
|
-
advanced && /* @__PURE__ */
|
|
6854
|
+
advanced && /* @__PURE__ */ import_react15.default.createElement(
|
|
6716
6855
|
StateInspectorDisclosureSection,
|
|
6717
6856
|
{
|
|
6718
6857
|
open: showInputs,
|
|
6719
6858
|
setOpen: setShowInputs,
|
|
6720
|
-
title: /* @__PURE__ */
|
|
6859
|
+
title: /* @__PURE__ */ import_react15.default.createElement(StateInspectorTitleLabel, null, "Inputs", /* @__PURE__ */ import_react15.default.createElement(ColoredDot, { type: inputsInitialized ? "success" : "error" })),
|
|
6721
6860
|
colorScheme
|
|
6722
6861
|
},
|
|
6723
|
-
/* @__PURE__ */
|
|
6862
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, inputs?.map((input) => /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { key: input.id, colorScheme }, /* @__PURE__ */ import_react15.default.createElement(import_react_inspector7.ObjectInspector, { data: input, theme }))), !inputs?.length && /* @__PURE__ */ import_react15.default.createElement(
|
|
6724
6863
|
"div",
|
|
6725
6864
|
{
|
|
6726
6865
|
style: {
|
|
@@ -6731,15 +6870,15 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6731
6870
|
gap: "4px"
|
|
6732
6871
|
}
|
|
6733
6872
|
},
|
|
6734
|
-
/* @__PURE__ */
|
|
6873
|
+
/* @__PURE__ */ import_react15.default.createElement("span", null, "No inputs")
|
|
6735
6874
|
))
|
|
6736
6875
|
),
|
|
6737
|
-
advanced && /* @__PURE__ */
|
|
6876
|
+
advanced && /* @__PURE__ */ import_react15.default.createElement(
|
|
6738
6877
|
StateInspectorDisclosureSection,
|
|
6739
6878
|
{
|
|
6740
6879
|
open: showOutputTransforms,
|
|
6741
6880
|
setOpen: setShowOutputTransforms,
|
|
6742
|
-
title: /* @__PURE__ */
|
|
6881
|
+
title: /* @__PURE__ */ import_react15.default.createElement(StateInspectorTitleLabel, null, "Output Transforms", /* @__PURE__ */ import_react15.default.createElement(
|
|
6743
6882
|
ColoredDot,
|
|
6744
6883
|
{
|
|
6745
6884
|
type: outputTransformsInitialized ? "success" : "error"
|
|
@@ -6747,7 +6886,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6747
6886
|
)),
|
|
6748
6887
|
colorScheme
|
|
6749
6888
|
},
|
|
6750
|
-
/* @__PURE__ */
|
|
6889
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, outputTransforms?.map((transform) => /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { key: transform.id, colorScheme }, /* @__PURE__ */ import_react15.default.createElement(import_react_inspector7.ObjectInspector, { data: transform, theme }))), !outputTransforms?.length && /* @__PURE__ */ import_react15.default.createElement(
|
|
6751
6890
|
"div",
|
|
6752
6891
|
{
|
|
6753
6892
|
style: {
|
|
@@ -6758,10 +6897,10 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6758
6897
|
gap: "4px"
|
|
6759
6898
|
}
|
|
6760
6899
|
},
|
|
6761
|
-
/* @__PURE__ */
|
|
6900
|
+
/* @__PURE__ */ import_react15.default.createElement("span", null, "No output transforms")
|
|
6762
6901
|
))
|
|
6763
6902
|
),
|
|
6764
|
-
advanced && /* @__PURE__ */
|
|
6903
|
+
advanced && /* @__PURE__ */ import_react15.default.createElement(
|
|
6765
6904
|
StateInspectorDisclosureSection,
|
|
6766
6905
|
{
|
|
6767
6906
|
title: "Tasks",
|
|
@@ -6769,7 +6908,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6769
6908
|
open: showTasks,
|
|
6770
6909
|
setOpen: setShowTasks
|
|
6771
6910
|
},
|
|
6772
|
-
/* @__PURE__ */
|
|
6911
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, tasks?.map((task) => /* @__PURE__ */ import_react15.default.createElement(
|
|
6773
6912
|
StateInspectorRow,
|
|
6774
6913
|
{
|
|
6775
6914
|
key: task.id,
|
|
@@ -6778,8 +6917,8 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6778
6917
|
backgroundColor: task.status === "done" ? "rgba(0,255,0,0.2)" : task.status === "error" ? "rgba(255,0,0,0.2)" : void 0
|
|
6779
6918
|
}
|
|
6780
6919
|
},
|
|
6781
|
-
/* @__PURE__ */
|
|
6782
|
-
|
|
6920
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6921
|
+
import_react_inspector7.ObjectInspector,
|
|
6783
6922
|
{
|
|
6784
6923
|
name: task.name,
|
|
6785
6924
|
data: task.payload,
|
|
@@ -6788,16 +6927,16 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6788
6927
|
)
|
|
6789
6928
|
)))
|
|
6790
6929
|
),
|
|
6791
|
-
/* @__PURE__ */
|
|
6930
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6792
6931
|
StateInspectorDisclosureSection,
|
|
6793
6932
|
{
|
|
6794
|
-
open:
|
|
6795
|
-
setOpen:
|
|
6796
|
-
title: "
|
|
6933
|
+
open: showShared,
|
|
6934
|
+
setOpen: setShowShared,
|
|
6935
|
+
title: "Shared Connection Data",
|
|
6797
6936
|
colorScheme
|
|
6798
6937
|
},
|
|
6799
|
-
/* @__PURE__ */
|
|
6800
|
-
|
|
6938
|
+
/* @__PURE__ */ import_react15.default.createElement(StateInspectorDisclosureRowInner, null, Object.entries(shared).map(([key, value]) => /* @__PURE__ */ import_react15.default.createElement(StateInspectorRow, { key, colorScheme }, /* @__PURE__ */ import_react15.default.createElement(
|
|
6939
|
+
import_react_inspector7.ObjectInspector,
|
|
6801
6940
|
{
|
|
6802
6941
|
name: key,
|
|
6803
6942
|
data: value,
|
|
@@ -6806,7 +6945,19 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6806
6945
|
}
|
|
6807
6946
|
))))
|
|
6808
6947
|
),
|
|
6809
|
-
|
|
6948
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6949
|
+
ServerScriptLogsSection,
|
|
6950
|
+
{
|
|
6951
|
+
colorScheme,
|
|
6952
|
+
showLogs: showServerLogs,
|
|
6953
|
+
setShowLogs: setShowServerLogs,
|
|
6954
|
+
logs: visibleServerLogs,
|
|
6955
|
+
paused: serverLogsPaused,
|
|
6956
|
+
onTogglePaused: toggleServerLogsPaused,
|
|
6957
|
+
containerRef: serverLogsContainerRef
|
|
6958
|
+
}
|
|
6959
|
+
),
|
|
6960
|
+
advanced && /* @__PURE__ */ import_react15.default.createElement(
|
|
6810
6961
|
ActivityEventsSection,
|
|
6811
6962
|
{
|
|
6812
6963
|
colorScheme,
|
|
@@ -6816,7 +6967,7 @@ var StateInspector = (0, import_react_utils.memoGeneric)(function StateInspector
|
|
|
6816
6967
|
activityEventsManager
|
|
6817
6968
|
}
|
|
6818
6969
|
),
|
|
6819
|
-
/* @__PURE__ */
|
|
6970
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
6820
6971
|
EventsSection,
|
|
6821
6972
|
{
|
|
6822
6973
|
connectionEvents,
|
|
@@ -6862,7 +7013,7 @@ function useStateInspector({
|
|
|
6862
7013
|
colorScheme,
|
|
6863
7014
|
anchor
|
|
6864
7015
|
}) {
|
|
6865
|
-
const [root, setRoot] =
|
|
7016
|
+
const [root, setRoot] = import_react16.default.useState(null);
|
|
6866
7017
|
(0, import_react_utils2.useIsomorphicLayoutEffect)(() => {
|
|
6867
7018
|
if (disabled) return;
|
|
6868
7019
|
const { root: root2, unmount } = createStateInspectorRoot();
|
|
@@ -6872,7 +7023,7 @@ function useStateInspector({
|
|
|
6872
7023
|
(0, import_react_utils2.useIsomorphicLayoutEffect)(() => {
|
|
6873
7024
|
if (!root) return;
|
|
6874
7025
|
root.render(
|
|
6875
|
-
/* @__PURE__ */
|
|
7026
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
6876
7027
|
StateInspector,
|
|
6877
7028
|
{
|
|
6878
7029
|
colorScheme,
|
|
@@ -6887,18 +7038,18 @@ function useStateInspector({
|
|
|
6887
7038
|
|
|
6888
7039
|
// src/hooks.ts
|
|
6889
7040
|
function useManagedState(createInitialState, options) {
|
|
6890
|
-
const [stateManager] = (0,
|
|
7041
|
+
const [stateManager] = (0, import_react17.useState)(
|
|
6891
7042
|
() => new import_state_manager2.StateManager(createInitialState(), options)
|
|
6892
7043
|
);
|
|
6893
|
-
const getSnapshot = (0,
|
|
7044
|
+
const getSnapshot = (0, import_react17.useCallback)(() => {
|
|
6894
7045
|
return stateManager.getState();
|
|
6895
7046
|
}, [stateManager]);
|
|
6896
|
-
const state = (0,
|
|
7047
|
+
const state = (0, import_react17.useSyncExternalStore)(
|
|
6897
7048
|
stateManager.addListener,
|
|
6898
7049
|
getSnapshot,
|
|
6899
7050
|
getSnapshot
|
|
6900
7051
|
);
|
|
6901
|
-
const setState = (0,
|
|
7052
|
+
const setState = (0, import_react17.useCallback)(
|
|
6902
7053
|
(...args) => {
|
|
6903
7054
|
const [metadata, action] = args.length === 1 ? [void 0, args[0]] : args;
|
|
6904
7055
|
if (metadata === void 0) {
|
|
@@ -6934,7 +7085,7 @@ function useManagedState(createInitialState, options) {
|
|
|
6934
7085
|
return [state, setState, stateManager];
|
|
6935
7086
|
}
|
|
6936
7087
|
function useManagedHistory(stateManager) {
|
|
6937
|
-
return (0,
|
|
7088
|
+
return (0, import_react17.useSyncExternalStore)(
|
|
6938
7089
|
stateManager.historyEmittor.addListener,
|
|
6939
7090
|
stateManager.getHistorySnapshot,
|
|
6940
7091
|
stateManager.getHistorySnapshot
|
|
@@ -6945,13 +7096,13 @@ function useBindNoyaManager(noyaManager, options) {
|
|
|
6945
7096
|
noyaManager.multiplayerStateManager.optimisticState$
|
|
6946
7097
|
);
|
|
6947
7098
|
const assets = useObservable(noyaManager.assetManager.assets$);
|
|
6948
|
-
const extras = (0,
|
|
7099
|
+
const extras = (0, import_react17.useMemo)(() => {
|
|
6949
7100
|
return {
|
|
6950
7101
|
noyaManager,
|
|
6951
7102
|
taskManager: noyaManager.taskManager,
|
|
6952
7103
|
connectionEventManager: noyaManager.connectionEventManager,
|
|
6953
7104
|
userManager: noyaManager.userManager,
|
|
6954
|
-
|
|
7105
|
+
sharedConnectionDataManager: noyaManager.sharedConnectionDataManager,
|
|
6955
7106
|
multiplayerStateManager: noyaManager.multiplayerStateManager,
|
|
6956
7107
|
assetManager: noyaManager.assetManager,
|
|
6957
7108
|
aiManager: noyaManager.aiManager,
|
|
@@ -6964,8 +7115,8 @@ function useBindNoyaManager(noyaManager, options) {
|
|
|
6964
7115
|
assets
|
|
6965
7116
|
};
|
|
6966
7117
|
}, [noyaManager, assets]);
|
|
6967
|
-
const syncRef = (0,
|
|
6968
|
-
(0,
|
|
7118
|
+
const syncRef = (0, import_react17.useRef)(options?.sync);
|
|
7119
|
+
(0, import_react17.useEffect)(() => {
|
|
6969
7120
|
if (syncRef.current) {
|
|
6970
7121
|
return syncRef.current({ noyaManager });
|
|
6971
7122
|
}
|
|
@@ -6985,20 +7136,23 @@ function useMultiplayerState(initialState, options) {
|
|
|
6985
7136
|
inspector,
|
|
6986
7137
|
...rest
|
|
6987
7138
|
} = options ?? {};
|
|
6988
|
-
const [noyaManager] = (0,
|
|
7139
|
+
const [noyaManager] = (0, import_react17.useState)(
|
|
6989
7140
|
() => new import_state_manager2.NoyaManager(initialState, rest)
|
|
6990
7141
|
);
|
|
6991
|
-
return useBindNoyaManager(noyaManager, {
|
|
7142
|
+
return useBindNoyaManager(noyaManager, {
|
|
7143
|
+
sync,
|
|
7144
|
+
inspector
|
|
7145
|
+
});
|
|
6992
7146
|
}
|
|
6993
7147
|
function useErrorOverlay(noyaManager) {
|
|
6994
7148
|
const unrecoverableError = useObservable(noyaManager.unrecoverableError);
|
|
6995
|
-
(0,
|
|
7149
|
+
(0, import_react17.useEffect)(() => {
|
|
6996
7150
|
if (!unrecoverableError) return;
|
|
6997
7151
|
const el = document.createElement("div");
|
|
6998
7152
|
el.id = "noya-multiplayer-react-error-overlay";
|
|
6999
7153
|
document.body.appendChild(el);
|
|
7000
7154
|
const root = (0, import_client2.createRoot)(el);
|
|
7001
|
-
root.render((0,
|
|
7155
|
+
root.render((0, import_react17.createElement)(ErrorOverlay, { error: unrecoverableError }));
|
|
7002
7156
|
return () => {
|
|
7003
7157
|
root.unmount();
|
|
7004
7158
|
el.remove();
|
|
@@ -7013,7 +7167,8 @@ function createDefaultAppData(initialState) {
|
|
|
7013
7167
|
viewType: "editable",
|
|
7014
7168
|
initialState,
|
|
7015
7169
|
inspector: false,
|
|
7016
|
-
isDemo: false
|
|
7170
|
+
isDemo: false,
|
|
7171
|
+
access: void 0
|
|
7017
7172
|
};
|
|
7018
7173
|
}
|
|
7019
7174
|
function enforceSchema(initialState, schema) {
|
|
@@ -7045,11 +7200,22 @@ function getAppData(initialState, schema, options) {
|
|
|
7045
7200
|
}
|
|
7046
7201
|
appData.initialState = enforceSchema(appData.initialState, schema);
|
|
7047
7202
|
appData.isDemo = appData.isDemo ?? false;
|
|
7203
|
+
const fallbackAccess = appData.viewType === "editable" ? "write" : "read";
|
|
7204
|
+
appData.access = appData.access ?? fallbackAccess;
|
|
7048
7205
|
return appData;
|
|
7049
7206
|
}
|
|
7050
7207
|
function getSyncAdapter(params) {
|
|
7051
|
-
const {
|
|
7052
|
-
|
|
7208
|
+
const {
|
|
7209
|
+
multiplayerUrl,
|
|
7210
|
+
offlineStorageKey,
|
|
7211
|
+
debug,
|
|
7212
|
+
policyAuthContext,
|
|
7213
|
+
serverScripts
|
|
7214
|
+
} = params ?? {};
|
|
7215
|
+
return (0, import_state_manager3.isEmbeddedApp)() ? (0, import_state_manager3.parentFrameSync)({ debug, policyAuthContext }) : multiplayerUrl ? (0, import_state_manager3.webSocketSync)({ url: multiplayerUrl, debug }) : offlineStorageKey ? (0, import_state_manager3.localStorageSync)({
|
|
7216
|
+
key: offlineStorageKey,
|
|
7217
|
+
...serverScripts ? { serverScripts } : {}
|
|
7218
|
+
}) : (0, import_state_manager3.stubSync)();
|
|
7053
7219
|
}
|
|
7054
7220
|
function useNoyaStateInternal(...args) {
|
|
7055
7221
|
const [initialState, options] = typeof args[0] === "object" && args[0] !== null && "schema" in args[0] && import_state_manager3.TypeGuard.IsSchema(args[0].schema) ? [null, args[0]] : [args[0], args[1]];
|
|
@@ -7061,34 +7227,59 @@ function useNoyaStateInternal(...args) {
|
|
|
7061
7227
|
theme,
|
|
7062
7228
|
viewType,
|
|
7063
7229
|
userId,
|
|
7064
|
-
isDemo
|
|
7230
|
+
isDemo,
|
|
7231
|
+
access
|
|
7065
7232
|
}
|
|
7066
|
-
] = (0,
|
|
7233
|
+
] = (0, import_react18.useState)(() => {
|
|
7067
7234
|
return getAppData(initialState, options?.schema, {
|
|
7068
7235
|
overrideExistingState: options?.overrideExistingState
|
|
7069
7236
|
});
|
|
7070
7237
|
});
|
|
7071
|
-
const
|
|
7238
|
+
const basePolicyAuthContext = (0, import_react18.useMemo)(() => {
|
|
7239
|
+
if (!access && userId === void 0) return void 0;
|
|
7240
|
+
const context = {};
|
|
7241
|
+
if (access) {
|
|
7242
|
+
context.access = access;
|
|
7243
|
+
}
|
|
7244
|
+
if (userId !== void 0) {
|
|
7245
|
+
context.id = userId ?? null;
|
|
7246
|
+
}
|
|
7247
|
+
return context;
|
|
7248
|
+
}, [access, userId]);
|
|
7249
|
+
const sync = (0, import_react18.useMemo)(() => {
|
|
7072
7250
|
return getSyncAdapter({
|
|
7073
7251
|
multiplayerUrl,
|
|
7074
7252
|
offlineStorageKey: options?.offlineStorageKey,
|
|
7075
|
-
debug: options?.debug
|
|
7253
|
+
debug: options?.debug,
|
|
7254
|
+
policyAuthContext: basePolicyAuthContext
|
|
7076
7255
|
});
|
|
7077
|
-
}, [
|
|
7078
|
-
|
|
7256
|
+
}, [
|
|
7257
|
+
multiplayerUrl,
|
|
7258
|
+
options?.offlineStorageKey,
|
|
7259
|
+
options?.debug,
|
|
7260
|
+
basePolicyAuthContext
|
|
7261
|
+
]);
|
|
7262
|
+
const [noyaManager] = (0, import_react18.useState)(
|
|
7079
7263
|
() => new import_state_manager3.NoyaManager(noyaAppInitialState, options)
|
|
7080
7264
|
);
|
|
7081
|
-
(0,
|
|
7265
|
+
(0, import_react18.useEffect)(() => {
|
|
7082
7266
|
if (!userId) return;
|
|
7083
|
-
noyaManager.
|
|
7267
|
+
noyaManager.sharedConnectionDataManager.setCurrentConnectionId(userId);
|
|
7268
|
+
noyaManager.userManager.setCurrentConnectionId(userId);
|
|
7084
7269
|
noyaManager.userManager.setCurrentUserId(userId);
|
|
7085
7270
|
}, [noyaManager, userId]);
|
|
7271
|
+
(0, import_react18.useEffect)(() => {
|
|
7272
|
+
if (!basePolicyAuthContext) return;
|
|
7273
|
+
noyaManager.multiplayerStateManager.setPolicyAuthContext(
|
|
7274
|
+
basePolicyAuthContext
|
|
7275
|
+
);
|
|
7276
|
+
}, [noyaManager, basePolicyAuthContext]);
|
|
7086
7277
|
const result = useBindNoyaManager(noyaManager, {
|
|
7087
7278
|
inspector: options?.inspector ?? inspector,
|
|
7088
7279
|
sync: options?.sync ?? sync
|
|
7089
7280
|
});
|
|
7090
7281
|
const [, , extras] = result;
|
|
7091
|
-
const mergedExtras = (0,
|
|
7282
|
+
const mergedExtras = (0, import_react18.useMemo)(() => {
|
|
7092
7283
|
return { ...extras, theme, viewType, isDemo };
|
|
7093
7284
|
}, [extras, theme, viewType, isDemo]);
|
|
7094
7285
|
return [result[0], result[1], mergedExtras];
|
|
@@ -7096,7 +7287,7 @@ function useNoyaStateInternal(...args) {
|
|
|
7096
7287
|
|
|
7097
7288
|
// src/singleton.tsx
|
|
7098
7289
|
var import_state_manager4 = require("@noya-app/state-manager");
|
|
7099
|
-
var
|
|
7290
|
+
var import_react19 = __toESM(require("react"));
|
|
7100
7291
|
var noyaManagerSingleton;
|
|
7101
7292
|
var noyaSingletonBindings;
|
|
7102
7293
|
function initializeNoyaSingleton(options) {
|
|
@@ -7113,6 +7304,7 @@ function initializeNoyaSingleton(options) {
|
|
|
7113
7304
|
viewType,
|
|
7114
7305
|
offlineStorageKey,
|
|
7115
7306
|
multiplayerUrl,
|
|
7307
|
+
serverScripts,
|
|
7116
7308
|
...managerOptions
|
|
7117
7309
|
} = options ?? {};
|
|
7118
7310
|
const appData = getAppData(
|
|
@@ -7120,20 +7312,27 @@ function initializeNoyaSingleton(options) {
|
|
|
7120
7312
|
managerOptions?.schema,
|
|
7121
7313
|
{ overrideExistingState: managerOptions?.overrideExistingState }
|
|
7122
7314
|
);
|
|
7315
|
+
const policyAuthContext = appData.access || appData.userId !== void 0 ? {
|
|
7316
|
+
...appData.access ? { access: appData.access } : {},
|
|
7317
|
+
...appData.userId !== void 0 ? { id: appData.userId ?? null } : {}
|
|
7318
|
+
} : void 0;
|
|
7123
7319
|
noyaManagerSingleton = new import_state_manager4.NoyaManager(
|
|
7124
7320
|
appData.initialState,
|
|
7125
7321
|
managerOptions
|
|
7126
7322
|
);
|
|
7127
7323
|
if (appData.userId) {
|
|
7128
|
-
noyaManagerSingleton.
|
|
7324
|
+
noyaManagerSingleton.sharedConnectionDataManager.setCurrentConnectionId(
|
|
7129
7325
|
appData.userId
|
|
7130
7326
|
);
|
|
7327
|
+
noyaManagerSingleton.userManager.setCurrentConnectionId(appData.userId);
|
|
7131
7328
|
noyaManagerSingleton.userManager.setCurrentUserId(appData.userId);
|
|
7132
7329
|
}
|
|
7133
7330
|
const resolvedSync = sync ?? getSyncAdapter({
|
|
7134
7331
|
multiplayerUrl: multiplayerUrl ?? appData.multiplayerUrl,
|
|
7135
7332
|
offlineStorageKey,
|
|
7136
|
-
debug: managerOptions?.debug
|
|
7333
|
+
debug: managerOptions?.debug,
|
|
7334
|
+
serverScripts,
|
|
7335
|
+
policyAuthContext
|
|
7137
7336
|
});
|
|
7138
7337
|
try {
|
|
7139
7338
|
resolvedSync({ noyaManager: noyaManagerSingleton });
|
|
@@ -7146,7 +7345,7 @@ function initializeNoyaSingleton(options) {
|
|
|
7146
7345
|
if (resolvedInspector) {
|
|
7147
7346
|
const { root } = createStateInspectorRoot();
|
|
7148
7347
|
root.render(
|
|
7149
|
-
/* @__PURE__ */
|
|
7348
|
+
/* @__PURE__ */ import_react19.default.createElement(
|
|
7150
7349
|
StateInspector,
|
|
7151
7350
|
{
|
|
7152
7351
|
noyaManager: noyaManagerSingleton,
|
|
@@ -7214,44 +7413,42 @@ function resourceToCreateParameters(resource) {
|
|
|
7214
7413
|
throw new Error(`Unknown resource type: ${resource.type}`);
|
|
7215
7414
|
}
|
|
7216
7415
|
}
|
|
7217
|
-
function
|
|
7416
|
+
function buildResourcePatchPayload({
|
|
7218
7417
|
addedResources,
|
|
7219
7418
|
modifiedResources,
|
|
7220
|
-
|
|
7221
|
-
resourceMap
|
|
7419
|
+
removedResources
|
|
7222
7420
|
}) {
|
|
7223
|
-
const
|
|
7224
|
-
const
|
|
7225
|
-
|
|
7226
|
-
);
|
|
7227
|
-
const payload = [
|
|
7228
|
-
...addedResources.map(toCreateParameters)
|
|
7229
|
-
];
|
|
7230
|
-
const handledModifiedResourceIds = [];
|
|
7231
|
-
const assetReplacements = modifiedResources.filter(
|
|
7232
|
-
(resource) => resource.assetId !== void 0 || resource.asset !== void 0
|
|
7233
|
-
).map((resource) => {
|
|
7234
|
-
const previousResource = resourcesById.get(resource.id);
|
|
7235
|
-
const path2 = resource.path ?? previousResource?.path;
|
|
7236
|
-
if (!path2) return void 0;
|
|
7237
|
-
const updated = newResourceMap[path2];
|
|
7238
|
-
if (!updated || updated.type !== "asset") return void 0;
|
|
7239
|
-
handledModifiedResourceIds.push(resource.id);
|
|
7240
|
-
return toCreateParameters(updated);
|
|
7241
|
-
}).filter(
|
|
7242
|
-
(resource) => resource !== void 0
|
|
7421
|
+
const createEntries = addedResources.map(resourceToCreateParameters);
|
|
7422
|
+
const dedupedCreateEntries = Array.from(
|
|
7423
|
+
new Map(createEntries.map((entry) => [entry.path, entry])).values()
|
|
7243
7424
|
);
|
|
7244
|
-
const
|
|
7245
|
-
|
|
7425
|
+
const updateEntries = modifiedResources.map((resource) => {
|
|
7426
|
+
const update = {
|
|
7427
|
+
id: resource.id,
|
|
7428
|
+
...resource.path !== void 0 ? { path: resource.path } : {},
|
|
7429
|
+
...resource.assetId !== void 0 ? { assetId: resource.assetId } : {},
|
|
7430
|
+
...resource.asset ? { asset: resource.asset } : {}
|
|
7431
|
+
};
|
|
7432
|
+
return update;
|
|
7433
|
+
}) ?? [];
|
|
7434
|
+
const deleteEntries = removedResources.map(
|
|
7435
|
+
(resource) => ({ id: resource.id })
|
|
7246
7436
|
);
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
}
|
|
7437
|
+
const patch = {};
|
|
7438
|
+
if (dedupedCreateEntries.length) {
|
|
7439
|
+
patch.create = dedupedCreateEntries;
|
|
7440
|
+
}
|
|
7441
|
+
if (updateEntries.length) {
|
|
7442
|
+
patch.update = updateEntries;
|
|
7443
|
+
}
|
|
7444
|
+
if (deleteEntries.length) {
|
|
7445
|
+
patch.delete = deleteEntries;
|
|
7446
|
+
}
|
|
7447
|
+
return patch;
|
|
7251
7448
|
}
|
|
7252
|
-
var AnyNoyaStateContext = (0,
|
|
7449
|
+
var AnyNoyaStateContext = (0, import_react20.createContext)(void 0);
|
|
7253
7450
|
function useAnyNoyaStateContext() {
|
|
7254
|
-
const value = (0,
|
|
7451
|
+
const value = (0, import_react20.useContext)(AnyNoyaStateContext);
|
|
7255
7452
|
if (!value) {
|
|
7256
7453
|
const bindings = getNoyaSingletonBindings();
|
|
7257
7454
|
if (bindings) {
|
|
@@ -7285,7 +7482,7 @@ function useAssets() {
|
|
|
7285
7482
|
}
|
|
7286
7483
|
function useAsset(id) {
|
|
7287
7484
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7288
|
-
const observable = (0,
|
|
7485
|
+
const observable = (0, import_react20.useMemo)(
|
|
7289
7486
|
() => noyaManager.assetManager.assets$.map(
|
|
7290
7487
|
(assets) => assets.find((a) => a.stableId === id) ?? assets.find((a) => a.id === id)
|
|
7291
7488
|
),
|
|
@@ -7296,7 +7493,7 @@ function useAsset(id) {
|
|
|
7296
7493
|
function useAssetManager() {
|
|
7297
7494
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7298
7495
|
const isInitialized = useObservable(noyaManager.assetManager.isInitialized$);
|
|
7299
|
-
return (0,
|
|
7496
|
+
return (0, import_react20.useMemo)(
|
|
7300
7497
|
() => ({
|
|
7301
7498
|
create: noyaManager.assetManager.create,
|
|
7302
7499
|
delete: noyaManager.assetManager.delete,
|
|
@@ -7321,7 +7518,7 @@ function useSecret(name) {
|
|
|
7321
7518
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7322
7519
|
return useObservable(
|
|
7323
7520
|
noyaManager.secretManager.secrets$,
|
|
7324
|
-
(0,
|
|
7521
|
+
(0, import_react20.useCallback)((secrets) => secrets.find((s) => s.name === name), [name])
|
|
7325
7522
|
);
|
|
7326
7523
|
}
|
|
7327
7524
|
function useInputs() {
|
|
@@ -7339,7 +7536,7 @@ function useIOManager() {
|
|
|
7339
7536
|
function usePublish(callback) {
|
|
7340
7537
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7341
7538
|
const stableCallback = (0, import_react_utils3.useStableCallback)(callback);
|
|
7342
|
-
(0,
|
|
7539
|
+
(0, import_react20.useEffect)(() => {
|
|
7343
7540
|
noyaManager.publishingManager.setPublishingEnabled(true);
|
|
7344
7541
|
noyaManager.publishingManager.getFilesToPublish = stableCallback;
|
|
7345
7542
|
return () => {
|
|
@@ -7350,7 +7547,7 @@ function usePublish(callback) {
|
|
|
7350
7547
|
}
|
|
7351
7548
|
function useIsInitialized() {
|
|
7352
7549
|
const { noyaManager, viewType } = useAnyNoyaStateContext();
|
|
7353
|
-
const isInitializedObservable = (0,
|
|
7550
|
+
const isInitializedObservable = (0, import_react20.useMemo)(
|
|
7354
7551
|
() => import_observable.Observable.combine(
|
|
7355
7552
|
[
|
|
7356
7553
|
...viewType === "preview" ? [] : [noyaManager.multiplayerStateManager.isInitialized$],
|
|
@@ -7379,10 +7576,10 @@ function useConnectedUser(userId) {
|
|
|
7379
7576
|
const userManager = useUserManager();
|
|
7380
7577
|
return useObservable(
|
|
7381
7578
|
userManager?.connectedUsers$,
|
|
7382
|
-
(0,
|
|
7579
|
+
(0, import_react20.useCallback)(
|
|
7383
7580
|
(users) => {
|
|
7384
7581
|
return users.find((user) => {
|
|
7385
|
-
const prefix = user.
|
|
7582
|
+
const prefix = user.connectionId.slice(0, 8);
|
|
7386
7583
|
return userId?.includes(prefix);
|
|
7387
7584
|
});
|
|
7388
7585
|
},
|
|
@@ -7390,14 +7587,34 @@ function useConnectedUser(userId) {
|
|
|
7390
7587
|
)
|
|
7391
7588
|
);
|
|
7392
7589
|
}
|
|
7393
|
-
function
|
|
7590
|
+
function useAnySharedConnectionData() {
|
|
7591
|
+
const { noyaManager } = useAnyNoyaStateContext();
|
|
7592
|
+
return noyaManager.sharedConnectionDataManager;
|
|
7593
|
+
}
|
|
7594
|
+
function useEnqueueInput() {
|
|
7394
7595
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7395
|
-
return noyaManager.
|
|
7596
|
+
return noyaManager.enqueueInput;
|
|
7597
|
+
}
|
|
7598
|
+
function useNoyaUser() {
|
|
7599
|
+
const userManager = useUserManager();
|
|
7600
|
+
return useObservable(userManager?.currentUser$);
|
|
7601
|
+
}
|
|
7602
|
+
function useNoyaId() {
|
|
7603
|
+
const userManager = useUserManager();
|
|
7604
|
+
return useObservable(userManager?.currentId$);
|
|
7396
7605
|
}
|
|
7397
|
-
function
|
|
7606
|
+
function useNoyaUserId() {
|
|
7398
7607
|
const userManager = useUserManager();
|
|
7399
7608
|
return useObservable(userManager?.currentUserId$);
|
|
7400
7609
|
}
|
|
7610
|
+
function useNoyaConnectionId() {
|
|
7611
|
+
const userManager = useUserManager();
|
|
7612
|
+
return useObservable(userManager?.currentConnectionId$);
|
|
7613
|
+
}
|
|
7614
|
+
function useNoyaClientId() {
|
|
7615
|
+
const userManager = useUserManager();
|
|
7616
|
+
return useObservable(userManager?.currentClientId$);
|
|
7617
|
+
}
|
|
7401
7618
|
function useIsProcessing() {
|
|
7402
7619
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7403
7620
|
return useObservable(noyaManager.isProcessing$);
|
|
@@ -7419,6 +7636,21 @@ function useResourceManager() {
|
|
|
7419
7636
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7420
7637
|
return noyaManager.resourceManager;
|
|
7421
7638
|
}
|
|
7639
|
+
function useNoyaTranscriptionManager() {
|
|
7640
|
+
const { noyaManager } = useAnyNoyaStateContext();
|
|
7641
|
+
return noyaManager.transcriptionManager;
|
|
7642
|
+
}
|
|
7643
|
+
function useNoyaAssetTranscription(assetId, options) {
|
|
7644
|
+
const transcriptionManager = useNoyaTranscriptionManager();
|
|
7645
|
+
const observable = (0, import_react20.useMemo)(() => {
|
|
7646
|
+
if (!assetId) return void 0;
|
|
7647
|
+
return transcriptionManager.getAssetTranscription$(assetId, {
|
|
7648
|
+
endpoint: options?.endpoint,
|
|
7649
|
+
apiKey: options?.apiKey
|
|
7650
|
+
});
|
|
7651
|
+
}, [transcriptionManager, assetId, options?.endpoint, options?.apiKey]);
|
|
7652
|
+
return useObservable(observable);
|
|
7653
|
+
}
|
|
7422
7654
|
function resourceToMediaItem(resource) {
|
|
7423
7655
|
switch (resource.type) {
|
|
7424
7656
|
case "asset":
|
|
@@ -7436,34 +7668,25 @@ function useResources({
|
|
|
7436
7668
|
const assetManager = useAssetManager();
|
|
7437
7669
|
const resourceMap = useObservable(
|
|
7438
7670
|
resourceManager.optimisticResources$,
|
|
7439
|
-
(0,
|
|
7671
|
+
(0, import_react20.useCallback)((resources) => {
|
|
7440
7672
|
return Object.fromEntries(
|
|
7441
7673
|
resources.map((resource) => [resource.path, resource])
|
|
7442
7674
|
);
|
|
7443
7675
|
}, [])
|
|
7444
7676
|
);
|
|
7445
|
-
const setResourceMap = (0,
|
|
7677
|
+
const setResourceMap = (0, import_react20.useCallback)(
|
|
7446
7678
|
async (action) => {
|
|
7447
7679
|
const newResourceMap = action instanceof Function ? action(resourceMap) : action;
|
|
7448
7680
|
const { addedResources, removedResources, modifiedResources } = diffResourceMaps(resourceMap, newResourceMap, "id");
|
|
7449
|
-
const
|
|
7681
|
+
const patchPayload = buildResourcePatchPayload({
|
|
7450
7682
|
addedResources,
|
|
7451
7683
|
modifiedResources,
|
|
7452
|
-
|
|
7453
|
-
resourceMap
|
|
7684
|
+
removedResources
|
|
7454
7685
|
});
|
|
7455
|
-
|
|
7456
|
-
|
|
7686
|
+
const hasPatchOperations = (patchPayload.create?.length ?? 0) > 0 || (patchPayload.update?.length ?? 0) > 0 || (patchPayload.delete?.length ?? 0) > 0;
|
|
7687
|
+
if (hasPatchOperations) {
|
|
7688
|
+
await resourceManager.patchResources(patchPayload);
|
|
7457
7689
|
}
|
|
7458
|
-
const consumedModifiedResourceIdsSet = new Set(
|
|
7459
|
-
consumedModifiedResourceIds
|
|
7460
|
-
);
|
|
7461
|
-
const remainingModifiedResources = modifiedResources.filter(
|
|
7462
|
-
(resource) => !consumedModifiedResourceIdsSet.has(resource.id)
|
|
7463
|
-
);
|
|
7464
|
-
await resourceManager.deleteResource(
|
|
7465
|
-
removedResources.map((resource) => ({ id: resource.id }))
|
|
7466
|
-
);
|
|
7467
7690
|
if (shouldDeleteAssets) {
|
|
7468
7691
|
for (const resource of removedResources) {
|
|
7469
7692
|
if (resource.type === "asset") {
|
|
@@ -7471,16 +7694,6 @@ function useResources({
|
|
|
7471
7694
|
}
|
|
7472
7695
|
}
|
|
7473
7696
|
}
|
|
7474
|
-
await Promise.all(
|
|
7475
|
-
remainingModifiedResources.map(
|
|
7476
|
-
({ id, path: path2, assetId, asset }) => resourceManager.updateResource({
|
|
7477
|
-
id,
|
|
7478
|
-
path: path2,
|
|
7479
|
-
assetId,
|
|
7480
|
-
...assetId ? {} : asset ? { asset } : {}
|
|
7481
|
-
})
|
|
7482
|
-
)
|
|
7483
|
-
);
|
|
7484
7697
|
},
|
|
7485
7698
|
[resourceMap, resourceManager, shouldDeleteAssets, assetManager]
|
|
7486
7699
|
);
|
|
@@ -7495,9 +7708,9 @@ function useActivityEvents(streamFilter) {
|
|
|
7495
7708
|
);
|
|
7496
7709
|
}
|
|
7497
7710
|
function useActivityEventsForManager(streamFilter, activityEventsManager) {
|
|
7498
|
-
const [streamId, setStreamId] = (0,
|
|
7711
|
+
const [streamId, setStreamId] = (0, import_react20.useState)(void 0);
|
|
7499
7712
|
const stableStreamFilter = (0, import_react_utils3.useJsonMemo)(streamFilter);
|
|
7500
|
-
(0,
|
|
7713
|
+
(0, import_react20.useEffect)(() => {
|
|
7501
7714
|
if (!stableStreamFilter) return;
|
|
7502
7715
|
const streamId2 = activityEventsManager.subscribe(stableStreamFilter);
|
|
7503
7716
|
setStreamId(streamId2);
|
|
@@ -7528,7 +7741,7 @@ function createNoyaContext({
|
|
|
7528
7741
|
children,
|
|
7529
7742
|
contextValue
|
|
7530
7743
|
}) {
|
|
7531
|
-
return /* @__PURE__ */
|
|
7744
|
+
return /* @__PURE__ */ import_react20.default.createElement(AnyNoyaStateContext.Provider, { value: contextValue }, children);
|
|
7532
7745
|
}
|
|
7533
7746
|
function NoyaStateProvider({
|
|
7534
7747
|
children,
|
|
@@ -7543,7 +7756,7 @@ function createNoyaContext({
|
|
|
7543
7756
|
safeEval,
|
|
7544
7757
|
...options
|
|
7545
7758
|
});
|
|
7546
|
-
const contextValue = (0,
|
|
7759
|
+
const contextValue = (0, import_react20.useMemo)(
|
|
7547
7760
|
() => ({
|
|
7548
7761
|
noyaManager,
|
|
7549
7762
|
theme,
|
|
@@ -7551,12 +7764,12 @@ function createNoyaContext({
|
|
|
7551
7764
|
}),
|
|
7552
7765
|
[noyaManager, theme, viewType]
|
|
7553
7766
|
);
|
|
7554
|
-
return /* @__PURE__ */
|
|
7767
|
+
return /* @__PURE__ */ import_react20.default.createElement(NoyaContextProvider, { contextValue }, options.fallback !== void 0 ? /* @__PURE__ */ import_react20.default.createElement(FallbackUntilInitialized, { fallback: options.fallback }, children) : children);
|
|
7555
7768
|
}
|
|
7556
7769
|
function useValue(path2, options) {
|
|
7557
7770
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7558
7771
|
let actualPath = typeof path2 === "function" || !path2 ? "" : path2;
|
|
7559
|
-
const mappedObservable = (0,
|
|
7772
|
+
const mappedObservable = (0, import_react20.useMemo)(() => {
|
|
7560
7773
|
if (typeof path2 === "function") {
|
|
7561
7774
|
return noyaManager.multiplayerStateManager.optimisticState$.map(path2, {
|
|
7562
7775
|
isEqual: options?.isEqual
|
|
@@ -7569,7 +7782,7 @@ function createNoyaContext({
|
|
|
7569
7782
|
}
|
|
7570
7783
|
function useSetValue(path2) {
|
|
7571
7784
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7572
|
-
const setValue = (0,
|
|
7785
|
+
const setValue = (0, import_react20.useCallback)(
|
|
7573
7786
|
(...args) => {
|
|
7574
7787
|
const [metadata, value] = args.length === 2 ? args : [{}, args[0]];
|
|
7575
7788
|
noyaManager.multiplayerStateManager.setStateAtPath(
|
|
@@ -7592,9 +7805,9 @@ function createNoyaContext({
|
|
|
7592
7805
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7593
7806
|
return noyaManager.multiplayerStateManager;
|
|
7594
7807
|
}
|
|
7595
|
-
function
|
|
7808
|
+
function useSharedConnectionDataManager() {
|
|
7596
7809
|
const { noyaManager } = useAnyNoyaStateContext();
|
|
7597
|
-
return noyaManager.
|
|
7810
|
+
return noyaManager.sharedConnectionDataManager;
|
|
7598
7811
|
}
|
|
7599
7812
|
function useNoyaManager() {
|
|
7600
7813
|
return useAnyNoyaStateContext().noyaManager;
|
|
@@ -7605,7 +7818,7 @@ function createNoyaContext({
|
|
|
7605
7818
|
}
|
|
7606
7819
|
function useSetLeftMenuItems(leftMenuItems) {
|
|
7607
7820
|
const { menuManager } = useNoyaManager();
|
|
7608
|
-
(0,
|
|
7821
|
+
(0, import_react20.useEffect)(() => {
|
|
7609
7822
|
if (leftMenuItems) {
|
|
7610
7823
|
menuManager.setLeftMenuItems(leftMenuItems);
|
|
7611
7824
|
}
|
|
@@ -7617,7 +7830,7 @@ function createNoyaContext({
|
|
|
7617
7830
|
}
|
|
7618
7831
|
function useSetRightMenuItems(rightMenuItems) {
|
|
7619
7832
|
const { menuManager } = useNoyaManager();
|
|
7620
|
-
(0,
|
|
7833
|
+
(0, import_react20.useEffect)(() => {
|
|
7621
7834
|
if (rightMenuItems) {
|
|
7622
7835
|
menuManager.setRightMenuItems(rightMenuItems);
|
|
7623
7836
|
}
|
|
@@ -7625,19 +7838,19 @@ function createNoyaContext({
|
|
|
7625
7838
|
}
|
|
7626
7839
|
function useHandleMenuItem(callback) {
|
|
7627
7840
|
const { menuManager } = useNoyaManager();
|
|
7628
|
-
(0,
|
|
7841
|
+
(0, import_react20.useEffect)(() => {
|
|
7629
7842
|
return menuManager.addListener(callback);
|
|
7630
7843
|
}, [menuManager, callback]);
|
|
7631
7844
|
}
|
|
7632
7845
|
function useOnSelectMenuItemCallback() {
|
|
7633
7846
|
const { menuManager } = useNoyaManager();
|
|
7634
|
-
return (0,
|
|
7847
|
+
return (0, import_react20.useCallback)((type) => menuManager.emit(type), [menuManager]);
|
|
7635
7848
|
}
|
|
7636
7849
|
function useMenu(options) {
|
|
7637
7850
|
const { leftMenuItems, rightMenuItems, onSelectMenuItem } = options;
|
|
7638
7851
|
useSetLeftMenuItems(leftMenuItems);
|
|
7639
7852
|
useSetRightMenuItems(rightMenuItems);
|
|
7640
|
-
const noop = (0,
|
|
7853
|
+
const noop = (0, import_react20.useCallback)(() => {
|
|
7641
7854
|
}, []);
|
|
7642
7855
|
useHandleMenuItem(onSelectMenuItem ?? noop);
|
|
7643
7856
|
}
|
|
@@ -7649,7 +7862,7 @@ function createNoyaContext({
|
|
|
7649
7862
|
useSetValue,
|
|
7650
7863
|
useValueState,
|
|
7651
7864
|
useStateManager,
|
|
7652
|
-
|
|
7865
|
+
useSharedConnectionDataManager,
|
|
7653
7866
|
useLeftMenuItems,
|
|
7654
7867
|
useSetLeftMenuItems,
|
|
7655
7868
|
useRightMenuItems,
|
|
@@ -7664,7 +7877,7 @@ function createNoyaContext({
|
|
|
7664
7877
|
// src/ai.ts
|
|
7665
7878
|
function useRegisterAITool(tool) {
|
|
7666
7879
|
const aiManager = useAIManager();
|
|
7667
|
-
(0,
|
|
7880
|
+
(0, import_react21.useEffect)(() => {
|
|
7668
7881
|
return aiManager.registerTool(tool);
|
|
7669
7882
|
}, [aiManager, tool]);
|
|
7670
7883
|
}
|
|
@@ -7676,28 +7889,28 @@ function useCallableAITools() {
|
|
|
7676
7889
|
// src/components/UserPointersOverlay.tsx
|
|
7677
7890
|
var import_observable2 = require("@noya-app/observable");
|
|
7678
7891
|
var import_react_utils4 = require("@noya-app/react-utils");
|
|
7679
|
-
var
|
|
7892
|
+
var import_react22 = __toESM(require("react"));
|
|
7680
7893
|
function shouldShow(hideAfter, updatedAt) {
|
|
7681
7894
|
return !!updatedAt && Date.now() - updatedAt < hideAfter;
|
|
7682
7895
|
}
|
|
7683
7896
|
var UserPointerInternal = (0, import_react_utils4.memoGeneric)(function UserPointerInternal2({
|
|
7684
7897
|
user,
|
|
7685
|
-
|
|
7898
|
+
sharedConnectionDataManager,
|
|
7686
7899
|
hideAfter = 5e3,
|
|
7687
7900
|
renderUserPointer
|
|
7688
7901
|
}) {
|
|
7689
|
-
const observable = (0,
|
|
7690
|
-
const metadata$ =
|
|
7691
|
-
const data$ =
|
|
7902
|
+
const observable = (0, import_react22.useMemo)(() => {
|
|
7903
|
+
const metadata$ = sharedConnectionDataManager.metadata$.observePath([user.connectionId]).throttle(50);
|
|
7904
|
+
const data$ = sharedConnectionDataManager.data$.observePath([user.connectionId]).throttle(50);
|
|
7692
7905
|
return import_observable2.Observable.combine([metadata$, data$], ([metadata2, data2]) => {
|
|
7693
7906
|
return { metadata: metadata2, data: data2 };
|
|
7694
7907
|
});
|
|
7695
|
-
}, [
|
|
7908
|
+
}, [sharedConnectionDataManager, user.connectionId]);
|
|
7696
7909
|
const { metadata, data } = useObservable(observable);
|
|
7697
|
-
const [, setForceUpdate] = (0,
|
|
7910
|
+
const [, setForceUpdate] = (0, import_react22.useState)(0);
|
|
7698
7911
|
const updatedAt = metadata?.updatedAt ?? 0;
|
|
7699
7912
|
const show = shouldShow(hideAfter, updatedAt);
|
|
7700
|
-
(0,
|
|
7913
|
+
(0, import_react22.useEffect)(() => {
|
|
7701
7914
|
if (!show) return;
|
|
7702
7915
|
const timeoutId = setTimeout(() => {
|
|
7703
7916
|
setForceUpdate((prev) => prev + 1);
|
|
@@ -7706,7 +7919,7 @@ var UserPointerInternal = (0, import_react_utils4.memoGeneric)(function UserPoin
|
|
|
7706
7919
|
}, [hideAfter, show, updatedAt]);
|
|
7707
7920
|
if (!data?.pointer) return null;
|
|
7708
7921
|
return renderUserPointer({
|
|
7709
|
-
userId: user.
|
|
7922
|
+
userId: user.connectionId,
|
|
7710
7923
|
name: user.name,
|
|
7711
7924
|
point: data.pointer,
|
|
7712
7925
|
visible: show
|
|
@@ -7714,19 +7927,21 @@ var UserPointerInternal = (0, import_react_utils4.memoGeneric)(function UserPoin
|
|
|
7714
7927
|
});
|
|
7715
7928
|
var UserPointersOverlay = (0, import_react_utils4.memoGeneric)(function UserPointers({
|
|
7716
7929
|
userManager,
|
|
7717
|
-
|
|
7930
|
+
sharedConnectionDataManager,
|
|
7718
7931
|
renderUserPointer
|
|
7719
7932
|
}) {
|
|
7720
|
-
const
|
|
7933
|
+
const currentConnectionId = useObservable(
|
|
7934
|
+
sharedConnectionDataManager.currentConnectionId$
|
|
7935
|
+
);
|
|
7721
7936
|
const connectedUsers = useObservable(userManager.connectedUsers$);
|
|
7722
|
-
return /* @__PURE__ */
|
|
7723
|
-
if (user.
|
|
7724
|
-
return /* @__PURE__ */
|
|
7937
|
+
return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, connectedUsers.map((user) => {
|
|
7938
|
+
if (user.connectionId === currentConnectionId) return null;
|
|
7939
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
7725
7940
|
UserPointerInternal,
|
|
7726
7941
|
{
|
|
7727
|
-
key: user.
|
|
7942
|
+
key: user.connectionId,
|
|
7728
7943
|
user,
|
|
7729
|
-
|
|
7944
|
+
sharedConnectionDataManager,
|
|
7730
7945
|
renderUserPointer
|
|
7731
7946
|
}
|
|
7732
7947
|
);
|
|
@@ -7817,7 +8032,7 @@ var WebSocketConnection = class {
|
|
|
7817
8032
|
StateInspector,
|
|
7818
8033
|
UserPointersOverlay,
|
|
7819
8034
|
WebSocketConnection,
|
|
7820
|
-
|
|
8035
|
+
buildResourcePatchPayload,
|
|
7821
8036
|
createDefaultAppData,
|
|
7822
8037
|
createNoyaContext,
|
|
7823
8038
|
createStateInspectorRoot,
|
|
@@ -7840,9 +8055,9 @@ var WebSocketConnection = class {
|
|
|
7840
8055
|
useAIManager,
|
|
7841
8056
|
useActivityEvents,
|
|
7842
8057
|
useActivityEventsForManager,
|
|
7843
|
-
useAnyEphemeralUserData,
|
|
7844
8058
|
useAnyNoyaManager,
|
|
7845
8059
|
useAnyNoyaStateContext,
|
|
8060
|
+
useAnySharedConnectionData,
|
|
7846
8061
|
useAsset,
|
|
7847
8062
|
useAssetManager,
|
|
7848
8063
|
useAssets,
|
|
@@ -7851,7 +8066,7 @@ var WebSocketConnection = class {
|
|
|
7851
8066
|
useColorScheme,
|
|
7852
8067
|
useConnectedUser,
|
|
7853
8068
|
useConnectedUsers,
|
|
7854
|
-
|
|
8069
|
+
useEnqueueInput,
|
|
7855
8070
|
useFileName,
|
|
7856
8071
|
useFilePropertyManager,
|
|
7857
8072
|
useIOManager,
|
|
@@ -7861,7 +8076,14 @@ var WebSocketConnection = class {
|
|
|
7861
8076
|
useManagedHistory,
|
|
7862
8077
|
useManagedState,
|
|
7863
8078
|
useMultiplayerState,
|
|
8079
|
+
useNoyaAssetTranscription,
|
|
8080
|
+
useNoyaClientId,
|
|
8081
|
+
useNoyaConnectionId,
|
|
8082
|
+
useNoyaId,
|
|
7864
8083
|
useNoyaStateInternal,
|
|
8084
|
+
useNoyaTranscriptionManager,
|
|
8085
|
+
useNoyaUser,
|
|
8086
|
+
useNoyaUserId,
|
|
7865
8087
|
useObservable,
|
|
7866
8088
|
useOutputTransforms,
|
|
7867
8089
|
usePipelineManager,
|