@luxonis/visualizer-protobuf 1.8.7 → 1.9.0
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/dist/apps/depthai-visualizer/src/components/Panel.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/components/Panel.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/components/PanelToolbar.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/components/PanelToolbar.js +14 -1
- package/dist/apps/depthai-visualizer/src/components/PanelToolbar.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/BaseConnection.d.ts +17 -9
- package/dist/apps/depthai-visualizer/src/connection/BaseConnection.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/BaseConnection.js +23 -38
- package/dist/apps/depthai-visualizer/src/connection/BaseConnection.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/Adapter.d.ts +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/Adapter.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/Adapter.js +6 -3
- package/dist/apps/depthai-visualizer/src/connection/ws/Adapter.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/Connection.d.ts +6 -6
- package/dist/apps/depthai-visualizer/src/connection/ws/Connection.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/Connection.js +5 -6
- package/dist/apps/depthai-visualizer/src/connection/ws/Connection.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.d.ts +83 -0
- package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.d.ts.map +1 -0
- package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.js +184 -0
- package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.js.map +1 -0
- package/dist/apps/depthai-visualizer/src/connection/ws/worker.d.ts +1 -57
- package/dist/apps/depthai-visualizer/src/connection/ws/worker.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/connection/ws/worker.js +2 -171
- package/dist/apps/depthai-visualizer/src/connection/ws/worker.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.d.ts +4 -0
- package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.d.ts.map +1 -0
- package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.js +4 -0
- package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.js.map +1 -0
- package/dist/apps/depthai-visualizer/src/context/MessagePipelineProvider.d.ts +1 -4
- package/dist/apps/depthai-visualizer/src/context/MessagePipelineProvider.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/context/MessagePipelineProvider.js +3 -2
- package/dist/apps/depthai-visualizer/src/context/MessagePipelineProvider.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/context/VisualizerContext.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/context/VisualizerContext.js +3 -1
- package/dist/apps/depthai-visualizer/src/context/VisualizerContext.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/index.d.ts +3 -4
- package/dist/apps/depthai-visualizer/src/index.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/index.js +1 -2
- package/dist/apps/depthai-visualizer/src/index.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/panels/ImagePanel.d.ts +4 -2
- package/dist/apps/depthai-visualizer/src/panels/ImagePanel.d.ts.map +1 -1
- package/dist/apps/depthai-visualizer/src/panels/ImagePanel.js.map +1 -1
- package/dist/apps/depthai-visualizer/src/utils/metrics-manager.d.ts +6 -0
- package/dist/apps/depthai-visualizer/src/utils/metrics-manager.d.ts.map +1 -0
- package/dist/apps/depthai-visualizer/src/utils/metrics-manager.js +25 -0
- package/dist/apps/depthai-visualizer/src/utils/metrics-manager.js.map +1 -0
- package/dist/{index-DbBAYYLN.js → index-2SFix7KY.js} +4 -2
- package/dist/{index-CzFeKxPw.js → index-7n6fnp2B.js} +4 -2
- package/dist/{index-DiuZWhZw.js → index-B8Cado6g.js} +4 -2
- package/dist/{index-BOt4IOh5.js → index-B8FQDMoh.js} +4 -2
- package/dist/{index-CVP9pfZS.js → index-B8t-Gi4x.js} +4 -2
- package/dist/{index-BuuOsI5x.js → index-BEcWpcB1.js} +7 -4
- package/dist/{index-DTSS5_f7.js → index-Bay9MnxH.js} +4 -2
- package/dist/{index-CxLTPANc.js → index-Bk6p8-al.js} +4 -2
- package/dist/{index-DY872ZDo.js → index-BkQgkjmO.js} +4 -2
- package/dist/{index-BgXnyRS5.js → index-BvNZUlo_.js} +4 -2
- package/dist/{index-PRD8Vx5h.js → index-CNWGMhCW.js} +107 -499
- package/dist/{index-BYKYHdD1.js → index-ChQWCJEj.js} +4 -2
- package/dist/{index-BbjcxqKn.js → index-Cp3omW6p.js} +5 -4
- package/dist/{index-tsO6geQz.js → index-DKfQ_S8i.js} +4 -2
- package/dist/{index-ByXG8O46.js → index-DSLjhjen.js} +4 -2
- package/dist/{index-iE53L-9n.js → index-Dn-E1-20.js} +4 -2
- package/dist/{index-CeDdrD6U.js → index-GbwWdY6w.js} +4 -2
- package/dist/{index-Du_K2fSC.js → index-otpYhpPx.js} +4 -2
- package/dist/{index-BKodwqoN.js → index-txFQeh8N.js} +4 -2
- package/dist/index.js +5 -3
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/Images/WorkerImageDecoder.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/Images/WorkerImageDecoder.js +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/Images/WorkerImageDecoder.js.map +1 -1
- package/dist/worker-D2k1TTky.js +10 -0
- package/dist/{protobuf-CjDCjqx3.js → worker-utils-Jii8lIsy.js} +1406 -1
- package/package.json +1 -1
- package/dist/index-CcszYLTP.js +0 -346
- package/dist/worker-CHyNU_Ed.js +0 -1059
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,oBAAoB,CAAC;AAG5B,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,aAAa,QAAO,aAEhC,CAAC;AASF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiDtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../../src/components/Panel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,UAAU,MAAM,gDAAgD,CAAC;AACxE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,oBAAoB,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../../src/components/Panel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,UAAU,MAAM,gDAAgD,CAAC;AACxE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,oBAAoB,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,oBAAoB,CAAC;AAuB5B,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAgB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAkB,EAAE;IAC/C,OAAO,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,cAAwB,EAAE,KAAc,EAAE,OAAqB,EAAgB,EAAE,CACzG,cAAc,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE,eAAe;IACrB,KAAK;IACL,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK;CACjF,CAAC,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,kBAAkB,GAAG,KAAK,EAC1B,gBAAgB,GAAG,EAAE,EACrB,qBAAqB,GAAG,EAAE,EAC3B,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAe,EAAE,CAAC,CAAC;IAErE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC;gBACrD,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAE9E,OAAO,CACL,KAAC,oBAAoB,IAAC,KAAK,EAAC,iBAAiB,YAC3C,KAAC,aAAa,cACZ,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,YAC9C,MAAC,KAAK,IACJ,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAC,QAAQ,EACjB,MAAM,EAAC,qBAAqB,EAC5B,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAE9B,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GACtC,EACF,KAAC,QAAQ,IACP,QAAQ,EACN,KAAC,UAAU,cACT,uCAAqB,GACV,YAGf,KAAC,oBAAoB,IAAC,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAwB,GACjE,IACL,GACkB,GACd,GACK,CACxB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,sCAAsC,CAAC;AAyB9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2IpD,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { useDetections } from "./Panel.js";
|
|
|
6
6
|
import { ArrowDownIcon, ArrowUpIcon, Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Flex, HelpIcon, Icon, Label, NormalText, SubHeader, Tooltip } from "@luxonis/common-fe-components";
|
|
7
7
|
import { ImCheckboxChecked, ImCheckboxUnchecked } from "react-icons/im";
|
|
8
8
|
import '@luxonis/common-fe-components/styles';
|
|
9
|
+
import { useConnections } from "../context/ConnectionsProvider.js";
|
|
9
10
|
const PanelAnnotationButton = ({ topic, onClick }) => {
|
|
10
11
|
const handleClick = React.useCallback(event => {
|
|
11
12
|
event.preventDefault();
|
|
@@ -15,6 +16,14 @@ const PanelAnnotationButton = ({ topic, onClick }) => {
|
|
|
15
16
|
};
|
|
16
17
|
export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations = false }) => {
|
|
17
18
|
const { detections } = useDetections();
|
|
19
|
+
const connections = useConnections();
|
|
20
|
+
const [metrics, setMetrics] = React.useState();
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
const interval = setInterval(() => {
|
|
23
|
+
setMetrics(connections[0]?.getTopicMetrics(topic));
|
|
24
|
+
}, 500);
|
|
25
|
+
return () => clearInterval(interval);
|
|
26
|
+
}, []);
|
|
18
27
|
const [annotationsOpened, setAnnotationsOpened] = React.useState(false);
|
|
19
28
|
const hasExtra = React.useMemo(() => detections.some((topic) => topic.extra && !topic.enabled), [detections]);
|
|
20
29
|
const [extraVisible, setExtraVisible] = React.useState(false);
|
|
@@ -26,9 +35,13 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
|
|
|
26
35
|
})
|
|
27
36
|
})));
|
|
28
37
|
}, [detections, setDetections]);
|
|
38
|
+
// TODO: show only when debug mode is ON
|
|
39
|
+
const name = React.useMemo(() => {
|
|
40
|
+
return `${topic} - ${metrics?.inputFPS || 0}/${metrics?.postDecodeFPS || 0} FPS`;
|
|
41
|
+
}, [topic, metrics]);
|
|
29
42
|
return (_jsxs(Flex, { direction: "row", gap: "sm", align: "center", justify: "space-between", style: {
|
|
30
43
|
paddingLeft: 16
|
|
31
|
-
}, children: [_jsx(SubHeader, { text:
|
|
44
|
+
}, children: [_jsx(SubHeader, { text: name }), !disableAnnotations && kind === 'image' && (_jsxs(DropdownMenu, { onOpenChange: setAnnotationsOpened, children: [_jsx(DropdownMenuTrigger, { asChild: true, disabled: detections.length === 0, children: _jsx(Button, { variant: "outline", label: "Annotations", "aria-controls": annotationsOpened ? "basic-menu" : undefined, "aria-haspopup": "true", "aria-expanded": annotationsOpened ? "true" : undefined, icon: annotationsOpened ? ArrowUpIcon : ArrowDownIcon, disabled: detections.length === 0, style: {
|
|
32
45
|
borderRadius: 0,
|
|
33
46
|
borderTopRightRadius: 8,
|
|
34
47
|
} }) }), _jsxs(DropdownMenuContent, { children: [detections.map((topic) => (!topic.extra || topic.enabled) && (_jsx(PanelAnnotationButton, { topic: topic, onClick: () => onToggleTopic(topic.name) }, topic.name))), hasExtra && (_jsx(Button, { width: "full", paddingY: "xs", variant: "ghost", "aria-expanded": extraVisible ? "true" : undefined, onClick: () => setExtraVisible((current) => !current), icon: extraVisible ? ArrowUpIcon : ArrowDownIcon, style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE1N,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@ import { MessageEvent, PlayerState, PlayerPresence, PlayerProblem } from "@foxgl
|
|
|
3
3
|
import { MessageHandler } from "../messaging/message-handler.js";
|
|
4
4
|
import { WebSocketConnectionMessage } from "./ws/Adapter.js";
|
|
5
5
|
import { ProtobufKind } from "../messaging/protobuf.js";
|
|
6
|
+
import { MetricsManager } from "../utils/metrics-manager.js";
|
|
7
|
+
export type Metrics = {
|
|
8
|
+
inputFPS: number;
|
|
9
|
+
postDecodeFPS: number;
|
|
10
|
+
};
|
|
6
11
|
declare class ProblemManager {
|
|
7
12
|
protected problems: PlayerProblem[];
|
|
8
13
|
addProblem(problem: PlayerProblem): void;
|
|
@@ -14,8 +19,7 @@ declare abstract class FoxgloveConnection {
|
|
|
14
19
|
protected id: string;
|
|
15
20
|
protected playerPresence: PlayerPresence;
|
|
16
21
|
protected playerCapabilities: string[];
|
|
17
|
-
protected
|
|
18
|
-
protected parsedMessagesBytes: number;
|
|
22
|
+
protected messageEvent: MessageEvent | null;
|
|
19
23
|
protected receivedBytes: number;
|
|
20
24
|
protected startTime?: Time;
|
|
21
25
|
protected endTime?: Time;
|
|
@@ -24,6 +28,8 @@ declare abstract class FoxgloveConnection {
|
|
|
24
28
|
protected subscribedTopics: Map<any, any>;
|
|
25
29
|
protected advertisedServices: Map<any, any>;
|
|
26
30
|
protected problems: ProblemManager;
|
|
31
|
+
protected inputMetrics: MetricsManager;
|
|
32
|
+
protected decodeMetrics: MetricsManager;
|
|
27
33
|
protected messageHandler: MessageHandler;
|
|
28
34
|
protected topics: {
|
|
29
35
|
[key: string]: {
|
|
@@ -33,9 +39,10 @@ declare abstract class FoxgloveConnection {
|
|
|
33
39
|
};
|
|
34
40
|
constructor(id: string);
|
|
35
41
|
setListener(listener: (playerState: PlayerState) => Promise<void>): void;
|
|
42
|
+
getTopicMetrics(topic: string): Metrics;
|
|
36
43
|
protected getCurrentTime(): Time;
|
|
37
44
|
protected onMessagePacket(event: globalThis.MessageEvent<WebSocketConnectionMessage>): void;
|
|
38
|
-
protected
|
|
45
|
+
protected handleParsedMessage(event: MessageEvent): void;
|
|
39
46
|
protected emitState: (() => void) & {
|
|
40
47
|
currentPromise?: Promise<void>;
|
|
41
48
|
};
|
|
@@ -44,11 +51,12 @@ export type PublicChannelData = {
|
|
|
44
51
|
topic: string;
|
|
45
52
|
kind: ProtobufKind;
|
|
46
53
|
};
|
|
47
|
-
export type ConnectionEventMap = {
|
|
54
|
+
export type ConnectionEventMap<CustomMessage> = {
|
|
55
|
+
custom: (message: globalThis.MessageEvent<CustomMessage>) => void;
|
|
48
56
|
open: () => void;
|
|
49
57
|
close: () => void;
|
|
50
|
-
channels: (channels: MessageEvent<PublicChannelData[]>) => void;
|
|
51
|
-
services: (services: MessageEvent<string[]>) => void;
|
|
58
|
+
channels: (channels: globalThis.MessageEvent<PublicChannelData[]>) => void;
|
|
59
|
+
services: (services: globalThis.MessageEvent<string[]>) => void;
|
|
52
60
|
};
|
|
53
61
|
export type ServiceRequestArgs = {
|
|
54
62
|
name: string;
|
|
@@ -56,10 +64,10 @@ export type ServiceRequestArgs = {
|
|
|
56
64
|
body?: Record<string, any>;
|
|
57
65
|
ignoreResponse?: boolean;
|
|
58
66
|
};
|
|
59
|
-
export declare abstract class BaseConnection extends FoxgloveConnection {
|
|
67
|
+
export declare abstract class BaseConnection<CustomMessage = never> extends FoxgloveConnection {
|
|
60
68
|
abstract close(): void;
|
|
61
|
-
abstract on<E extends keyof ConnectionEventMap
|
|
62
|
-
abstract off<E extends keyof ConnectionEventMap
|
|
69
|
+
abstract on<E extends keyof ConnectionEventMap<CustomMessage>>(name: E, listener: ConnectionEventMap<CustomMessage>[E]): void;
|
|
70
|
+
abstract off<E extends keyof ConnectionEventMap<CustomMessage>>(name: E, listener: ConnectionEventMap<CustomMessage>[E]): void;
|
|
63
71
|
abstract request(args: ServiceRequestArgs): Promise<DataView | null>;
|
|
64
72
|
abstract get connected(): boolean;
|
|
65
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseConnection.d.ts","sourceRoot":"","sources":["../../../../../src/connection/BaseConnection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAyC,MAAM,mBAAmB,CAAC;AAEhF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAwB,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseConnection.d.ts","sourceRoot":"","sources":["../../../../../src/connection/BaseConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { fromMillis, isGreaterThan, isLessThan } from "@foxglove/rostime";
|
|
|
6
6
|
import { estimateObjectSize } from "@foxglove/studio-base/players/messageMemoryEstimation";
|
|
7
7
|
import { PlayerPresence, PlayerCapabilities } from "@foxglove/studio-base/players/types";
|
|
8
8
|
import { createMessageHandler } from "../messaging/message-handler.js";
|
|
9
|
-
|
|
9
|
+
import { MetricsManager } from "../utils/metrics-manager.js";
|
|
10
10
|
class ProblemManager {
|
|
11
11
|
problems = [];
|
|
12
12
|
addProblem(problem) {
|
|
@@ -26,8 +26,7 @@ class FoxgloveConnection {
|
|
|
26
26
|
playerPresence = PlayerPresence.NOT_PRESENT;
|
|
27
27
|
playerCapabilities = [PlayerCapabilities.playbackControl];
|
|
28
28
|
// state options
|
|
29
|
-
|
|
30
|
-
parsedMessagesBytes = 0;
|
|
29
|
+
messageEvent = null;
|
|
31
30
|
receivedBytes = 0;
|
|
32
31
|
startTime;
|
|
33
32
|
endTime;
|
|
@@ -36,55 +35,43 @@ class FoxgloveConnection {
|
|
|
36
35
|
subscribedTopics = new Map();
|
|
37
36
|
advertisedServices = new Map();
|
|
38
37
|
problems = new ProblemManager();
|
|
38
|
+
inputMetrics = new MetricsManager();
|
|
39
|
+
decodeMetrics = new MetricsManager();
|
|
39
40
|
// message handler
|
|
40
41
|
messageHandler;
|
|
41
42
|
topics = {};
|
|
42
43
|
constructor(id) {
|
|
43
44
|
this.id = id;
|
|
44
|
-
this.messageHandler = createMessageHandler(this.
|
|
45
|
+
this.messageHandler = createMessageHandler(this.handleParsedMessage.bind(this));
|
|
45
46
|
}
|
|
46
47
|
setListener(listener) {
|
|
47
48
|
this.listener = listener;
|
|
48
49
|
this.emitState();
|
|
49
50
|
}
|
|
51
|
+
getTopicMetrics(topic) {
|
|
52
|
+
return {
|
|
53
|
+
inputFPS: this.inputMetrics.calculate(topic),
|
|
54
|
+
postDecodeFPS: this.decodeMetrics.calculate(topic),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
50
57
|
getCurrentTime() {
|
|
51
58
|
return fromMillis(Date.now());
|
|
52
59
|
}
|
|
53
60
|
onMessagePacket(event) {
|
|
61
|
+
this.inputMetrics.registerEvent(event.data.topic);
|
|
54
62
|
this.messageHandler.handle(event.data);
|
|
55
63
|
}
|
|
56
|
-
|
|
64
|
+
handleParsedMessage(event) {
|
|
65
|
+
this.decodeMetrics.registerEvent(event.topic);
|
|
57
66
|
const messageSize = estimateObjectSize(event.message);
|
|
58
67
|
event.sizeInBytes = messageSize;
|
|
59
|
-
this.
|
|
60
|
-
this.parsedMessages.push(event);
|
|
61
|
-
if (this.parsedMessagesBytes > CURRENT_FRAME_MAXIMUM_SIZE_BYTES) {
|
|
62
|
-
// console.debug(
|
|
63
|
-
// `WebSocketPlayer maximum frame size (${(
|
|
64
|
-
// CURRENT_FRAME_MAXIMUM_SIZE_BYTES / 1024 / 1024
|
|
65
|
-
// ).toFixed(
|
|
66
|
-
// 2,
|
|
67
|
-
// )}MB) reached. Dropping old messages. This accumulation can occur if the browser tab has been inactive.`,
|
|
68
|
-
// );
|
|
69
|
-
// Amortize cost of dropping messages by dropping parsedMessages size to
|
|
70
|
-
// 80% so that it doesn't happen for every message after reaching the limit
|
|
71
|
-
const evictUntilSize = 0.8 * CURRENT_FRAME_MAXIMUM_SIZE_BYTES;
|
|
72
|
-
let droppedBytes = 0;
|
|
73
|
-
let indexToCutBefore = 0;
|
|
74
|
-
while (this.parsedMessagesBytes - droppedBytes > evictUntilSize) {
|
|
75
|
-
droppedBytes += this.parsedMessages[indexToCutBefore].sizeInBytes;
|
|
76
|
-
indexToCutBefore++;
|
|
77
|
-
}
|
|
78
|
-
this.parsedMessages.splice(0, indexToCutBefore);
|
|
79
|
-
this.parsedMessagesBytes -= droppedBytes;
|
|
80
|
-
}
|
|
68
|
+
this.messageEvent = event;
|
|
81
69
|
this.emitState();
|
|
82
70
|
}
|
|
83
71
|
emitState = debouncePromise(async () => {
|
|
84
|
-
const
|
|
85
|
-
this.
|
|
86
|
-
this.
|
|
87
|
-
if (!this.listener) {
|
|
72
|
+
const message = this.messageEvent;
|
|
73
|
+
this.messageEvent = null;
|
|
74
|
+
if (!this.listener || !message) {
|
|
88
75
|
await Promise.resolve();
|
|
89
76
|
return;
|
|
90
77
|
}
|
|
@@ -97,12 +84,10 @@ class FoxgloveConnection {
|
|
|
97
84
|
}
|
|
98
85
|
const problems = this.problems.getProblems();
|
|
99
86
|
this.problems.clearProblems();
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
};
|
|
105
|
-
}
|
|
87
|
+
this.topics[message.topic] = {
|
|
88
|
+
name: message.topic,
|
|
89
|
+
schemaName: message.schemaName
|
|
90
|
+
};
|
|
106
91
|
const newPlayerState = {
|
|
107
92
|
name: this.id,
|
|
108
93
|
presence: this.playerPresence,
|
|
@@ -113,7 +98,7 @@ class FoxgloveConnection {
|
|
|
113
98
|
problems,
|
|
114
99
|
urlState: undefined,
|
|
115
100
|
activeData: {
|
|
116
|
-
messages,
|
|
101
|
+
messages: [message],
|
|
117
102
|
totalBytesReceived: this.receivedBytes,
|
|
118
103
|
startTime: this.startTime,
|
|
119
104
|
endTime: this.endTime,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseConnection.js","sourceRoot":"","sources":["../../../../../src/connection/BaseConnection.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAQ,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,EAGL,cAAc,EAEd,kBAAkB,EACnB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAkB,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseConnection.js","sourceRoot":"","sources":["../../../../../src/connection/BaseConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export default class Adapter extends EventTarget implements WebSocket {
|
|
|
28
28
|
readonly CLOSING: 2;
|
|
29
29
|
/** The connection is closed or couldn't be opened. */
|
|
30
30
|
readonly CLOSED: 3;
|
|
31
|
-
constructor(wsUrl: string);
|
|
31
|
+
constructor(wsUrl: string, worker?: Worker);
|
|
32
32
|
on: BaseConnection["on"];
|
|
33
33
|
off: BaseConnection["off"];
|
|
34
34
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/connection/ws/Adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK7F,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAY,YAAW,SAAS;;IAI5D,UAAU,EAAE,MAAM,GAAG,aAAa,CAAiB;IACnD,QAAQ,EAAE,MAAM,CAAM;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAM;IACxB,cAAc,EAAE,MAAM,CAAK;IAC3B,UAAU,EAAE,MAAM,CAAoB;IAEtC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAC7E,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAC5E,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAC7E,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAEtF,sCAAsC;IACtC,SAAgB,UAAU,IAAwB;IAClD,wDAAwD;IACxD,SAAgB,IAAI,IAAkB;IACtC,oDAAoD;IACpD,SAAgB,OAAO,IAAqB;IAC5C,uDAAuD;IACvD,SAAgB,MAAM,IAAoB;
|
|
1
|
+
{"version":3,"file":"Adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/connection/ws/Adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK7F,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAY,YAAW,SAAS;;IAI5D,UAAU,EAAE,MAAM,GAAG,aAAa,CAAiB;IACnD,QAAQ,EAAE,MAAM,CAAM;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAM;IACxB,cAAc,EAAE,MAAM,CAAK;IAC3B,UAAU,EAAE,MAAM,CAAoB;IAEtC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAC7E,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAC5E,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAC7E,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAEtF,sCAAsC;IACtC,SAAgB,UAAU,IAAwB;IAClD,wDAAwD;IACxD,SAAgB,IAAI,IAAkB;IACtC,oDAAoD;IACpD,SAAgB,OAAO,IAAqB;IAC5C,uDAAuD;IACvD,SAAgB,MAAM,IAAoB;gBAoEvB,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAW1C,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAQ9B;IAEM,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CACiB;IAE3C,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,EACb,IAAI,EACJ,OAAkC,EAClC,cAAsB,EACtB,IAAS,EACV,EAAE,kBAAkB;IAuCd,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe;CAGzD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
4
|
-
const REQUEST_RESPONSE_TIMEOUT =
|
|
4
|
+
const REQUEST_RESPONSE_TIMEOUT = 10_000;
|
|
5
5
|
export default class Adapter extends EventTarget {
|
|
6
6
|
#worker;
|
|
7
7
|
#connectionClosed = false;
|
|
@@ -75,13 +75,16 @@ export default class Adapter extends EventTarget {
|
|
|
75
75
|
this.dispatchEvent(new MessageEvent("services", event.data));
|
|
76
76
|
break;
|
|
77
77
|
}
|
|
78
|
+
case 'custom': {
|
|
79
|
+
this.dispatchEvent(new MessageEvent('custom', event.data));
|
|
80
|
+
}
|
|
78
81
|
}
|
|
79
82
|
});
|
|
80
83
|
}
|
|
81
|
-
constructor(wsUrl) {
|
|
84
|
+
constructor(wsUrl, worker) {
|
|
82
85
|
super();
|
|
83
86
|
this.url = wsUrl;
|
|
84
|
-
this.#worker = new Worker(new URL("./worker", import.meta.url), { type: "module" });
|
|
87
|
+
this.#worker = worker ?? new Worker(new URL("./worker", import.meta.url), { type: "module" });
|
|
85
88
|
this.#handleMessageEvents();
|
|
86
89
|
this.#sendToWorker({ type: "open", data: { wsUrl } });
|
|
87
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Adapter.js","sourceRoot":"","sources":["../../../../../../src/connection/ws/Adapter.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAK1D,MAAM,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"Adapter.js","sourceRoot":"","sources":["../../../../../../src/connection/ws/Adapter.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAK1D,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAaxC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,OAAO,CAAU;IACjB,iBAAiB,GAAY,KAAK,CAAC;IAE5B,UAAU,GAA2B,aAAa,CAAC;IACnD,QAAQ,GAAW,EAAE,CAAC;IACtB,GAAG,CAAS;IACZ,UAAU,GAAW,EAAE,CAAC;IACxB,cAAc,GAAW,CAAC,CAAC;IAC3B,UAAU,GAAW,SAAS,CAAC,MAAM,CAAC;IAEtC,OAAO,GAA4D,SAAS,CAAC;IAC7E,MAAM,GAA4D,SAAS,CAAC;IAC5E,OAAO,GAA4D,SAAS,CAAC;IAC7E,SAAS,GAA4D,SAAS,CAAC;IAEtF,sCAAsC;IACtB,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IAClD,wDAAwD;IACxC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IACtC,oDAAoD;IACpC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAC5C,uDAAuD;IACvC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAE1C,cAAc,GAAG,CAAC,CAAC;IAEnB,UAAU,GAAc;QACtB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf,CAAA;IAED,aAAa,CAAC,OAAwB,EAAE,eAA+B,EAAE;QACvE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,oBAAoB;QAClB,MAAM,aAAa,GAAG,CAAC,KAAqC,EAAE,EAAE,CAC9D,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,CAAC,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAsC,EAAE,EAAE;YAClF,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC;oBACV,MAAM;gBACR,CAAC;gBACD,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,OAAO,EAAE,CAAC;oBACV,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxD,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5D,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7D,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7D,MAAM;gBACR,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAmB,KAAa,EAAE,MAAe;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QAEjB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE9F,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAEM,EAAE,GAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;QAC7C,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAuB,CAAC,CAAC;YACtD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAEM,GAAG,GAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;IAE3C,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,EACb,IAAI,EACJ,OAAO,GAAG,wBAAwB,EAClC,cAAc,GAAG,KAAK,EACtB,IAAI,GAAG,EAAE,EACU;QACnB,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,aAAa,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC;YAC5C,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAmC,EAAE,EAAE;gBACtE,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;oBACjE,YAAY,CAAC,cAAc,CAAC,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;wBACrB,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACvE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;wBACtD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YACF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,aAAa,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;aACpC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACrC,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,aAAa,sBAAsB,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC3F,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,cAAc,EAAE,CAAC;gBACnB,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,IAA4C;QACtD,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BaseConnection } from "../BaseConnection";
|
|
2
|
-
export declare class WebSocketConnection extends BaseConnection {
|
|
2
|
+
export declare class WebSocketConnection<CustomMessage = never> extends BaseConnection<CustomMessage> {
|
|
3
3
|
#private;
|
|
4
|
-
constructor(url: string);
|
|
5
|
-
on: BaseConnection["on"];
|
|
6
|
-
off: BaseConnection["off"];
|
|
7
|
-
request: BaseConnection["request"];
|
|
8
|
-
close: BaseConnection["close"];
|
|
4
|
+
constructor(url: string, worker?: Worker);
|
|
5
|
+
on: BaseConnection<CustomMessage>["on"];
|
|
6
|
+
off: BaseConnection<CustomMessage>["off"];
|
|
7
|
+
request: BaseConnection<CustomMessage>["request"];
|
|
8
|
+
close: BaseConnection<CustomMessage>["close"];
|
|
9
9
|
get connected(): boolean;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=Connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../../../../../src/connection/ws/Connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,
|
|
1
|
+
{"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../../../../../src/connection/ws/Connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,mBAAmB,CAAC,aAAa,GAAG,KAAK,CAAE,SAAQ,cAAc,CAAC,aAAa,CAAC;;gBAIxE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAOxC,EAAE,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAA2C;IAClF,GAAG,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAA4C;IACrF,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CACN;IAC3C,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAgC;IAEpF,IAAW,SAAS,YAEnB;CA8BF"}
|
|
@@ -7,10 +7,10 @@ import { BaseConnection } from "../BaseConnection";
|
|
|
7
7
|
export class WebSocketConnection extends BaseConnection {
|
|
8
8
|
#url;
|
|
9
9
|
#adapter;
|
|
10
|
-
constructor(url) {
|
|
10
|
+
constructor(url, worker) {
|
|
11
11
|
super(url);
|
|
12
12
|
this.#url = url;
|
|
13
|
-
this.#open();
|
|
13
|
+
this.#open(worker);
|
|
14
14
|
}
|
|
15
15
|
on = (...args) => this.#adapter?.on(...args);
|
|
16
16
|
off = (...args) => this.#adapter?.off(...args);
|
|
@@ -19,8 +19,8 @@ export class WebSocketConnection extends BaseConnection {
|
|
|
19
19
|
get connected() {
|
|
20
20
|
return Boolean(this.#adapter?.readyState === WebSocket.OPEN);
|
|
21
21
|
}
|
|
22
|
-
#open = () => {
|
|
23
|
-
this.#adapter = new Adapter(this.#url);
|
|
22
|
+
#open = (worker) => {
|
|
23
|
+
this.#adapter = new Adapter(this.#url, worker);
|
|
24
24
|
this.#adapter.addEventListener("open", this.#onOpen.bind(this));
|
|
25
25
|
this.#adapter.addEventListener("message", (event) => {
|
|
26
26
|
this.onMessagePacket.bind(this)(event);
|
|
@@ -37,8 +37,7 @@ export class WebSocketConnection extends BaseConnection {
|
|
|
37
37
|
this.emitState();
|
|
38
38
|
};
|
|
39
39
|
#onError = (_event) => {
|
|
40
|
-
this.
|
|
41
|
-
this.parsedMessagesBytes = 0;
|
|
40
|
+
this.messageEvent = null;
|
|
42
41
|
this.playerPresence = PlayerPresence.ERROR;
|
|
43
42
|
this.emitState();
|
|
44
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../../../../src/connection/ws/Connection.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,OAAuC,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../../../../src/connection/ws/Connection.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,OAAuC,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,mBAA2C,SAAQ,cAA6B;IAC3F,IAAI,CAAS;IACb,QAAQ,CAAW;IAEnB,YAAmB,GAAW,EAAE,MAAe;QAC7C,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAEM,EAAE,GAAwC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAClF,GAAG,GAAyC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACrF,OAAO,GAA6C,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAC3E,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3C,KAAK,GAA2C,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEpF,IAAW,SAAS;QAClB,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,GAA8B,CAAC,MAAM,EAAE,EAAE;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAA4D,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO,GAAe,GAAG,EAAE;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,QAAQ,GAAe,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,QAAQ,GAA6B,CAAC,MAAM,EAAE,EAAE;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC;QAE3C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { PublicChannelData } from "../BaseConnection.js";
|
|
2
|
+
export type WebSocketConnectionMessage = {
|
|
3
|
+
topic: string;
|
|
4
|
+
schema: string;
|
|
5
|
+
buffer: DataView;
|
|
6
|
+
};
|
|
7
|
+
export type ToWorkerMessage = {
|
|
8
|
+
type: "open";
|
|
9
|
+
data: {
|
|
10
|
+
wsUrl: string;
|
|
11
|
+
};
|
|
12
|
+
} | {
|
|
13
|
+
type: "send";
|
|
14
|
+
data: string | ArrayBuffer | ArrayBufferView;
|
|
15
|
+
} | {
|
|
16
|
+
type: "close";
|
|
17
|
+
data: null;
|
|
18
|
+
} | {
|
|
19
|
+
type: "call_service";
|
|
20
|
+
data: {
|
|
21
|
+
name: string;
|
|
22
|
+
serviceCallId: number;
|
|
23
|
+
body?: Record<string, any>;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export type FromWorkerMessage = {
|
|
27
|
+
type: "open";
|
|
28
|
+
} | {
|
|
29
|
+
type: "close";
|
|
30
|
+
} | {
|
|
31
|
+
type: "reconnect";
|
|
32
|
+
} | {
|
|
33
|
+
type: "error";
|
|
34
|
+
error: unknown;
|
|
35
|
+
} | {
|
|
36
|
+
type: "channels";
|
|
37
|
+
data: PublicChannelData[];
|
|
38
|
+
} | {
|
|
39
|
+
type: "services";
|
|
40
|
+
data: string[];
|
|
41
|
+
} | {
|
|
42
|
+
type: "service_response";
|
|
43
|
+
data: {
|
|
44
|
+
name: string;
|
|
45
|
+
serviceCallId: number;
|
|
46
|
+
} & ({
|
|
47
|
+
ok: true;
|
|
48
|
+
error: null;
|
|
49
|
+
buffer: DataView;
|
|
50
|
+
} | {
|
|
51
|
+
ok: false;
|
|
52
|
+
error: string;
|
|
53
|
+
buffer: null;
|
|
54
|
+
});
|
|
55
|
+
} | {
|
|
56
|
+
type: "message";
|
|
57
|
+
data: WebSocketConnectionMessage;
|
|
58
|
+
} | {
|
|
59
|
+
type: "custom";
|
|
60
|
+
data: any;
|
|
61
|
+
};
|
|
62
|
+
export declare class WsWorker {
|
|
63
|
+
#private;
|
|
64
|
+
private send;
|
|
65
|
+
private sendWithTransfer;
|
|
66
|
+
private subscriptions;
|
|
67
|
+
private services;
|
|
68
|
+
private serviceCalls;
|
|
69
|
+
private createWs;
|
|
70
|
+
private createClient;
|
|
71
|
+
private getPublicChannels;
|
|
72
|
+
private getPublicServices;
|
|
73
|
+
private handleAdvertisements;
|
|
74
|
+
private handleServiceResponses;
|
|
75
|
+
constructor(wsUrl: string, send: (message: FromWorkerMessage) => void, sendWithTransfer: (message: FromWorkerMessage, transfer: ArrayBuffer[]) => void);
|
|
76
|
+
rawSend(data: string | ArrayBuffer | ArrayBufferView): void;
|
|
77
|
+
close(): void;
|
|
78
|
+
callService({ name, serviceCallId, body }: (ToWorkerMessage & {
|
|
79
|
+
type: "call_service";
|
|
80
|
+
})["data"]): void;
|
|
81
|
+
}
|
|
82
|
+
export declare function createWsWorkerMessageListener(send: (message: FromWorkerMessage) => void, sendWithTransfer: (message: FromWorkerMessage, transfer: ArrayBuffer[]) => void): (event: MessageEvent<ToWorkerMessage>) => Promise<void>;
|
|
83
|
+
//# sourceMappingURL=worker-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/connection/ws/worker-utils.ts"],"names":[],"mappings":"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"}
|