@luxonis/visualizer-protobuf 2.2.0 → 2.3.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.
Files changed (116) hide show
  1. package/dist/{communicator-DKKKAI0H.js → FoxgloveServer-tJZcJH5-.js} +1216 -174
  2. package/dist/apps/depthai-visualizer/src/components/PanelToolbar.d.ts.map +1 -1
  3. package/dist/apps/depthai-visualizer/src/components/PanelToolbar.js +9 -10
  4. package/dist/apps/depthai-visualizer/src/components/PanelToolbar.js.map +1 -1
  5. package/dist/apps/depthai-visualizer/src/connection/adapter.d.ts +4 -7
  6. package/dist/apps/depthai-visualizer/src/connection/adapter.d.ts.map +1 -1
  7. package/dist/apps/depthai-visualizer/src/connection/adapter.js +5 -5
  8. package/dist/apps/depthai-visualizer/src/connection/adapter.js.map +1 -1
  9. package/dist/apps/depthai-visualizer/src/connection/communicator.d.ts +7 -13
  10. package/dist/apps/depthai-visualizer/src/connection/communicator.d.ts.map +1 -1
  11. package/dist/apps/depthai-visualizer/src/connection/communicator.js +5 -4
  12. package/dist/apps/depthai-visualizer/src/connection/communicator.js.map +1 -1
  13. package/dist/apps/depthai-visualizer/src/connection/connection.d.ts +8 -13
  14. package/dist/apps/depthai-visualizer/src/connection/connection.d.ts.map +1 -1
  15. package/dist/apps/depthai-visualizer/src/connection/connection.js +19 -22
  16. package/dist/apps/depthai-visualizer/src/connection/connection.js.map +1 -1
  17. package/dist/apps/depthai-visualizer/src/connection/foxglove-protocol.d.ts +6 -0
  18. package/dist/apps/depthai-visualizer/src/connection/foxglove-protocol.d.ts.map +1 -0
  19. package/dist/apps/depthai-visualizer/src/connection/foxglove-protocol.js +63 -0
  20. package/dist/apps/depthai-visualizer/src/connection/foxglove-protocol.js.map +1 -0
  21. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.d.ts +2 -2
  22. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.d.ts.map +1 -1
  23. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.js +29 -49
  24. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.js.map +1 -1
  25. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.d.ts +20 -20
  26. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.d.ts.map +1 -1
  27. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.js +34 -35
  28. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.js.map +1 -1
  29. package/dist/apps/depthai-visualizer/src/connection/ws/worker.d.ts +16 -1
  30. package/dist/apps/depthai-visualizer/src/connection/ws/worker.d.ts.map +1 -1
  31. package/dist/apps/depthai-visualizer/src/connection/ws/worker.js +114 -2
  32. package/dist/apps/depthai-visualizer/src/connection/ws/worker.js.map +1 -1
  33. package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.d.ts +1 -1
  34. package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.d.ts.map +1 -1
  35. package/dist/apps/depthai-visualizer/src/index.d.ts +1 -2
  36. package/dist/apps/depthai-visualizer/src/index.d.ts.map +1 -1
  37. package/dist/apps/depthai-visualizer/src/index.js +0 -1
  38. package/dist/apps/depthai-visualizer/src/index.js.map +1 -1
  39. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/detection.js +2 -2
  40. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/detection.js.map +1 -1
  41. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/utils.d.ts.map +1 -1
  42. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/utils.js.map +1 -1
  43. package/dist/apps/depthai-visualizer/src/messaging/deserialization.js +5 -5
  44. package/dist/apps/depthai-visualizer/src/messaging/deserialization.js.map +1 -1
  45. package/dist/apps/depthai-visualizer/src/messaging/utils.d.ts +7 -6
  46. package/dist/apps/depthai-visualizer/src/messaging/utils.d.ts.map +1 -1
  47. package/dist/apps/depthai-visualizer/src/messaging/utils.js +2 -2
  48. package/dist/apps/depthai-visualizer/src/messaging/utils.js.map +1 -1
  49. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.d.ts.map +1 -1
  50. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.js +3 -0
  51. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.js.map +1 -1
  52. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImageAnnotations.d.ts.map +1 -1
  53. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImageAnnotations.js +3 -0
  54. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImageAnnotations.js.map +1 -1
  55. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.d.ts.map +1 -1
  56. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.js +3 -0
  57. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.js.map +1 -1
  58. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.d.ts.map +1 -1
  59. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.js +3 -0
  60. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.js.map +1 -1
  61. package/dist/apps/depthai-visualizer/src/protobuf.generated/PointCloudData.d.ts.map +1 -1
  62. package/dist/apps/depthai-visualizer/src/protobuf.generated/PointCloudData.js +3 -0
  63. package/dist/apps/depthai-visualizer/src/protobuf.generated/PointCloudData.js.map +1 -1
  64. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.d.ts.map +1 -1
  65. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.js +3 -0
  66. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.js.map +1 -1
  67. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.d.ts.map +1 -1
  68. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.js +3 -0
  69. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.js.map +1 -1
  70. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.d.ts +6 -6
  71. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.d.ts.map +1 -1
  72. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.js +10 -7
  73. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.js.map +1 -1
  74. package/dist/apps/depthai-visualizer/src/utils/callback-manager.d.ts +1 -1
  75. package/dist/apps/depthai-visualizer/src/utils/callback-manager.d.ts.map +1 -1
  76. package/dist/apps/depthai-visualizer/src/utils/callback-manager.js +5 -5
  77. package/dist/apps/depthai-visualizer/src/utils/callback-manager.js.map +1 -1
  78. package/dist/apps/depthai-visualizer/src/utils/compatibility.d.ts.map +1 -1
  79. package/dist/apps/depthai-visualizer/src/utils/metrics-manager.d.ts.map +1 -1
  80. package/dist/apps/depthai-visualizer/src/utils/metrics-manager.js +1 -0
  81. package/dist/apps/depthai-visualizer/src/utils/metrics-manager.js.map +1 -1
  82. package/dist/communicator-D9LSiWws.js +147 -0
  83. package/dist/foxglove-protocol-RBwoTi12.js +76 -0
  84. package/dist/{index-DbIgJEn4.js → index-BatOjqHR.js} +4 -5
  85. package/dist/{index-BZjzIIuE.js → index-BeMujwTx.js} +4 -5
  86. package/dist/{index-CE1LH59a.js → index-Bmv-vCsr.js} +4 -5
  87. package/dist/{index-Dai0K-_7.js → index-Bpb1nLXX.js} +4 -5
  88. package/dist/{index-FdS8KlrP.js → index-C38MwKQ5.js} +4 -5
  89. package/dist/{index-BsdqQ862.js → index-C4Xw5gJf.js} +4 -5
  90. package/dist/{index-C6m30paN.js → index-CCjTYhIj.js} +4 -5
  91. package/dist/{index-D0g7yNKD.js → index-CRzS8jhh.js} +4 -5
  92. package/dist/{index-MOg_zBJW.js → index-CTV8k4Ur.js} +4 -5
  93. package/dist/{index-Cqzhj8jS.js → index-Cjzn2Mk3.js} +4 -5
  94. package/dist/{index-SZgAiOi4.js → index-CzJG5yoW.js} +4 -5
  95. package/dist/{index-Cmp_Tjng.js → index-D2tE4ai8.js} +5 -6
  96. package/dist/{index-DleEaqya.js → index-D8PL1mUz.js} +4 -5
  97. package/dist/{index-B3F-eA-i.js → index-Dx5rKk7S.js} +115 -126
  98. package/dist/{index-DkDTcHOl.js → index-JdSlhtdz.js} +4 -5
  99. package/dist/{index-D_AhdZqi.js → index-LBWmbzab.js} +4 -5
  100. package/dist/{index-D7I7neMi.js → index-fDKFJqYA.js} +4 -5
  101. package/dist/{index-1yvlF6NH.js → index-kO40p_fI.js} +4 -5
  102. package/dist/{index-B4j3EVf8.js → index-lcxcWrBB.js} +4 -5
  103. package/dist/index.js +4 -5
  104. package/dist/{worker-CMZIJlQN.js → worker-BX0SIDt0.js} +24 -20
  105. package/dist/worker-C6ruK-iB.js +150 -0
  106. package/package.json +1 -1
  107. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.d.ts +0 -19
  108. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.d.ts.map +0 -1
  109. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.js +0 -128
  110. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.js.map +0 -1
  111. package/dist/apps/depthai-visualizer/src/panels/CanvasPanel.d.ts +0 -12
  112. package/dist/apps/depthai-visualizer/src/panels/CanvasPanel.d.ts.map +0 -1
  113. package/dist/apps/depthai-visualizer/src/panels/CanvasPanel.js +0 -52
  114. package/dist/apps/depthai-visualizer/src/panels/CanvasPanel.js.map +0 -1
  115. package/dist/worker-DtDgSl3T.js +0 -11
  116. package/dist/worker-utils-BuUq1bP1.js +0 -1357
@@ -1 +1 @@
1
- {"version":3,"file":"callback-manager.js","sourceRoot":"","sources":["../../../../../src/utils/callback-manager.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,MAAM,OAAO,eAAe;IAClB,SAAS,GAAQ,EAAE,CAAC;IAErB,GAAG,CAAC,QAAW;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,QAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEM,IAAI,CAAC,IAAwB;QAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"callback-manager.js","sourceRoot":"","sources":["../../../../../src/utils/callback-manager.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,MAAM,OAAO,eAAe;IAC1B,UAAU,GAAQ,EAAE,CAAC;IAEd,GAAG,CAAC,QAAW;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,QAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEM,IAAI,CAAC,IAAwB;QAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../../../../src/utils/compatibility.ts"],"names":[],"mappings":"AAIA,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,WAe/E"}
1
+ {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../../../../src/utils/compatibility.ts"],"names":[],"mappings":"AAIA,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,OAAO,CAezF"}
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-manager.d.ts","sourceRoot":"","sources":["../../../../../src/utils/metrics-manager.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAEvC,aAAa,CAAC,KAAK,EAAE,MAAM;IAO3B,SAAS,CAAC,KAAK,EAAE,MAAM;CAkB/B"}
1
+ {"version":3,"file":"metrics-manager.d.ts","sourceRoot":"","sources":["../../../../../src/utils/metrics-manager.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAEvC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQlC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAkBxC"}
@@ -5,6 +5,7 @@ export class MetricsManager {
5
5
  metrics = {};
6
6
  registerEvent(topic) {
7
7
  const currentTime = performance.now();
8
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
8
9
  this.metrics[topic] ??= [];
9
10
  this.metrics[topic].unshift(currentTime);
10
11
  this.metrics[topic].length = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-manager.js","sourceRoot":"","sources":["../../../../../src/utils/metrics-manager.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,MAAM,OAAO,cAAc;IAClB,OAAO,GAA6B,EAAE,CAAC;IAEvC,aAAa,CAAC,KAAa;QAChC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,MAAM,GAAG,GAAG,CAAC;IACpC,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC7C,aAAa,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,aAAa,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"metrics-manager.js","sourceRoot":"","sources":["../../../../../src/utils/metrics-manager.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,MAAM,OAAO,cAAc;IAClB,OAAO,GAA6B,EAAE,CAAC;IAEvC,aAAa,CAAC,KAAa;QAChC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACtC,uEAAuE;QACvE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,MAAM,GAAG,GAAG,CAAC;IACpC,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC7C,aAAa,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,aAAa,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,147 @@
1
+ import { p as protobufsBySchema } from './FoxgloveServer-tJZcJH5-.js';
2
+
3
+ // This Source Code Form is subject to the terms of the Mozilla Public
4
+ // License, v2.0. If a copy of the MPL was not distributed with this
5
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
6
+
7
+ function recordToDataView(record) {
8
+ const text = JSON.stringify(record);
9
+ if (!text) {
10
+ throw new Error("Invalid record");
11
+ }
12
+ const encoder = new TextEncoder();
13
+ const data = encoder.encode(text);
14
+ const dataView = new DataView(data.buffer);
15
+ return dataView;
16
+ }
17
+
18
+ // This Source Code Form is subject to the terms of the Mozilla Public
19
+ // License, v2.0. If a copy of the MPL was not distributed with this
20
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
21
+
22
+
23
+ // | { type: "custom"; data: any };
24
+
25
+ class FoxgloveCommunicator {
26
+ #services = new Map();
27
+ #channels = new Map();
28
+ #serviceCalls = new Map();
29
+ getPublicChannels() {
30
+ return [...this.#channels.values()];
31
+ }
32
+ #getPublicServices() {
33
+ return [...this.#services.values()].map(service => service.name);
34
+ }
35
+ handleReconnect() {
36
+ this.#services.clear();
37
+ this.#channels.clear();
38
+ this.send({
39
+ type: "reconnect"
40
+ });
41
+ }
42
+ handleChannelsAdvertisement(channels) {
43
+ for (const channel of channels) {
44
+ const kind = protobufsBySchema[channel.schemaName]?.kind ?? 'annotations';
45
+ this.#channels.set(channel.id, {
46
+ ...channel,
47
+ kind
48
+ });
49
+ }
50
+ const data = this.getPublicChannels();
51
+ this.send({
52
+ type: "channels",
53
+ data
54
+ });
55
+ }
56
+ handleChannelsUnadvertisement(channels) {
57
+ for (const channel of channels) {
58
+ this.#channels.delete(channel);
59
+ }
60
+ const data = this.getPublicChannels();
61
+ this.send({
62
+ type: "channels",
63
+ data
64
+ });
65
+ }
66
+ handleServicesAdvertisement(services) {
67
+ for (const service of services) {
68
+ this.#services.set(service.name, service);
69
+ }
70
+ const data = this.#getPublicServices();
71
+ this.send({
72
+ type: "services",
73
+ data
74
+ });
75
+ }
76
+ handleServicesUnadvertisement(services) {
77
+ for (const unadvertisedService of services) {
78
+ for (const [name, service] of this.#services) {
79
+ if (service.id === unadvertisedService) {
80
+ this.#services.delete(name);
81
+ }
82
+ }
83
+ }
84
+ const data = this.#getPublicServices();
85
+ this.send({
86
+ type: "services",
87
+ data
88
+ });
89
+ }
90
+ handleServiceResponse(response) {
91
+ const name = this.#serviceCalls.get(response.callId) ?? 'unknown';
92
+ this.#serviceCalls.delete(response.callId);
93
+ this.sendWithTransfer({
94
+ type: "service_response",
95
+ data: {
96
+ name,
97
+ ok: true,
98
+ serviceCallId: response.callId,
99
+ buffer: response.data,
100
+ error: null
101
+ }
102
+ }, [response.data.buffer]);
103
+ }
104
+ handleGenericMessage(topic, schema, buffer) {
105
+ this.sendWithTransfer({
106
+ type: "message",
107
+ data: {
108
+ topic,
109
+ schema,
110
+ buffer
111
+ }
112
+ }, [buffer.buffer]);
113
+ }
114
+ callService({
115
+ name,
116
+ serviceCallId,
117
+ body = {}
118
+ }) {
119
+ const service = this.#services.get(name);
120
+ if (!service) {
121
+ this.send({
122
+ type: "service_response",
123
+ data: {
124
+ name,
125
+ serviceCallId,
126
+ ok: false,
127
+ error: "Service was not advertised",
128
+ buffer: null
129
+ }
130
+ });
131
+ return;
132
+ }
133
+ if (this.isReady()) {
134
+ this.#serviceCalls.set(serviceCallId, name);
135
+ this.sendServiceCallRequest({
136
+ serviceId: service.id,
137
+ callId: serviceCallId,
138
+ encoding: "json",
139
+ data: recordToDataView(body)
140
+ });
141
+ } else {
142
+ console.warn('Foxglove Communicator Error: requested service call, but connection is not ready');
143
+ }
144
+ }
145
+ }
146
+
147
+ export { FoxgloveCommunicator as F, recordToDataView as r };
@@ -0,0 +1,76 @@
1
+ import { C as ClientBinaryOpcode, B as BinaryOpcode } from './FoxgloveServer-tJZcJH5-.js';
2
+
3
+ // This Source Code Form is subject to the terms of the Mozilla Public
4
+ // License, v2.0. If a copy of the MPL was not distributed with this
5
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
6
+
7
+ const textEncoder = new TextEncoder();
8
+ const textDecoder = new TextDecoder();
9
+ function makeServiceCallRequest(request) {
10
+ const encoding = textEncoder.encode(request.encoding);
11
+ const payload = new Uint8Array(1 + 4 + 4 + 4 + encoding.length + request.data.byteLength);
12
+ const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
13
+ let offset = 0;
14
+ view.setUint8(offset, ClientBinaryOpcode.SERVICE_CALL_REQUEST);
15
+ offset += 1;
16
+ view.setUint32(offset, request.serviceId, true);
17
+ offset += 4;
18
+ view.setUint32(offset, request.callId, true);
19
+ offset += 4;
20
+ view.setUint32(offset, request.encoding.length, true);
21
+ offset += 4;
22
+ payload.set(encoding, offset);
23
+ offset += encoding.length;
24
+ const data = new Uint8Array(request.data.buffer, request.data.byteOffset, request.data.byteLength);
25
+ payload.set(data, offset);
26
+ return new DataView(payload.buffer);
27
+ }
28
+ function parseMessage(view) {
29
+ let offset = 0;
30
+ const op = view.getUint8(offset);
31
+ offset += 1;
32
+ const subscriptionId = view.getUint32(offset, true);
33
+ offset += 4;
34
+ const timestamp = view.getBigUint64(offset, true);
35
+ offset += 8;
36
+ const data = new DataView(view.buffer, offset);
37
+ return {
38
+ op,
39
+ subscriptionId,
40
+ timestamp,
41
+ data
42
+ };
43
+ }
44
+ function parseServiceCallResponse(view) {
45
+ let offset = 0;
46
+ const op = view.getUint8(offset);
47
+ offset += 1;
48
+ const serviceId = view.getUint32(offset, true);
49
+ offset += 4;
50
+ const callId = view.getUint32(offset, true);
51
+ offset += 4;
52
+ const encodingLength = view.getUint32(offset, true);
53
+ offset += 4;
54
+ const encodingBytes = new DataView(view.buffer, offset, encodingLength);
55
+ const encoding = textDecoder.decode(encodingBytes);
56
+ offset += encodingLength;
57
+ const data = new DataView(view.buffer, offset, view.buffer.byteLength - offset);
58
+ return {
59
+ op,
60
+ serviceId,
61
+ callId,
62
+ encoding,
63
+ data
64
+ };
65
+ }
66
+ function parseFoxgloveMessage(view) {
67
+ const op = view.getUint8(0);
68
+ if (op === BinaryOpcode.MESSAGE_DATA) {
69
+ return parseMessage(view);
70
+ } else if (op === BinaryOpcode.SERVICE_CALL_RESPONSE) {
71
+ return parseServiceCallResponse(view);
72
+ }
73
+ return null;
74
+ }
75
+
76
+ export { makeServiceCallRequest as m, parseFoxgloveMessage as p };
@@ -1,14 +1,13 @@
1
- import { as as LRLanguage, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, aq as styleTags, ar as tags, at as LanguageSupport, av as LRParser } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { as as LRLanguage, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, aq as styleTags, ar as tags, at as LanguageSupport, av as LRParser } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { useReducer, useRef, useCallback, useLayoutEffect, Component, useContext, useState, useEffect, createContext, forwardRef, createElement, cloneElement, useMemo, Profiler, StrictMode } from 'react';
3
3
  import ReactDOM__default from 'react-dom';
4
- import { i as isSymbol, t as toString, k as keys, g as getSymbols$1, s as stubArray, a as arrayPush, b as baseGetAllKeys, c as getTag, d as getAllKeys, e as createAggregator, f as baseGet, h as baseIteratee, j as castPath, l as toKey, m as flatRest, n as arrayMap$1, o as baseSet, p as baseUniq, q as baseFlatten, r as generateUtilityClass, A as AnalyticsContext, u as useMustNotChange, P as PropTypes, v as useCurrentLayoutActions, w as useCurrentLayoutSelector, x as reportError, y as AppError, E as ErrorDisplay, S as Stack$1, z as makeStyles$1, _ as _extends$1, L as Logger, B as useGuaranteedContext, W as WorkspaceContext, C as useAnalytics, D as AppEvent, F as LeftSidebarItemKeys, R as RightSidebarItemKeys, G as usePanelMosaicId, H as useTranslation, I as usePanelCatalog, J as EmptyState, K as isEmpty, M as PanelContext, N as PanelCatalogContext, O as useSelectedPanels, Q as usePanelStateStore, T as useDefaultPanelTitle, U as PANEL_TITLE_CONFIG_KEY, V as noop$4, X as getPanelTypeFromId, Y as useWorkspaceStore, Z as useShallowMemo, $ as TAB_PANEL_TYPE, a0 as WorkspaceStoreSelectors, a1 as difference, a2 as filterMap, a3 as dist$3, a4 as usePanelContext, a5 as useMessagePipeline, a6 as v4, a7 as useHoverValue, a8 as useSetHoverValue, a9 as useClearHoverValue, aa as useAppConfiguration, ab as useMessagePipelineGetter, ac as usePanelSettingsTreeUpdate, ad as PlayerCapabilities, ae as useValueChangedDebugLog, af as assertNever, ag as PlayerPresence, ah as typescript, ai as isEqual, aj as isDesktopApp, ak as createTheme, al as propTypesExports, am as useJsonTreeTheme } from './index-B3F-eA-i.js';
4
+ import { i as isSymbol, t as toString, k as keys, g as getSymbols$1, s as stubArray, a as arrayPush, b as baseGetAllKeys, c as getTag, d as getAllKeys, e as createAggregator, f as baseGet, h as baseIteratee, j as castPath, l as toKey, m as flatRest, n as arrayMap$1, o as baseSet, p as baseUniq, q as baseFlatten, r as generateUtilityClass, A as AnalyticsContext, u as useMustNotChange, P as PropTypes, v as useCurrentLayoutActions, w as useCurrentLayoutSelector, x as reportError, y as AppError, E as ErrorDisplay, S as Stack$1, z as makeStyles$1, _ as _extends$1, L as Logger, B as useGuaranteedContext, W as WorkspaceContext, C as useAnalytics, D as AppEvent, F as LeftSidebarItemKeys, R as RightSidebarItemKeys, G as usePanelMosaicId, H as useTranslation, I as usePanelCatalog, J as EmptyState, K as isEmpty, M as PanelContext, N as PanelCatalogContext, O as useSelectedPanels, Q as usePanelStateStore, T as useDefaultPanelTitle, U as PANEL_TITLE_CONFIG_KEY, V as noop$4, X as getPanelTypeFromId, Y as useWorkspaceStore, Z as useShallowMemo, $ as TAB_PANEL_TYPE, a0 as WorkspaceStoreSelectors, a1 as difference, a2 as filterMap, a3 as dist$3, a4 as usePanelContext, a5 as useMessagePipeline, a6 as v4, a7 as useHoverValue, a8 as useSetHoverValue, a9 as useClearHoverValue, aa as useAppConfiguration, ab as useMessagePipelineGetter, ac as usePanelSettingsTreeUpdate, ad as PlayerCapabilities, ae as useValueChangedDebugLog, af as assertNever, ag as PlayerPresence, ah as typescript, ai as isEqual, aj as isDesktopApp, ak as createTheme, al as propTypesExports, am as useJsonTreeTheme } from './index-Dx5rKk7S.js';
5
5
  import { createStore, useStore } from 'zustand';
6
6
  import { MosaicDragType, MosaicContext, MosaicWindowContext, getOtherBranch, getNodeAtPath } from 'react-mosaic-component';
7
- import { a as getDefaultExportFromCjs, c as commonjsGlobal, g as getAugmentedNamespace, E as EventEmitter } from './worker-utils-BuUq1bP1.js';
7
+ import { a as getDefaultExportFromCjs, c as commonjsGlobal, g as getAugmentedNamespace, E as EventEmitter } from './FoxgloveServer-tJZcJH5-.js';
8
8
  import { Link, Button, alpha, IconButton, Card, CardActionArea, CardMedia, CardContent, Typography, Container, Tooltip, Fade, ListItem, ListItemButton, ListItemText, List, TextField, InputAdornment, Popper, Grow, Paper, ClickAwayListener, Menu, MenuItem, Divider, buttonClasses, Backdrop, Chip, useTheme, alertClasses, darken, lighten, inputBaseClasses, autocompleteClasses, inputClasses, Checkbox, dialogActionsClasses, filledInputClasses, inputAdornmentClasses, listSubheaderClasses, selectClasses, tableCellClasses, ThemeProvider as ThemeProvider$1, SvgIcon, tabsClasses as tabsClasses$1, tabClasses, Tabs, Tab, ListItemIcon } from '@mui/material';
9
9
  import { p as isObject, r as root, E as copyObject, F as keysIn, G as getPrototype, H as cloneArrayBuffer, S as Symbol$1, I as cloneTypedArray, i as isObjectLike, J as nodeUtil, K as baseUnary, L as copyArray, l as isBuffer, N as cloneBuffer, O as initCloneObject, m as Stack, a as isArray, A as assignValue, z as baseAssignValue, x as baseRest, P as isPlainObject$1, y as isArrayLikeObject, B as tinycolor, Q as t$1, C as merge$1, D as instance } from './i18next-C5Qe4-E1.js';
10
10
  import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
@@ -20,8 +20,7 @@ import '@mui/material/styles/createTypography';
20
20
  import require$$1$3 from 'color';
21
21
  import require$$2$1 from 'lodash.curry';
22
22
  import OpenInNewIcon from '@mui/icons-material/OpenInNew';
23
- import './communicator-DKKKAI0H.js';
24
- import 'protobufjs/minimal';
23
+ import './foxglove-protocol-RBwoTi12.js';
25
24
  import 'react-dnd-html5-backend';
26
25
  import 'object-assign';
27
26
  import 'react/jsx-runtime';
@@ -31,7 +30,7 @@ import 'rehype-sanitize';
31
30
  import 'extend';
32
31
  import 'react-icons';
33
32
  import '@pandacss/dev';
34
- import 'hydrated-ws';
33
+ import 'protobufjs/minimal';
35
34
  import 'ms';
36
35
 
37
36
  /** Used to match a single whitespace character. */
@@ -1,14 +1,13 @@
1
- import { au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, aK as html, at as LanguageSupport, aL as parseMixed } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, aK as html, at as LanguageSupport, aL as parseMixed } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aC as ContextTracker, au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ap as foldNodeProp, aM as bracketMatchingHandle, at as LanguageSupport, aI as EditorView, ay as syntaxTree, aJ as EditorSelection } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aC as ContextTracker, au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ap as foldNodeProp, aM as bracketMatchingHandle, at as LanguageSupport, aI as EditorView, ay as syntaxTree, aJ as EditorSelection } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aI as EditorView, aJ as EditorSelection, as as LRLanguage, aq as styleTags, ar as tags, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, at as LanguageSupport, av as LRParser, ay as syntaxTree, aK as html, aL as parseMixed, au as ExternalTokenizer } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aI as EditorView, aJ as EditorSelection, as as LRLanguage, aq as styleTags, ar as tags, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, at as LanguageSupport, av as LRParser, ay as syntaxTree, aK as html, aL as parseMixed, au as ExternalTokenizer } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aq as styleTags, ar as tags, aN as javascriptLanguage, as as LRLanguage, at as LanguageSupport, av as LRParser, aK as html, aL as parseMixed, au as ExternalTokenizer } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aq as styleTags, ar as tags, aN as javascriptLanguage, as as LRLanguage, at as LanguageSupport, av as LRParser, aK as html, aL as parseMixed, au as ExternalTokenizer } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aq as styleTags, ar as tags, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, aH as defineCSSCompletionSource, at as LanguageSupport, av as LRParser, au as ExternalTokenizer } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aq as styleTags, ar as tags, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, aH as defineCSSCompletionSource, at as LanguageSupport, av as LRParser, au as ExternalTokenizer } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aC as ContextTracker, au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport, aL as parseMixed } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aC as ContextTracker, au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport, aL as parseMixed } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { au as ExternalTokenizer, aC as ContextTracker, aq as styleTags, ar as tags, av as LRParser, ay as syntaxTree, aw as ifNotIn, as as LRLanguage, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport, aF as IterMode, ax as completeFromList, aG as NodeWeakMap, aE as snippetCompletion } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { au as ExternalTokenizer, aC as ContextTracker, aq as styleTags, ar as tags, av as LRParser, ay as syntaxTree, aw as ifNotIn, as as LRLanguage, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport, aF as IterMode, ax as completeFromList, aG as NodeWeakMap, aE as snippetCompletion } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';
@@ -1,16 +1,15 @@
1
- import { ImagePanel } from './index-BZjzIIuE.js';
1
+ import { ImagePanel } from './index-BeMujwTx.js';
2
2
  import 'react';
3
3
  import 'react-dom';
4
- import './index-B3F-eA-i.js';
5
- import './worker-utils-BuUq1bP1.js';
6
- import 'hydrated-ws';
7
- import 'ms';
8
- import './communicator-DKKKAI0H.js';
4
+ import './index-Dx5rKk7S.js';
5
+ import './FoxgloveServer-tJZcJH5-.js';
9
6
  import 'protobufjs/minimal';
7
+ import 'ms';
10
8
  import 'zustand';
11
9
  import 'react-mosaic-component';
12
10
  import '@mui/material';
13
11
  import './i18next-C5Qe4-E1.js';
12
+ import './foxglove-protocol-RBwoTi12.js';
14
13
  import 'react-dnd';
15
14
  import 'react-dnd-html5-backend';
16
15
  import '@emotion/react';
@@ -1,14 +1,13 @@
1
- import { aq as styleTags, ar as tags, as as LRLanguage, at as LanguageSupport, av as LRParser, aD as LocalTokenGroup, aK as html, aL as parseMixed, aN as javascriptLanguage } from './index-B3F-eA-i.js';
2
- import './worker-utils-BuUq1bP1.js';
3
- import 'hydrated-ws';
4
- import 'ms';
5
- import './communicator-DKKKAI0H.js';
1
+ import { aq as styleTags, ar as tags, as as LRLanguage, at as LanguageSupport, av as LRParser, aD as LocalTokenGroup, aK as html, aL as parseMixed, aN as javascriptLanguage } from './index-Dx5rKk7S.js';
2
+ import './FoxgloveServer-tJZcJH5-.js';
6
3
  import 'protobufjs/minimal';
4
+ import 'ms';
7
5
  import 'react';
8
6
  import 'zustand';
9
7
  import 'react-mosaic-component';
10
8
  import '@mui/material';
11
9
  import './i18next-C5Qe4-E1.js';
10
+ import './foxglove-protocol-RBwoTi12.js';
12
11
  import 'react-dnd';
13
12
  import 'react-dnd-html5-backend';
14
13
  import '@emotion/react';