@luxonis/depthai-viewer-common 3.7.4 → 3.7.6

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 (524) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.MPL-2.0 +373 -0
  3. package/NOTICE +15 -0
  4. package/REFACTOR_HANDOFF.md +969 -0
  5. package/REFACTOR_PLAN.md +265 -0
  6. package/THIRD_PARTY_NOTICES.md +3624 -0
  7. package/build-utils.sh +45 -0
  8. package/dist/components/DepthAIContext.d.ts +1 -1
  9. package/dist/components/DepthAIContext.d.ts.map +1 -1
  10. package/dist/components/DepthAIContext.js.map +1 -1
  11. package/dist/components/Streams.d.ts.map +1 -1
  12. package/dist/components/Streams.js +10 -3
  13. package/dist/components/Streams.js.map +1 -1
  14. package/dist/dai-connection/connection.d.ts +5 -3
  15. package/dist/dai-connection/connection.d.ts.map +1 -1
  16. package/dist/dai-connection/connection.js +3 -3
  17. package/dist/dai-connection/connection.js.map +1 -1
  18. package/dist/hooks/benchmark-automation.d.ts.map +1 -1
  19. package/dist/hooks/benchmark-automation.js +1 -1
  20. package/dist/hooks/benchmark-automation.js.map +1 -1
  21. package/dist/hooks/connection.d.ts +1 -1
  22. package/dist/hooks/connection.d.ts.map +1 -1
  23. package/dist/hooks/connection.js +21 -0
  24. package/dist/hooks/connection.js.map +1 -1
  25. package/dist/index.css +160 -0
  26. package/dist/models/device-configuration.d.ts +1 -1
  27. package/dist/providers/ConnectionProvider.d.ts.map +1 -1
  28. package/dist/providers/ConnectionProvider.js +1 -1
  29. package/dist/providers/ConnectionProvider.js.map +1 -1
  30. package/dist/providers/VisualizerRuntimeConfigProvider.d.ts +2 -1
  31. package/dist/providers/VisualizerRuntimeConfigProvider.d.ts.map +1 -1
  32. package/dist/providers/VisualizerRuntimeConfigProvider.js +6 -2
  33. package/dist/providers/VisualizerRuntimeConfigProvider.js.map +1 -1
  34. package/dist/utils/vite-dev-fix.js +1 -1
  35. package/dist/utils/vite-dev-fix.js.map +1 -1
  36. package/dist/visualizer/browser-decoder-fixtures-entry.d.ts +2 -0
  37. package/dist/visualizer/browser-decoder-fixtures-entry.d.ts.map +1 -0
  38. package/dist/visualizer/browser-decoder-fixtures-entry.js +28 -0
  39. package/dist/visualizer/browser-decoder-fixtures-entry.js.map +1 -0
  40. package/dist/visualizer/components/CssBaseline.d.ts +5 -0
  41. package/dist/visualizer/components/CssBaseline.d.ts.map +1 -0
  42. package/dist/visualizer/components/CssBaseline.js +5 -0
  43. package/dist/visualizer/components/CssBaseline.js.map +1 -0
  44. package/dist/visualizer/components/EmptyState.d.ts +7 -0
  45. package/dist/visualizer/components/EmptyState.d.ts.map +1 -0
  46. package/dist/visualizer/components/EmptyState.js +5 -0
  47. package/dist/visualizer/components/EmptyState.js.map +1 -0
  48. package/dist/visualizer/components/ErrorBoundary.d.ts +16 -0
  49. package/dist/visualizer/components/ErrorBoundary.d.ts.map +1 -0
  50. package/dist/visualizer/components/ErrorBoundary.js +27 -0
  51. package/dist/visualizer/components/ErrorBoundary.js.map +1 -0
  52. package/dist/visualizer/components/GlobalCss.d.ts +2 -0
  53. package/dist/visualizer/components/GlobalCss.d.ts.map +1 -0
  54. package/dist/visualizer/components/GlobalCss.js +4 -0
  55. package/dist/visualizer/components/GlobalCss.js.map +1 -0
  56. package/dist/visualizer/components/Panel.d.ts +37 -0
  57. package/dist/visualizer/components/Panel.d.ts.map +1 -0
  58. package/dist/visualizer/components/Panel.js +129 -0
  59. package/dist/visualizer/components/Panel.js.map +1 -0
  60. package/dist/visualizer/components/PanelLayout.d.ts +3 -0
  61. package/dist/visualizer/components/PanelLayout.d.ts.map +1 -0
  62. package/dist/visualizer/components/PanelLayout.js +5 -0
  63. package/dist/visualizer/components/PanelLayout.js.map +1 -0
  64. package/dist/visualizer/components/PanelToolbar.d.ts +24 -0
  65. package/dist/visualizer/components/PanelToolbar.d.ts.map +1 -0
  66. package/dist/visualizer/components/PanelToolbar.js +69 -0
  67. package/dist/visualizer/components/PanelToolbar.js.map +1 -0
  68. package/dist/visualizer/components/RemountOnValueChange.d.ts +7 -0
  69. package/dist/visualizer/components/RemountOnValueChange.d.ts.map +1 -0
  70. package/dist/visualizer/components/RemountOnValueChange.js +20 -0
  71. package/dist/visualizer/components/RemountOnValueChange.js.map +1 -0
  72. package/dist/visualizer/components/measure-event-loop-delay.d.ts +2 -0
  73. package/dist/visualizer/components/measure-event-loop-delay.d.ts.map +1 -0
  74. package/dist/visualizer/components/measure-event-loop-delay.js +18 -0
  75. package/dist/visualizer/components/measure-event-loop-delay.js.map +1 -0
  76. package/dist/visualizer/components/shared-interval.d.ts +2 -0
  77. package/dist/visualizer/components/shared-interval.d.ts.map +1 -0
  78. package/dist/visualizer/components/shared-interval.js +50 -0
  79. package/dist/visualizer/components/shared-interval.js.map +1 -0
  80. package/dist/visualizer/components/use-element-width.d.ts +3 -0
  81. package/dist/visualizer/components/use-element-width.d.ts.map +1 -0
  82. package/dist/visualizer/components/use-element-width.js +23 -0
  83. package/dist/visualizer/components/use-element-width.js.map +1 -0
  84. package/dist/visualizer/connection/adapter.d.ts +43 -0
  85. package/dist/visualizer/connection/adapter.d.ts.map +1 -0
  86. package/dist/visualizer/connection/adapter.js +196 -0
  87. package/dist/visualizer/connection/adapter.js.map +1 -0
  88. package/dist/visualizer/connection/communicator.d.ts +94 -0
  89. package/dist/visualizer/connection/communicator.d.ts.map +1 -0
  90. package/dist/visualizer/connection/communicator.js +134 -0
  91. package/dist/visualizer/connection/communicator.js.map +1 -0
  92. package/dist/visualizer/connection/connection.d.ts +54 -0
  93. package/dist/visualizer/connection/connection.d.ts.map +1 -0
  94. package/dist/visualizer/connection/connection.js +155 -0
  95. package/dist/visualizer/connection/connection.js.map +1 -0
  96. package/dist/visualizer/connection/foxglove-client-adapter.d.ts +31 -0
  97. package/dist/visualizer/connection/foxglove-client-adapter.d.ts.map +1 -0
  98. package/dist/visualizer/connection/foxglove-client-adapter.js +125 -0
  99. package/dist/visualizer/connection/foxglove-client-adapter.js.map +1 -0
  100. package/dist/visualizer/connection/foxglove-connection.d.ts +86 -0
  101. package/dist/visualizer/connection/foxglove-connection.d.ts.map +1 -0
  102. package/dist/visualizer/connection/foxglove-connection.js +329 -0
  103. package/dist/visualizer/connection/foxglove-connection.js.map +1 -0
  104. package/dist/visualizer/connection/foxglove-protocol.d.ts +6 -0
  105. package/dist/visualizer/connection/foxglove-protocol.d.ts.map +1 -0
  106. package/dist/visualizer/connection/foxglove-protocol.js +63 -0
  107. package/dist/visualizer/connection/foxglove-protocol.js.map +1 -0
  108. package/dist/visualizer/connection/foxglove-ws-types.d.ts +80 -0
  109. package/dist/visualizer/connection/foxglove-ws-types.d.ts.map +1 -0
  110. package/dist/visualizer/connection/foxglove-ws-types.js +13 -0
  111. package/dist/visualizer/connection/foxglove-ws-types.js.map +1 -0
  112. package/dist/visualizer/connection/webrtc/bridge.d.ts +11 -0
  113. package/dist/visualizer/connection/webrtc/bridge.d.ts.map +1 -0
  114. package/dist/visualizer/connection/webrtc/bridge.js +453 -0
  115. package/dist/visualizer/connection/webrtc/bridge.js.map +1 -0
  116. package/dist/visualizer/connection/webrtc/comms-proxy.d.ts +9 -0
  117. package/dist/visualizer/connection/webrtc/comms-proxy.d.ts.map +1 -0
  118. package/dist/visualizer/connection/webrtc/comms-proxy.js +90 -0
  119. package/dist/visualizer/connection/webrtc/comms-proxy.js.map +1 -0
  120. package/dist/visualizer/connection/webrtc/handler.d.ts +97 -0
  121. package/dist/visualizer/connection/webrtc/handler.d.ts.map +1 -0
  122. package/dist/visualizer/connection/webrtc/handler.js +149 -0
  123. package/dist/visualizer/connection/webrtc/handler.js.map +1 -0
  124. package/dist/visualizer/connection/webrtc/worker.d.ts +2 -0
  125. package/dist/visualizer/connection/webrtc/worker.d.ts.map +1 -0
  126. package/dist/visualizer/connection/webrtc/worker.js +32 -0
  127. package/dist/visualizer/connection/webrtc/worker.js.map +1 -0
  128. package/dist/visualizer/connection/ws/worker.d.ts +17 -0
  129. package/dist/visualizer/connection/ws/worker.d.ts.map +1 -0
  130. package/dist/visualizer/connection/ws/worker.js +161 -0
  131. package/dist/visualizer/connection/ws/worker.js.map +1 -0
  132. package/dist/visualizer/context/AppConfigurationContext.d.ts +9 -0
  133. package/dist/visualizer/context/AppConfigurationContext.d.ts.map +1 -0
  134. package/dist/visualizer/context/AppConfigurationContext.js +4 -0
  135. package/dist/visualizer/context/AppConfigurationContext.js.map +1 -0
  136. package/dist/visualizer/context/ConnectionsProvider.d.ts +5 -0
  137. package/dist/visualizer/context/ConnectionsProvider.d.ts.map +1 -0
  138. package/dist/visualizer/context/ConnectionsProvider.js +8 -0
  139. package/dist/visualizer/context/ConnectionsProvider.js.map +1 -0
  140. package/dist/visualizer/context/CurrentLayoutContext.d.ts +63 -0
  141. package/dist/visualizer/context/CurrentLayoutContext.d.ts.map +1 -0
  142. package/dist/visualizer/context/CurrentLayoutContext.js +4 -0
  143. package/dist/visualizer/context/CurrentLayoutContext.js.map +1 -0
  144. package/dist/visualizer/context/MessagePipelineInternalContext.d.ts +3 -0
  145. package/dist/visualizer/context/MessagePipelineInternalContext.d.ts.map +1 -0
  146. package/dist/visualizer/context/MessagePipelineInternalContext.js +3 -0
  147. package/dist/visualizer/context/MessagePipelineInternalContext.js.map +1 -0
  148. package/dist/visualizer/context/MessagePipelineProvider.d.ts +17 -0
  149. package/dist/visualizer/context/MessagePipelineProvider.d.ts.map +1 -0
  150. package/dist/visualizer/context/MessagePipelineProvider.js +224 -0
  151. package/dist/visualizer/context/MessagePipelineProvider.js.map +1 -0
  152. package/dist/visualizer/context/MinimalCurrentLayoutProvider.d.ts +5 -0
  153. package/dist/visualizer/context/MinimalCurrentLayoutProvider.d.ts.map +1 -0
  154. package/dist/visualizer/context/MinimalCurrentLayoutProvider.js +198 -0
  155. package/dist/visualizer/context/MinimalCurrentLayoutProvider.js.map +1 -0
  156. package/dist/visualizer/context/PanelCatalogContext.d.ts +11 -0
  157. package/dist/visualizer/context/PanelCatalogContext.d.ts.map +1 -0
  158. package/dist/visualizer/context/PanelCatalogContext.js +4 -0
  159. package/dist/visualizer/context/PanelCatalogContext.js.map +1 -0
  160. package/dist/visualizer/context/PanelStateContextProvider.d.ts +5 -0
  161. package/dist/visualizer/context/PanelStateContextProvider.d.ts.map +1 -0
  162. package/dist/visualizer/context/PanelStateContextProvider.js +5 -0
  163. package/dist/visualizer/context/PanelStateContextProvider.js.map +1 -0
  164. package/dist/visualizer/context/TimelineInteractionStateProvider.d.ts +5 -0
  165. package/dist/visualizer/context/TimelineInteractionStateProvider.d.ts.map +1 -0
  166. package/dist/visualizer/context/TimelineInteractionStateProvider.js +5 -0
  167. package/dist/visualizer/context/TimelineInteractionStateProvider.js.map +1 -0
  168. package/dist/visualizer/context/VisualizerContext.d.ts +13 -0
  169. package/dist/visualizer/context/VisualizerContext.d.ts.map +1 -0
  170. package/dist/visualizer/context/VisualizerContext.js +81 -0
  171. package/dist/visualizer/context/VisualizerContext.js.map +1 -0
  172. package/dist/visualizer/context/VisualizerFlatContext.d.ts +10 -0
  173. package/dist/visualizer/context/VisualizerFlatContext.d.ts.map +1 -0
  174. package/dist/visualizer/context/VisualizerFlatContext.js +13 -0
  175. package/dist/visualizer/context/VisualizerFlatContext.js.map +1 -0
  176. package/dist/visualizer/context/message-pipeline-store.d.ts +35 -0
  177. package/dist/visualizer/context/message-pipeline-store.d.ts.map +1 -0
  178. package/dist/visualizer/context/message-pipeline-store.js +275 -0
  179. package/dist/visualizer/context/message-pipeline-store.js.map +1 -0
  180. package/dist/visualizer/context/message-pipeline-types.d.ts +52 -0
  181. package/dist/visualizer/context/message-pipeline-types.d.ts.map +1 -0
  182. package/dist/visualizer/context/message-pipeline-types.js +5 -0
  183. package/dist/visualizer/context/message-pipeline-types.js.map +1 -0
  184. package/dist/visualizer/context/pause-frame.d.ts +4 -0
  185. package/dist/visualizer/context/pause-frame.d.ts.map +1 -0
  186. package/dist/visualizer/context/pause-frame.js +21 -0
  187. package/dist/visualizer/context/pause-frame.js.map +1 -0
  188. package/dist/visualizer/fonts/fonts.css +6 -0
  189. package/dist/visualizer/fonts/ubuntu-mono.ttf +0 -0
  190. package/dist/visualizer/i18n-stubs/i18next-browser-languagedetector.d.ts +7 -0
  191. package/dist/visualizer/i18n-stubs/i18next-browser-languagedetector.d.ts.map +1 -0
  192. package/dist/visualizer/i18n-stubs/i18next-browser-languagedetector.js +12 -0
  193. package/dist/visualizer/i18n-stubs/i18next-browser-languagedetector.js.map +1 -0
  194. package/dist/visualizer/i18n-stubs/i18next.d.ts +24 -0
  195. package/dist/visualizer/i18n-stubs/i18next.d.ts.map +1 -0
  196. package/dist/visualizer/i18n-stubs/i18next.js +46 -0
  197. package/dist/visualizer/i18n-stubs/i18next.js.map +1 -0
  198. package/dist/visualizer/i18n-stubs/react-i18next.d.ts +10 -0
  199. package/dist/visualizer/i18n-stubs/react-i18next.d.ts.map +1 -0
  200. package/dist/visualizer/i18n-stubs/react-i18next.js +15 -0
  201. package/dist/visualizer/i18n-stubs/react-i18next.js.map +1 -0
  202. package/dist/visualizer/index.d.ts +14 -0
  203. package/dist/visualizer/index.d.ts.map +1 -0
  204. package/dist/visualizer/index.js +16 -0
  205. package/dist/visualizer/index.js.map +1 -0
  206. package/dist/visualizer/messaging/browser-decoder-fixtures.d.ts +15 -0
  207. package/dist/visualizer/messaging/browser-decoder-fixtures.d.ts.map +1 -0
  208. package/dist/visualizer/messaging/browser-decoder-fixtures.js +205 -0
  209. package/dist/visualizer/messaging/browser-decoder-fixtures.js.map +1 -0
  210. package/dist/visualizer/messaging/decode-core.d.ts +75 -0
  211. package/dist/visualizer/messaging/decode-core.d.ts.map +1 -0
  212. package/dist/visualizer/messaging/decode-core.js +244 -0
  213. package/dist/visualizer/messaging/decode-core.js.map +1 -0
  214. package/dist/visualizer/messaging/decoder-fixtures.d.ts +14 -0
  215. package/dist/visualizer/messaging/decoder-fixtures.d.ts.map +1 -0
  216. package/dist/visualizer/messaging/decoder-fixtures.js +743 -0
  217. package/dist/visualizer/messaging/decoder-fixtures.js.map +1 -0
  218. package/dist/visualizer/messaging/decoder-harness.d.ts +24 -0
  219. package/dist/visualizer/messaging/decoder-harness.d.ts.map +1 -0
  220. package/dist/visualizer/messaging/decoder-harness.js +24 -0
  221. package/dist/visualizer/messaging/decoder-harness.js.map +1 -0
  222. package/dist/visualizer/messaging/deserialization/detections/constants.d.ts +16 -0
  223. package/dist/visualizer/messaging/deserialization/detections/constants.d.ts.map +1 -0
  224. package/dist/visualizer/messaging/deserialization/detections/constants.js +106 -0
  225. package/dist/visualizer/messaging/deserialization/detections/constants.js.map +1 -0
  226. package/dist/visualizer/messaging/deserialization/detections/custom.d.ts +11 -0
  227. package/dist/visualizer/messaging/deserialization/detections/custom.d.ts.map +1 -0
  228. package/dist/visualizer/messaging/deserialization/detections/custom.js +62 -0
  229. package/dist/visualizer/messaging/deserialization/detections/custom.js.map +1 -0
  230. package/dist/visualizer/messaging/deserialization/detections/detection.d.ts +14 -0
  231. package/dist/visualizer/messaging/deserialization/detections/detection.d.ts.map +1 -0
  232. package/dist/visualizer/messaging/deserialization/detections/detection.js +296 -0
  233. package/dist/visualizer/messaging/deserialization/detections/detection.js.map +1 -0
  234. package/dist/visualizer/messaging/deserialization/detections/utils.d.ts +9 -0
  235. package/dist/visualizer/messaging/deserialization/detections/utils.d.ts.map +1 -0
  236. package/dist/visualizer/messaging/deserialization/detections/utils.js +22 -0
  237. package/dist/visualizer/messaging/deserialization/detections/utils.js.map +1 -0
  238. package/dist/visualizer/messaging/deserialization/imu/imu.d.ts +5 -0
  239. package/dist/visualizer/messaging/deserialization/imu/imu.d.ts.map +1 -0
  240. package/dist/visualizer/messaging/deserialization/imu/imu.js +27 -0
  241. package/dist/visualizer/messaging/deserialization/imu/imu.js.map +1 -0
  242. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts +2 -0
  243. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts.map +1 -0
  244. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js +45 -0
  245. package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js.map +1 -0
  246. package/dist/visualizer/messaging/deserialization/pointcloud/point-cloud.d.ts +9 -0
  247. package/dist/visualizer/messaging/deserialization/pointcloud/point-cloud.d.ts.map +1 -0
  248. package/dist/visualizer/messaging/deserialization/pointcloud/point-cloud.js +46 -0
  249. package/dist/visualizer/messaging/deserialization/pointcloud/point-cloud.js.map +1 -0
  250. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts +2 -0
  251. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts.map +1 -0
  252. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +477 -0
  253. package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -0
  254. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts +35 -0
  255. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts.map +1 -0
  256. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.js +344 -0
  257. package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.js.map +1 -0
  258. package/dist/visualizer/messaging/deserialization/pointcloud/utils.d.ts +18 -0
  259. package/dist/visualizer/messaging/deserialization/pointcloud/utils.d.ts.map +1 -0
  260. package/dist/visualizer/messaging/deserialization/pointcloud/utils.js +58 -0
  261. package/dist/visualizer/messaging/deserialization/pointcloud/utils.js.map +1 -0
  262. package/dist/visualizer/messaging/deserialization/segmentation/segmentation-mask.d.ts +9 -0
  263. package/dist/visualizer/messaging/deserialization/segmentation/segmentation-mask.d.ts.map +1 -0
  264. package/dist/visualizer/messaging/deserialization/segmentation/segmentation-mask.js +39 -0
  265. package/dist/visualizer/messaging/deserialization/segmentation/segmentation-mask.js.map +1 -0
  266. package/dist/visualizer/messaging/deserialization/video/color.d.ts +9 -0
  267. package/dist/visualizer/messaging/deserialization/video/color.d.ts.map +1 -0
  268. package/dist/visualizer/messaging/deserialization/video/color.js +27 -0
  269. package/dist/visualizer/messaging/deserialization/video/color.js.map +1 -0
  270. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.d.ts +5 -0
  271. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.d.ts.map +1 -0
  272. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.js +124 -0
  273. package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.js.map +1 -0
  274. package/dist/visualizer/messaging/deserialization/video/depth-to-pointcloud.d.ts +13 -0
  275. package/dist/visualizer/messaging/deserialization/video/depth-to-pointcloud.d.ts.map +1 -0
  276. package/dist/visualizer/messaging/deserialization/video/depth-to-pointcloud.js +37 -0
  277. package/dist/visualizer/messaging/deserialization/video/depth-to-pointcloud.js.map +1 -0
  278. package/dist/visualizer/messaging/deserialization/video/depth.d.ts +15 -0
  279. package/dist/visualizer/messaging/deserialization/video/depth.d.ts.map +1 -0
  280. package/dist/visualizer/messaging/deserialization/video/depth.js +126 -0
  281. package/dist/visualizer/messaging/deserialization/video/depth.js.map +1 -0
  282. package/dist/visualizer/messaging/deserialization/video/h264.d.ts +81 -0
  283. package/dist/visualizer/messaging/deserialization/video/h264.d.ts.map +1 -0
  284. package/dist/visualizer/messaging/deserialization/video/h264.js +634 -0
  285. package/dist/visualizer/messaging/deserialization/video/h264.js.map +1 -0
  286. package/dist/visualizer/messaging/deserialization/video/h265.d.ts +16 -0
  287. package/dist/visualizer/messaging/deserialization/video/h265.d.ts.map +1 -0
  288. package/dist/visualizer/messaging/deserialization/video/h265.js +448 -0
  289. package/dist/visualizer/messaging/deserialization/video/h265.js.map +1 -0
  290. package/dist/visualizer/messaging/deserialization/video/mjpeg.d.ts +11 -0
  291. package/dist/visualizer/messaging/deserialization/video/mjpeg.d.ts.map +1 -0
  292. package/dist/visualizer/messaging/deserialization/video/mjpeg.js +89 -0
  293. package/dist/visualizer/messaging/deserialization/video/mjpeg.js.map +1 -0
  294. package/dist/visualizer/messaging/deserialization/video/mono.d.ts +8 -0
  295. package/dist/visualizer/messaging/deserialization/video/mono.d.ts.map +1 -0
  296. package/dist/visualizer/messaging/deserialization/video/mono.js +27 -0
  297. package/dist/visualizer/messaging/deserialization/video/mono.js.map +1 -0
  298. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.d.ts +18 -0
  299. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.d.ts.map +1 -0
  300. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.js +651 -0
  301. package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.js.map +1 -0
  302. package/dist/visualizer/messaging/deserialization.worker.d.ts +15 -0
  303. package/dist/visualizer/messaging/deserialization.worker.d.ts.map +1 -0
  304. package/dist/visualizer/messaging/deserialization.worker.js +96 -0
  305. package/dist/visualizer/messaging/deserialization.worker.js.map +1 -0
  306. package/dist/visualizer/messaging/message-event.d.ts +114 -0
  307. package/dist/visualizer/messaging/message-event.d.ts.map +1 -0
  308. package/dist/visualizer/messaging/message-event.js +80 -0
  309. package/dist/visualizer/messaging/message-event.js.map +1 -0
  310. package/dist/visualizer/messaging/message-handler.d.ts +10 -0
  311. package/dist/visualizer/messaging/message-handler.d.ts.map +1 -0
  312. package/dist/visualizer/messaging/message-handler.js +436 -0
  313. package/dist/visualizer/messaging/message-handler.js.map +1 -0
  314. package/dist/visualizer/messaging/message.d.ts +32 -0
  315. package/dist/visualizer/messaging/message.d.ts.map +1 -0
  316. package/dist/visualizer/messaging/message.js +5 -0
  317. package/dist/visualizer/messaging/message.js.map +1 -0
  318. package/dist/visualizer/messaging/parse-utils.d.ts +23 -0
  319. package/dist/visualizer/messaging/parse-utils.d.ts.map +1 -0
  320. package/dist/visualizer/messaging/parse-utils.js +76 -0
  321. package/dist/visualizer/messaging/parse-utils.js.map +1 -0
  322. package/dist/visualizer/messaging/protobuf.d.ts +109 -0
  323. package/dist/visualizer/messaging/protobuf.d.ts.map +1 -0
  324. package/dist/visualizer/messaging/protobuf.js +81 -0
  325. package/dist/visualizer/messaging/protobuf.js.map +1 -0
  326. package/dist/visualizer/messaging/schema-constants.d.ts +21 -0
  327. package/dist/visualizer/messaging/schema-constants.d.ts.map +1 -0
  328. package/dist/visualizer/messaging/schema-constants.js +24 -0
  329. package/dist/visualizer/messaging/schema-constants.js.map +1 -0
  330. package/dist/visualizer/messaging/stream-diagnostics.d.ts +40 -0
  331. package/dist/visualizer/messaging/stream-diagnostics.d.ts.map +1 -0
  332. package/dist/visualizer/messaging/stream-diagnostics.js +257 -0
  333. package/dist/visualizer/messaging/stream-diagnostics.js.map +1 -0
  334. package/dist/visualizer/messaging/utils.d.ts +14 -0
  335. package/dist/visualizer/messaging/utils.d.ts.map +1 -0
  336. package/dist/visualizer/messaging/utils.js +109 -0
  337. package/dist/visualizer/messaging/utils.js.map +1 -0
  338. package/dist/visualizer/output.css +4337 -0
  339. package/dist/visualizer/panels/ImagePanel.d.ts +35 -0
  340. package/dist/visualizer/panels/ImagePanel.d.ts.map +1 -0
  341. package/dist/visualizer/panels/ImagePanel.js +26 -0
  342. package/dist/visualizer/panels/ImagePanel.js.map +1 -0
  343. package/dist/visualizer/panels/PointCloudPanel.d.ts +32 -0
  344. package/dist/visualizer/panels/PointCloudPanel.d.ts.map +1 -0
  345. package/dist/visualizer/panels/PointCloudPanel.js +62 -0
  346. package/dist/visualizer/panels/PointCloudPanel.js.map +1 -0
  347. package/dist/visualizer/panels/image/ImageCanvasRenderer.d.ts +27 -0
  348. package/dist/visualizer/panels/image/ImageCanvasRenderer.d.ts.map +1 -0
  349. package/dist/visualizer/panels/image/ImageCanvasRenderer.js +715 -0
  350. package/dist/visualizer/panels/image/ImageCanvasRenderer.js.map +1 -0
  351. package/dist/visualizer/panels/image/annotation-overlay.d.ts +10 -0
  352. package/dist/visualizer/panels/image/annotation-overlay.d.ts.map +1 -0
  353. package/dist/visualizer/panels/image/annotation-overlay.js +113 -0
  354. package/dist/visualizer/panels/image/annotation-overlay.js.map +1 -0
  355. package/dist/visualizer/panels/image/raw-image-decoder.d.ts +11 -0
  356. package/dist/visualizer/panels/image/raw-image-decoder.d.ts.map +1 -0
  357. package/dist/visualizer/panels/image/raw-image-decoder.js +184 -0
  358. package/dist/visualizer/panels/image/raw-image-decoder.js.map +1 -0
  359. package/dist/visualizer/panels/image/raw-image-decoder.worker.d.ts +2 -0
  360. package/dist/visualizer/panels/image/raw-image-decoder.worker.d.ts.map +1 -0
  361. package/dist/visualizer/panels/image/raw-image-decoder.worker.js +40 -0
  362. package/dist/visualizer/panels/image/raw-image-decoder.worker.js.map +1 -0
  363. package/dist/visualizer/panels/image/raw-image-pixel-decoders.d.ts +35 -0
  364. package/dist/visualizer/panels/image/raw-image-pixel-decoders.d.ts.map +1 -0
  365. package/dist/visualizer/panels/image/raw-image-pixel-decoders.js +352 -0
  366. package/dist/visualizer/panels/image/raw-image-pixel-decoders.js.map +1 -0
  367. package/dist/visualizer/panels/image/segmentation-mask-overlay.d.ts +10 -0
  368. package/dist/visualizer/panels/image/segmentation-mask-overlay.d.ts.map +1 -0
  369. package/dist/visualizer/panels/image/segmentation-mask-overlay.js +56 -0
  370. package/dist/visualizer/panels/image/segmentation-mask-overlay.js.map +1 -0
  371. package/dist/visualizer/panels/image/webgl-image-renderer.d.ts +48 -0
  372. package/dist/visualizer/panels/image/webgl-image-renderer.d.ts.map +1 -0
  373. package/dist/visualizer/panels/image/webgl-image-renderer.js +726 -0
  374. package/dist/visualizer/panels/image/webgl-image-renderer.js.map +1 -0
  375. package/dist/visualizer/panels/image/worker-image-decoder.d.ts +20 -0
  376. package/dist/visualizer/panels/image/worker-image-decoder.d.ts.map +1 -0
  377. package/dist/visualizer/panels/image/worker-image-decoder.js +134 -0
  378. package/dist/visualizer/panels/image/worker-image-decoder.js.map +1 -0
  379. package/dist/visualizer/panels/panel-renderer.d.ts +2 -0
  380. package/dist/visualizer/panels/panel-renderer.d.ts.map +1 -0
  381. package/dist/visualizer/panels/panel-renderer.js +5 -0
  382. package/dist/visualizer/panels/panel-renderer.js.map +1 -0
  383. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.d.ts +35 -0
  384. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.d.ts.map +1 -0
  385. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.js +882 -0
  386. package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.js.map +1 -0
  387. package/dist/visualizer/panels/pointcloud-camera.d.ts +14 -0
  388. package/dist/visualizer/panels/pointcloud-camera.d.ts.map +1 -0
  389. package/dist/visualizer/panels/pointcloud-camera.js +16 -0
  390. package/dist/visualizer/panels/pointcloud-camera.js.map +1 -0
  391. package/dist/visualizer/protobuf.generated/EncodedFrame.d.ts +76 -0
  392. package/dist/visualizer/protobuf.generated/EncodedFrame.d.ts.map +1 -0
  393. package/dist/visualizer/protobuf.generated/EncodedFrame.js +448 -0
  394. package/dist/visualizer/protobuf.generated/EncodedFrame.js.map +1 -0
  395. package/dist/visualizer/protobuf.generated/Event.d.ts +171 -0
  396. package/dist/visualizer/protobuf.generated/Event.d.ts.map +1 -0
  397. package/dist/visualizer/protobuf.generated/Event.js +1805 -0
  398. package/dist/visualizer/protobuf.generated/Event.js.map +1 -0
  399. package/dist/visualizer/protobuf.generated/IMUData.d.ts +84 -0
  400. package/dist/visualizer/protobuf.generated/IMUData.d.ts.map +1 -0
  401. package/dist/visualizer/protobuf.generated/IMUData.js +745 -0
  402. package/dist/visualizer/protobuf.generated/IMUData.js.map +1 -0
  403. package/dist/visualizer/protobuf.generated/ImageAnnotations.d.ts +74 -0
  404. package/dist/visualizer/protobuf.generated/ImageAnnotations.d.ts.map +1 -0
  405. package/dist/visualizer/protobuf.generated/ImageAnnotations.js +675 -0
  406. package/dist/visualizer/protobuf.generated/ImageAnnotations.js.map +1 -0
  407. package/dist/visualizer/protobuf.generated/ImgDetections.d.ts +48 -0
  408. package/dist/visualizer/protobuf.generated/ImgDetections.d.ts.map +1 -0
  409. package/dist/visualizer/protobuf.generated/ImgDetections.js +429 -0
  410. package/dist/visualizer/protobuf.generated/ImgDetections.js.map +1 -0
  411. package/dist/visualizer/protobuf.generated/ImgFrame.d.ts +117 -0
  412. package/dist/visualizer/protobuf.generated/ImgFrame.d.ts.map +1 -0
  413. package/dist/visualizer/protobuf.generated/ImgFrame.js +699 -0
  414. package/dist/visualizer/protobuf.generated/ImgFrame.js.map +1 -0
  415. package/dist/visualizer/protobuf.generated/PointCloudData.d.ts +43 -0
  416. package/dist/visualizer/protobuf.generated/PointCloudData.d.ts.map +1 -0
  417. package/dist/visualizer/protobuf.generated/PointCloudData.js +348 -0
  418. package/dist/visualizer/protobuf.generated/PointCloudData.js.map +1 -0
  419. package/dist/visualizer/protobuf.generated/RGBDData.d.ts +37 -0
  420. package/dist/visualizer/protobuf.generated/RGBDData.d.ts.map +1 -0
  421. package/dist/visualizer/protobuf.generated/RGBDData.js +205 -0
  422. package/dist/visualizer/protobuf.generated/RGBDData.js.map +1 -0
  423. package/dist/visualizer/protobuf.generated/SegmentationMask.d.ts +36 -0
  424. package/dist/visualizer/protobuf.generated/SegmentationMask.d.ts.map +1 -0
  425. package/dist/visualizer/protobuf.generated/SegmentationMask.js +238 -0
  426. package/dist/visualizer/protobuf.generated/SegmentationMask.js.map +1 -0
  427. package/dist/visualizer/protobuf.generated/SpatialImgDetections.d.ts +88 -0
  428. package/dist/visualizer/protobuf.generated/SpatialImgDetections.d.ts.map +1 -0
  429. package/dist/visualizer/protobuf.generated/SpatialImgDetections.js +775 -0
  430. package/dist/visualizer/protobuf.generated/SpatialImgDetections.js.map +1 -0
  431. package/dist/visualizer/protobuf.generated/common.d.ts +175 -0
  432. package/dist/visualizer/protobuf.generated/common.d.ts.map +1 -0
  433. package/dist/visualizer/protobuf.generated/common.js +1796 -0
  434. package/dist/visualizer/protobuf.generated/common.js.map +1 -0
  435. package/dist/visualizer/runtime-config.d.ts +2 -0
  436. package/dist/visualizer/runtime-config.d.ts.map +1 -0
  437. package/dist/visualizer/runtime-config.js +5 -0
  438. package/dist/visualizer/runtime-config.js.map +1 -0
  439. package/dist/visualizer/utils/artificial-worker.d.ts +10 -0
  440. package/dist/visualizer/utils/artificial-worker.d.ts.map +1 -0
  441. package/dist/visualizer/utils/artificial-worker.js +31 -0
  442. package/dist/visualizer/utils/artificial-worker.js.map +1 -0
  443. package/dist/visualizer/utils/async.d.ts +3 -0
  444. package/dist/visualizer/utils/async.d.ts.map +1 -0
  445. package/dist/visualizer/utils/async.js +35 -0
  446. package/dist/visualizer/utils/async.js.map +1 -0
  447. package/dist/visualizer/utils/browser-storage.d.ts +3 -0
  448. package/dist/visualizer/utils/browser-storage.d.ts.map +1 -0
  449. package/dist/visualizer/utils/browser-storage.js +16 -0
  450. package/dist/visualizer/utils/browser-storage.js.map +1 -0
  451. package/dist/visualizer/utils/callback-manager.d.ts +7 -0
  452. package/dist/visualizer/utils/callback-manager.d.ts.map +1 -0
  453. package/dist/visualizer/utils/callback-manager.js +21 -0
  454. package/dist/visualizer/utils/callback-manager.js.map +1 -0
  455. package/dist/visualizer/utils/comlink-wrap.d.ts +7 -0
  456. package/dist/visualizer/utils/comlink-wrap.d.ts.map +1 -0
  457. package/dist/visualizer/utils/comlink-wrap.js +15 -0
  458. package/dist/visualizer/utils/comlink-wrap.js.map +1 -0
  459. package/dist/visualizer/utils/compatibility.d.ts +2 -0
  460. package/dist/visualizer/utils/compatibility.d.ts.map +1 -0
  461. package/dist/visualizer/utils/compatibility.js +19 -0
  462. package/dist/visualizer/utils/compatibility.js.map +1 -0
  463. package/dist/visualizer/utils/config-store.d.ts +10 -0
  464. package/dist/visualizer/utils/config-store.d.ts.map +1 -0
  465. package/dist/visualizer/utils/config-store.js +22 -0
  466. package/dist/visualizer/utils/config-store.js.map +1 -0
  467. package/dist/visualizer/utils/encoding.d.ts +4 -0
  468. package/dist/visualizer/utils/encoding.d.ts.map +1 -0
  469. package/dist/visualizer/utils/encoding.js +23 -0
  470. package/dist/visualizer/utils/encoding.js.map +1 -0
  471. package/dist/visualizer/utils/error.d.ts +20 -0
  472. package/dist/visualizer/utils/error.d.ts.map +1 -0
  473. package/dist/visualizer/utils/error.js +79 -0
  474. package/dist/visualizer/utils/error.js.map +1 -0
  475. package/dist/visualizer/utils/estimate-object-size.d.ts +2 -0
  476. package/dist/visualizer/utils/estimate-object-size.d.ts.map +1 -0
  477. package/dist/visualizer/utils/estimate-object-size.js +60 -0
  478. package/dist/visualizer/utils/estimate-object-size.js.map +1 -0
  479. package/dist/visualizer/utils/frame-store.d.ts +13 -0
  480. package/dist/visualizer/utils/frame-store.d.ts.map +1 -0
  481. package/dist/visualizer/utils/frame-store.js +43 -0
  482. package/dist/visualizer/utils/frame-store.js.map +1 -0
  483. package/dist/visualizer/utils/imu-manager.d.ts +13 -0
  484. package/dist/visualizer/utils/imu-manager.d.ts.map +1 -0
  485. package/dist/visualizer/utils/imu-manager.js +36 -0
  486. package/dist/visualizer/utils/imu-manager.js.map +1 -0
  487. package/dist/visualizer/utils/logger.d.ts +13 -0
  488. package/dist/visualizer/utils/logger.d.ts.map +1 -0
  489. package/dist/visualizer/utils/logger.js +47 -0
  490. package/dist/visualizer/utils/logger.js.map +1 -0
  491. package/dist/visualizer/utils/metrics-manager.d.ts +33 -0
  492. package/dist/visualizer/utils/metrics-manager.d.ts.map +1 -0
  493. package/dist/visualizer/utils/metrics-manager.js +113 -0
  494. package/dist/visualizer/utils/metrics-manager.js.map +1 -0
  495. package/dist/visualizer/utils/player-types.d.ts +65 -0
  496. package/dist/visualizer/utils/player-types.d.ts.map +1 -0
  497. package/dist/visualizer/utils/player-types.js +22 -0
  498. package/dist/visualizer/utils/player-types.js.map +1 -0
  499. package/dist/visualizer/utils/poitcloud-sync.d.ts +13 -0
  500. package/dist/visualizer/utils/poitcloud-sync.d.ts.map +1 -0
  501. package/dist/visualizer/utils/poitcloud-sync.js +95 -0
  502. package/dist/visualizer/utils/poitcloud-sync.js.map +1 -0
  503. package/dist/visualizer/utils/runtime-config.d.ts +23 -0
  504. package/dist/visualizer/utils/runtime-config.d.ts.map +1 -0
  505. package/dist/visualizer/utils/runtime-config.js +76 -0
  506. package/dist/visualizer/utils/runtime-config.js.map +1 -0
  507. package/dist/visualizer/utils/segmentation-colors.d.ts +9 -0
  508. package/dist/visualizer/utils/segmentation-colors.d.ts.map +1 -0
  509. package/dist/visualizer/utils/segmentation-colors.js +42 -0
  510. package/dist/visualizer/utils/segmentation-colors.js.map +1 -0
  511. package/dist/visualizer/utils/time.d.ts +7 -0
  512. package/dist/visualizer/utils/time.d.ts.map +1 -0
  513. package/dist/visualizer/utils/time.js +24 -0
  514. package/dist/visualizer/utils/time.js.map +1 -0
  515. package/dist/visualizer/utils/use-theme-mode.d.ts +3 -0
  516. package/dist/visualizer/utils/use-theme-mode.d.ts.map +1 -0
  517. package/dist/visualizer/utils/use-theme-mode.js +71 -0
  518. package/dist/visualizer/utils/use-theme-mode.js.map +1 -0
  519. package/package.json +33 -8
  520. package/protobuf-gen.sh +87 -0
  521. package/protobuf-gen.win.ps1 +130 -0
  522. package/scripts/browser-decoder-fixtures.html +54 -0
  523. package/scripts/fixtures.vite.config.mjs +30 -0
  524. package/scripts/run-decoder-fixtures.mjs +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poitcloud-sync.js","sourceRoot":"","sources":["../../../src/visualizer/utils/poitcloud-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { NeuralCameraIntrinsics } from "../messaging/deserialization/pointcloud/utils.js";
2
+ export type RuntimeConfig = {
3
+ neuralCameraIntrinsics?: NeuralCameraIntrinsics;
4
+ stereoDepthMaxValue?: number;
5
+ perspective?: boolean;
6
+ debugLogs?: boolean;
7
+ streamDiagnostics?: boolean;
8
+ };
9
+ export type RuntimeConfigListener = (runtimeConfig: Readonly<RuntimeConfig>) => void;
10
+ type DecodeRuntimeSettings = {
11
+ neuralCameraIntrinsics: NeuralCameraIntrinsics;
12
+ stereoDepthMaxValue: number;
13
+ };
14
+ export declare function getRuntimeConfig(): Readonly<RuntimeConfig>;
15
+ export declare function setRuntimeConfig(runtimeConfig: Readonly<RuntimeConfig>): Readonly<RuntimeConfig>;
16
+ export declare function resetRuntimeConfig(runtimeConfig?: Readonly<RuntimeConfig>): Readonly<RuntimeConfig>;
17
+ export declare function subscribeRuntimeConfig(listener: RuntimeConfigListener): () => void;
18
+ export declare function getDecodeRuntimeSettings(): DecodeRuntimeSettings;
19
+ export declare function getNeuralCameraIntrinsics(): NeuralCameraIntrinsics | undefined;
20
+ export declare function getStereoDepthMaxValue(): number;
21
+ export declare function getPerspective(defaultPerspective: boolean): boolean;
22
+ export {};
23
+ //# sourceMappingURL=runtime-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/runtime-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAI/F,MAAM,MAAM,aAAa,GAAG;IAC1B,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;AAErF,KAAK,qBAAqB,GAAG;IAC3B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AA6CF,wBAAgB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,CAE1D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAOhG;AAED,wBAAgB,kBAAkB,CAChC,aAAa,GAAE,QAAQ,CAAC,aAAa,CAA0B,GAC9D,QAAQ,CAAC,aAAa,CAAC,CAIzB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI,CAKlF;AAED,wBAAgB,wBAAwB,IAAI,qBAAqB,CAMhE;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,GAAG,SAAS,CAE9E;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,cAAc,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,76 @@
1
+ // This Source Code Form is subject to the terms of the Mozilla Public
2
+ // License, v2.0. If a copy of the MPL was not distributed with this
3
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
+ const DEFAULT_STEREO_DEPTH_MAX_VALUE = 8000;
5
+ const EMPTY_NEURAL_CAMERA_INTRINSICS = {};
6
+ const DEFAULT_RUNTIME_CONFIG = Object.freeze({
7
+ debugLogs: false,
8
+ streamDiagnostics: false,
9
+ });
10
+ function normalizeStereoDepthMaxValue(value) {
11
+ if (value == undefined) {
12
+ return undefined;
13
+ }
14
+ return Number.isFinite(value) && value > 0 ? value : DEFAULT_STEREO_DEPTH_MAX_VALUE;
15
+ }
16
+ function normalizeRuntimeConfig(runtimeConfig) {
17
+ return {
18
+ neuralCameraIntrinsics: runtimeConfig?.neuralCameraIntrinsics,
19
+ stereoDepthMaxValue: normalizeStereoDepthMaxValue(runtimeConfig?.stereoDepthMaxValue),
20
+ perspective: runtimeConfig?.perspective,
21
+ debugLogs: runtimeConfig?.debugLogs ?? DEFAULT_RUNTIME_CONFIG.debugLogs,
22
+ streamDiagnostics: runtimeConfig?.streamDiagnostics ?? DEFAULT_RUNTIME_CONFIG.streamDiagnostics,
23
+ };
24
+ }
25
+ function readInitialRuntimeConfig() {
26
+ return normalizeRuntimeConfig({});
27
+ }
28
+ let currentRuntimeConfig = readInitialRuntimeConfig();
29
+ const runtimeConfigListeners = new Set();
30
+ function applyRuntimeConfig(runtimeConfig) {
31
+ const normalizedRuntimeConfig = normalizeRuntimeConfig(runtimeConfig);
32
+ return normalizedRuntimeConfig;
33
+ }
34
+ function notifyRuntimeConfigListeners() {
35
+ for (const listener of runtimeConfigListeners) {
36
+ listener(currentRuntimeConfig);
37
+ }
38
+ }
39
+ export function getRuntimeConfig() {
40
+ return currentRuntimeConfig;
41
+ }
42
+ export function setRuntimeConfig(runtimeConfig) {
43
+ currentRuntimeConfig = applyRuntimeConfig({
44
+ ...currentRuntimeConfig,
45
+ ...runtimeConfig,
46
+ });
47
+ notifyRuntimeConfigListeners();
48
+ return currentRuntimeConfig;
49
+ }
50
+ export function resetRuntimeConfig(runtimeConfig = DEFAULT_RUNTIME_CONFIG) {
51
+ currentRuntimeConfig = applyRuntimeConfig(runtimeConfig);
52
+ notifyRuntimeConfigListeners();
53
+ return currentRuntimeConfig;
54
+ }
55
+ export function subscribeRuntimeConfig(listener) {
56
+ runtimeConfigListeners.add(listener);
57
+ return () => {
58
+ runtimeConfigListeners.delete(listener);
59
+ };
60
+ }
61
+ export function getDecodeRuntimeSettings() {
62
+ return {
63
+ neuralCameraIntrinsics: currentRuntimeConfig.neuralCameraIntrinsics ?? EMPTY_NEURAL_CAMERA_INTRINSICS,
64
+ stereoDepthMaxValue: currentRuntimeConfig.stereoDepthMaxValue ?? DEFAULT_STEREO_DEPTH_MAX_VALUE,
65
+ };
66
+ }
67
+ export function getNeuralCameraIntrinsics() {
68
+ return currentRuntimeConfig.neuralCameraIntrinsics;
69
+ }
70
+ export function getStereoDepthMaxValue() {
71
+ return currentRuntimeConfig.stereoDepthMaxValue ?? DEFAULT_STEREO_DEPTH_MAX_VALUE;
72
+ }
73
+ export function getPerspective(defaultPerspective) {
74
+ return currentRuntimeConfig.perspective ?? defaultPerspective;
75
+ }
76
+ //# sourceMappingURL=runtime-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../../src/visualizer/utils/runtime-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type SegmentationColor = {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ a: number;
6
+ };
7
+ export declare function getSegmentationClassColor(classId: number): SegmentationColor | undefined;
8
+ export declare function isTransparentSegmentationClass(classId: number): boolean;
9
+ //# sourceMappingURL=segmentation-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmentation-colors.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/segmentation-colors.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAMF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAQxF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvE"}
@@ -0,0 +1,42 @@
1
+ // This Source Code Form is subject to the terms of the Mozilla Public
2
+ // License, v2.0. If a copy of the MPL was not distributed with this
3
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
+ const SEGMENTATION_ALPHA = 0.5;
5
+ const SEGMENTATION_HUE_OFFSET_DEGREES = 210;
6
+ const GOLDEN_ANGLE_DEGREES = 137.508;
7
+ export function getSegmentationClassColor(classId) {
8
+ if (isTransparentSegmentationClass(classId)) {
9
+ return undefined;
10
+ }
11
+ const hue = (((classId * GOLDEN_ANGLE_DEGREES + SEGMENTATION_HUE_OFFSET_DEGREES) % 360) + 360) % 360;
12
+ return hslToRgb(hue, 68, 48, SEGMENTATION_ALPHA);
13
+ }
14
+ export function isTransparentSegmentationClass(classId) {
15
+ return classId < 0 || classId === 255;
16
+ }
17
+ function hslToRgb(hue, saturationPercent, lightnessPercent, alpha) {
18
+ const saturation = saturationPercent / 100;
19
+ const lightness = lightnessPercent / 100;
20
+ const chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;
21
+ const huePrime = hue / 60;
22
+ const x = chroma * (1 - Math.abs((huePrime % 2) - 1));
23
+ const m = lightness - chroma / 2;
24
+ const [red, green, blue] = huePrime < 1
25
+ ? [chroma, x, 0]
26
+ : huePrime < 2
27
+ ? [x, chroma, 0]
28
+ : huePrime < 3
29
+ ? [0, chroma, x]
30
+ : huePrime < 4
31
+ ? [0, x, chroma]
32
+ : huePrime < 5
33
+ ? [x, 0, chroma]
34
+ : [chroma, 0, x];
35
+ return {
36
+ r: Math.round((red + m) * 255),
37
+ g: Math.round((green + m) * 255),
38
+ b: Math.round((blue + m) * 255),
39
+ a: alpha,
40
+ };
41
+ }
42
+ //# sourceMappingURL=segmentation-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmentation-colors.js","sourceRoot":"","sources":["../../../src/visualizer/utils/segmentation-colors.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAS1D,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAErC,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,IAAI,8BAA8B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GACP,CAAC,CAAC,CAAC,OAAO,GAAG,oBAAoB,GAAG,+BAA+B,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3F,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAe;IAC5D,OAAO,OAAO,GAAG,CAAC,IAAI,OAAO,KAAK,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,QAAQ,CACf,GAAW,EACX,iBAAyB,EACzB,gBAAwB,EACxB,KAAa;IAEb,MAAM,UAAU,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAC3C,MAAM,SAAS,GAAG,gBAAgB,GAAG,GAAG,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IAC9D,MAAM,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GACtB,QAAQ,GAAG,CAAC;QACV,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC,CAAC,QAAQ,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAChB,CAAC,CAAC,QAAQ,GAAG,CAAC;gBACZ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChB,CAAC,CAAC,QAAQ,GAAG,CAAC;oBACZ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;oBAChB,CAAC,CAAC,QAAQ,GAAG,CAAC;wBACZ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;wBAChB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7B,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAChC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC/B,CAAC,EAAE,KAAK;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Timestamp } from "../protobuf.generated/common.js";
2
+ export type Time = Timestamp;
3
+ export declare function fromMillis(value: number): Time;
4
+ export declare function fromMicros(value: number): Time;
5
+ export declare function isLessThan(left: Time, right: Time): boolean;
6
+ export declare function isGreaterThan(left: Time, right: Time): boolean;
7
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/time.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC;AAE7B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM9C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM9C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAE3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,24 @@
1
+ // This Source Code Form is subject to the terms of the Mozilla Public
2
+ // License, v2.0. If a copy of the MPL was not distributed with this
3
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
+ export function fromMillis(value) {
5
+ let sec = Math.trunc(value / 1000);
6
+ let nsec = Math.round((value - sec * 1000) * 1e6);
7
+ sec += Math.trunc(nsec / 1e9);
8
+ nsec %= 1e9;
9
+ return { sec, nsec };
10
+ }
11
+ export function fromMicros(value) {
12
+ let sec = Math.trunc(value / 1_000_000);
13
+ let nsec = Math.round((value - sec * 1_000_000) * 1e3);
14
+ sec += Math.trunc(nsec / 1e9);
15
+ nsec %= 1e9;
16
+ return { sec, nsec };
17
+ }
18
+ export function isLessThan(left, right) {
19
+ return left.sec < right.sec || (left.sec === right.sec && left.nsec < right.nsec);
20
+ }
21
+ export function isGreaterThan(left, right) {
22
+ return left.sec > right.sec || (left.sec === right.sec && left.nsec > right.nsec);
23
+ }
24
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/visualizer/utils/time.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAM1D,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IAClD,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,GAAG,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACxC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IACvD,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,GAAG,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,KAAW;IAChD,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,KAAW;IACnD,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type ThemeMode = "dark" | "light";
2
+ export declare function useThemeMode(): ThemeMode;
3
+ //# sourceMappingURL=use-theme-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme-mode.d.ts","sourceRoot":"","sources":["../../../src/visualizer/utils/use-theme-mode.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAqCzC,wBAAgB,YAAY,IAAI,SAAS,CAgDxC"}
@@ -0,0 +1,71 @@
1
+ // This Source Code Form is subject to the terms of the Mozilla Public
2
+ // License, v2.0. If a copy of the MPL was not distributed with this
3
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
4
+ import React from "react";
5
+ function readThemeMode() {
6
+ if (typeof document !== "undefined") {
7
+ const root = document.documentElement;
8
+ const body = document.body;
9
+ const attributes = [
10
+ root.getAttribute("data-theme"),
11
+ root.getAttribute("data-color-mode"),
12
+ root.getAttribute("data-mode"),
13
+ body?.getAttribute("data-theme"),
14
+ body?.getAttribute("data-color-mode"),
15
+ body?.getAttribute("data-mode"),
16
+ ];
17
+ for (const value of attributes) {
18
+ if (value === "dark" || value === "light") {
19
+ return value;
20
+ }
21
+ }
22
+ if (root.classList.contains("dark") || body?.classList.contains("dark")) {
23
+ return "dark";
24
+ }
25
+ if (root.classList.contains("light") || body?.classList.contains("light")) {
26
+ return "light";
27
+ }
28
+ }
29
+ if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
30
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
31
+ }
32
+ return "light";
33
+ }
34
+ export function useThemeMode() {
35
+ const [themeMode, setThemeMode] = React.useState(() => readThemeMode());
36
+ React.useEffect(() => {
37
+ if (typeof window === "undefined" || typeof document === "undefined") {
38
+ return;
39
+ }
40
+ const updateThemeMode = () => {
41
+ setThemeMode(readThemeMode());
42
+ };
43
+ updateThemeMode();
44
+ const mediaQuery = typeof window.matchMedia === "function"
45
+ ? window.matchMedia("(prefers-color-scheme: dark)")
46
+ : undefined;
47
+ const handleMediaChange = () => {
48
+ updateThemeMode();
49
+ };
50
+ mediaQuery?.addEventListener?.("change", handleMediaChange);
51
+ const observer = new MutationObserver(() => {
52
+ updateThemeMode();
53
+ });
54
+ observer.observe(document.documentElement, {
55
+ attributes: true,
56
+ attributeFilter: ["class", "data-theme", "data-color-mode", "data-mode"],
57
+ });
58
+ if (document.body) {
59
+ observer.observe(document.body, {
60
+ attributes: true,
61
+ attributeFilter: ["class", "data-theme", "data-color-mode", "data-mode"],
62
+ });
63
+ }
64
+ return () => {
65
+ mediaQuery?.removeEventListener?.("change", handleMediaChange);
66
+ observer.disconnect();
67
+ };
68
+ }, []);
69
+ return themeMode;
70
+ }
71
+ //# sourceMappingURL=use-theme-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme-mode.js","sourceRoot":"","sources":["../../../src/visualizer/utils/use-theme-mode.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,25 +1,32 @@
1
1
  {
2
2
  "name": "@luxonis/depthai-viewer-common",
3
- "version": "3.7.4",
3
+ "version": "3.7.6",
4
4
  "description": "Common utilities and components for building a frontend application for DepthAI projects",
5
- "license": "ISC",
5
+ "license": "Apache-2.0 AND MPL-2.0",
6
6
  "author": "Luxonis Holding Corporation",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "exports": {
10
10
  ".": "./dist/index.js",
11
11
  "./styles": "./dist/index.css",
12
+ "./visualizer": "./dist/visualizer/index.js",
13
+ "./visualizer/*": "./dist/visualizer/*",
12
14
  "./vite": {
13
15
  "import": "./dist/utils/vite-dev-fix.js",
14
16
  "require": "./dist/utils/vite-dev-fix.cjs"
15
17
  }
16
18
  },
17
19
  "scripts": {
20
+ "gen:proto": "bash ./protobuf-gen.sh",
21
+ "gen:proto:win": "powershell -NoProfile -ExecutionPolicy Bypass -File ./protobuf-gen.win.ps1",
18
22
  "tailwind": "tailwindcss -i ./src/index.css -o ./dist/index.css",
19
- "build": "tsc --build && npm run tailwind && cp -r ./src/fonts ./dist/fonts",
20
- "build:win": "tsc -p tsconfig.json && npm run tailwind && xcopy src\\fonts dist\\fonts /E /I /Y",
23
+ "tailwind:visualizer": "tailwindcss -i ./src/visualizer/index.css -o ./src/visualizer/output.css",
24
+ "build": "npm run gen:proto && npm run tailwind:visualizer && tsc --build && npm run tailwind && cp -r ./src/fonts ./dist/fonts && cp -r ./src/visualizer/fonts ./dist/visualizer/fonts && cp ./src/visualizer/output.css ./dist/visualizer/output.css",
25
+ "build:win": "npm run gen:proto:win && npm run tailwind:visualizer && tsc -p tsconfig.json && npm run tailwind && xcopy src\\fonts dist\\fonts /E /I /Y && xcopy src\\visualizer\\fonts dist\\visualizer\\fonts /E /I /Y && copy /Y src\\visualizer\\output.css dist\\visualizer\\output.css",
21
26
  "build:clean": "rm -fr ../../node_modules/.tmp/tsconfig-common.tsbuildinfo dist && npm run build",
22
27
  "build:clean:win": "if exist ..\\..\\node_modules\\.tmp\\tsconfig-common.tsbuildinfo del /Q ..\\..\\node_modules\\.tmp\\tsconfig-common.tsbuildinfo & if exist dist rmdir /S /Q dist & npm run build:win",
28
+ "fixtures:decode": "node ./scripts/run-decoder-fixtures.mjs",
29
+ "fixtures:browser:build": "vite build --config scripts/fixtures.vite.config.mjs",
23
30
  "check-deps": "npm run deps:check -w @luxonis/depthai-web-viewer",
24
31
  "prepublishOnly": "npm run check-deps && npm run build:clean",
25
32
  "benchmark:raw": "./benchmark.sh run",
@@ -29,16 +36,34 @@
29
36
  "access": "public"
30
37
  },
31
38
  "dependencies": {
39
+ "@bufbuild/protobuf": "^2.12.0",
40
+ "@luxonis/depthai-pipeline-lib": "*",
41
+ "@luxonis/remote-connection": "3.0.0",
32
42
  "@luxonis/ui-components": "^1.3.2",
33
43
  "@luxonis/ui-utils": "^1.0.4",
34
- "@luxonis/depthai-pipeline-lib": "*",
35
- "@luxonis/visualizer-protobuf": "*",
44
+ "comlink": "^4.4.2",
45
+ "extend": "3.0.2",
36
46
  "lodash": "^4.18.1",
47
+ "object-assign": "4.1.1",
48
+ "react-dnd": "16.0.1",
49
+ "react-dnd-html5-backend": "16.0.1",
50
+ "react-icons": "^5.6.0",
51
+ "react-mosaic-component": "6.1.1",
37
52
  "react-resizable-panels": "^2.1.3",
38
- "zod": "4.4.3"
53
+ "react-syntax-highlighter": "^16.1.1",
54
+ "shallowequal": "1.1.0",
55
+ "three": "^0.184.0",
56
+ "uuidv7": "^1.2.1",
57
+ "zod": "4.4.3",
58
+ "zustand": "4.5.7"
39
59
  },
40
60
  "devDependencies": {
41
- "react": "19.2.5"
61
+ "@types/dom-webcodecs": "^0.1.18",
62
+ "@types/shallowequal": "^1.1.5",
63
+ "@types/three": "^0.184.0",
64
+ "@webgpu/types": "^0.1.69",
65
+ "react": "19.2.5",
66
+ "ts-proto": "^2.11.6"
42
67
  },
43
68
  "peerDependencies": {
44
69
  "react": "19.2.5",
@@ -0,0 +1,87 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
6
+ TS_PROTO_PLUGIN=$(command -v protoc-gen-ts_proto || true)
7
+
8
+ if [ -z "$TS_PROTO_PLUGIN" ]; then
9
+ TS_PROTO_PLUGIN="$SCRIPT_DIR/node_modules/.bin/protoc-gen-ts_proto"
10
+ fi
11
+
12
+ CONTEXT="Protobuf Gen"
13
+ source "./build-utils.sh"
14
+
15
+ # TODO: Move to params
16
+ GH_REPO="luxonis/depthai-core"
17
+ GH_PATH="protos"
18
+ GH_BRANCH="develop"
19
+
20
+ # TODO: Ensure protoc is installed
21
+ # TODO: Validate location
22
+
23
+ start "Fetching protobuf definitions"
24
+ FILES=$(curl -s "https://api.github.com/repos/$GH_REPO/contents/$GH_PATH?ref=$GH_BRANCH" | jq -r '.[] | select(.type=="file" and (.name | tostring | endswith(".proto"))) | .download_url')
25
+ mkdir -p ./~proto
26
+ pushd ./~proto >/dev/null
27
+ for FILE_URL in $FILES; do
28
+ FILE_NAME=$(basename "$FILE_URL")
29
+ echo "- $FILE_NAME"
30
+ curl -sO "$FILE_URL"
31
+ done
32
+ finish
33
+
34
+ start "Compiling protobuf definitions"
35
+ mkdir -p ../src/visualizer/protobuf.generated
36
+ shopt -s nullglob
37
+ PROTO_FILES=(./*.proto)
38
+ shopt -u nullglob
39
+
40
+ if [ ${#PROTO_FILES[@]} -eq 0 ]; then
41
+ if find ../src/visualizer/protobuf.generated -maxdepth 1 -name '*.ts' | grep -q .; then
42
+ echo "No protobuf definitions were downloaded, reusing existing generated sources."
43
+ else
44
+ echo "No protobuf definitions were downloaded and no generated sources are available."
45
+ exit 1
46
+ fi
47
+ else
48
+ if [ ! -x "$TS_PROTO_PLUGIN" ]; then
49
+ echo "Missing ts-proto protoc plugin at $TS_PROTO_PLUGIN"
50
+ echo "Install dependencies before running protobuf generation."
51
+ exit 1
52
+ fi
53
+
54
+ protoc \
55
+ --experimental_allow_proto3_optional \
56
+ --plugin="$TS_PROTO_PLUGIN" \
57
+ --ts_proto_opt=esModuleInterop=true \
58
+ --ts_proto_opt=importSuffix=.js \
59
+ --ts_proto_out=../src/visualizer/protobuf.generated \
60
+ "${PROTO_FILES[@]}"
61
+ fi
62
+ popd >/dev/null
63
+ rm -f ./~proto/* 2>/dev/null || true
64
+ rmdir ./~proto 2>/dev/null || true
65
+ finish
66
+
67
+ start "Adding protobuf names"
68
+ pushd ./src/visualizer/protobuf.generated >/dev/null
69
+ if command -v gsed >/dev/null 2>&1; then
70
+ SED_BIN="gsed"
71
+ SED_INPLACE_ARGS=(-i)
72
+ elif sed --version >/dev/null 2>&1; then
73
+ SED_BIN="sed"
74
+ SED_INPLACE_ARGS=(-i)
75
+ else
76
+ SED_BIN="sed"
77
+ SED_INPLACE_ARGS=(-i "")
78
+ fi
79
+ for FILE_NAME in *.ts; do
80
+ PROTO_NAME="${FILE_NAME%.*}"
81
+ "$SED_BIN" "${SED_INPLACE_ARGS[@]}" '/^export const protobufName = /d' "$FILE_NAME"
82
+ echo "export const protobufName = \"$PROTO_NAME\";" >> "$FILE_NAME"
83
+ done
84
+ popd >/dev/null
85
+ finish
86
+
87
+ finish_build
@@ -0,0 +1,130 @@
1
+ $ErrorActionPreference = 'Stop'
2
+
3
+ $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
4
+ $workspaceRoot = Resolve-Path (Join-Path $scriptDir '..\..')
5
+ $outputDir = Join-Path $scriptDir 'src\visualizer\protobuf.generated'
6
+ $tempProtoDir = Join-Path $scriptDir '~proto'
7
+
8
+ $protoRepo = 'luxonis/depthai-core'
9
+ $protoPath = 'protos'
10
+ $protoBranch = 'develop'
11
+ $requestHeaders = @{
12
+ 'User-Agent' = 'depthai-visualizer-protobuf-build-win'
13
+ }
14
+
15
+ try {
16
+ [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
17
+ }
18
+ catch {
19
+ # Ignore if the host PowerShell does not expose TLS configuration.
20
+ }
21
+
22
+ $pluginPathCandidates = @(
23
+ (Join-Path $scriptDir 'node_modules\.bin\protoc-gen-ts_proto.cmd'),
24
+ (Join-Path $workspaceRoot 'node_modules\.bin\protoc-gen-ts_proto.cmd')
25
+ )
26
+
27
+ $pluginPath = $pluginPathCandidates | Where-Object { Test-Path $_ } | Select-Object -First 1
28
+ if (-not $pluginPath) {
29
+ Write-Error 'Unable to locate protoc-gen-ts_proto.cmd in workspace or package node_modules/.bin'
30
+ exit 1
31
+ }
32
+
33
+ # --- Step 1: Fetch .proto files into ~proto/ (mirrors protobuf-gen.sh) ---
34
+
35
+ Write-Host '[Protobuf Gen] Fetching protobuf definitions...'
36
+
37
+ if (Test-Path $tempProtoDir) { Remove-Item -Path $tempProtoDir -Recurse -Force }
38
+ New-Item -ItemType Directory -Path $tempProtoDir -Force | Out-Null
39
+
40
+ try {
41
+ $apiUrl = "https://api.github.com/repos/${protoRepo}/contents/${protoPath}?ref=${protoBranch}"
42
+ $entriesResponse = Invoke-RestMethod -Uri $apiUrl -Headers $requestHeaders
43
+
44
+ # GitHub returns a single object with a 'message' field on errors (rate limit, 404, etc.)
45
+ if ($null -eq $entriesResponse) {
46
+ throw 'GitHub API returned an empty response'
47
+ }
48
+
49
+ if ($entriesResponse -isnot [System.Array] -and ($entriesResponse.PSObject.Properties.Name -contains 'message')) {
50
+ throw "GitHub API error: $($entriesResponse.message)"
51
+ }
52
+
53
+ $entries = @($entriesResponse)
54
+ $downloadUrls = @($entries |
55
+ Where-Object { $_.type -eq 'file' -and $_.name -like '*.proto' -and $_.download_url } |
56
+ Select-Object -ExpandProperty download_url)
57
+
58
+ if ($downloadUrls.Count -eq 0) { throw 'GitHub API returned no .proto files in the expected location' }
59
+
60
+ foreach ($url in $downloadUrls) {
61
+ $fileName = Split-Path -Path $url -Leaf
62
+ Write-Host "- $fileName"
63
+ Invoke-WebRequest -Uri $url -Headers $requestHeaders -OutFile (Join-Path $tempProtoDir $fileName)
64
+ }
65
+ }
66
+ catch {
67
+ Write-Warning "[Protobuf Gen] Failed to fetch definitions: $($_.Exception.Message)"
68
+ }
69
+
70
+ # --- Step 2: Compile if files were downloaded, else reuse existing .ts sources ---
71
+
72
+ Write-Host '[Protobuf Gen] Compiling protobuf definitions...'
73
+
74
+ $downloadedProtos = @(Get-ChildItem -Path $tempProtoDir -Filter *.proto -File)
75
+
76
+ New-Item -ItemType Directory -Path $outputDir -Force | Out-Null
77
+ $resolvedOutputDir = (Resolve-Path $outputDir).Path
78
+
79
+ if ($downloadedProtos.Count -gt 0) {
80
+ $protoSourceDir = $tempProtoDir
81
+ $protoFiles = $downloadedProtos | ForEach-Object { $_.Name }
82
+ }
83
+ else {
84
+ # Fallback 1: compile committed .proto files from src/protobuf.generated
85
+ $localProtos = @(Get-ChildItem -Path $outputDir -Filter *.proto -File)
86
+ if ($localProtos.Count -gt 0) {
87
+ Write-Host '[Protobuf Gen] No protobuf definitions were downloaded, compiling local .proto files.'
88
+ $protoSourceDir = $resolvedOutputDir
89
+ $protoFiles = $localProtos | ForEach-Object { $_.Name }
90
+ }
91
+ # Fallback 2 (matches protobuf-gen.sh): reuse existing generated .ts files
92
+ elseif (@(Get-ChildItem -Path $outputDir -Filter *.ts -File).Count -gt 0) {
93
+ Write-Host '[Protobuf Gen] No protobuf definitions were downloaded, reusing existing generated sources.'
94
+ $protoSourceDir = $null
95
+ }
96
+ else {
97
+ Write-Error '[Protobuf Gen] No protobuf definitions were downloaded and no generated sources are available.'
98
+ exit 1
99
+ }
100
+ }
101
+
102
+ if ($protoSourceDir) {
103
+ $protocCommand = Get-Command protoc -ErrorAction SilentlyContinue
104
+ if (-not $protocCommand) {
105
+ Write-Error '[Protobuf Gen] Unable to locate protoc on PATH. Install the Protocol Buffers compiler and restart the shell.'
106
+ exit 1
107
+ }
108
+
109
+ Push-Location $protoSourceDir
110
+ & $protocCommand.Source -I . --experimental_allow_proto3_optional --plugin=protoc-gen-ts_proto=$pluginPath --ts_proto_opt=esModuleInterop=true --ts_proto_opt=importSuffix=.js --ts_proto_out=$resolvedOutputDir $protoFiles
111
+ $exitCode = $LASTEXITCODE
112
+ Pop-Location
113
+
114
+ if ($exitCode -ne 0) { exit $exitCode }
115
+ }
116
+
117
+ if (Test-Path $tempProtoDir) { Remove-Item -Path $tempProtoDir -Recurse -Force }
118
+
119
+ # --- Step 3: Append protobufName exports (mirrors protobuf-gen.sh) ---
120
+
121
+ Write-Host '[Protobuf Gen] Adding protobuf names...'
122
+
123
+ Get-ChildItem $resolvedOutputDir -Filter *.ts | ForEach-Object {
124
+ $protoName = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
125
+ $content = Get-Content $_.FullName | Where-Object { $_ -notmatch '^export const protobufName = ' }
126
+ $line = ('export const protobufName = ''{0}'';' -f $protoName)
127
+ Set-Content -Path $_.FullName -Value ($content + $line)
128
+ }
129
+
130
+ Write-Host '[Protobuf Gen] BUILD SUCCESSFUL'