@luxonis/depthai-viewer-common 3.8.1 → 3.8.3

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 (150) hide show
  1. package/README.md +104 -11
  2. package/dist/components/CTASubLabel.d.ts +10 -2
  3. package/dist/components/CTASubLabel.d.ts.map +1 -1
  4. package/dist/components/CTASubLabel.js +3 -0
  5. package/dist/components/CTASubLabel.js.map +1 -1
  6. package/dist/components/DepthAIContext.d.ts +25 -2
  7. package/dist/components/DepthAIContext.d.ts.map +1 -1
  8. package/dist/components/DepthAIContext.js +3 -0
  9. package/dist/components/DepthAIContext.js.map +1 -1
  10. package/dist/components/Pipeline.d.ts +19 -2
  11. package/dist/components/Pipeline.d.ts.map +1 -1
  12. package/dist/components/Pipeline.js +12 -0
  13. package/dist/components/Pipeline.js.map +1 -1
  14. package/dist/components/Resizable.d.ts +20 -0
  15. package/dist/components/Resizable.d.ts.map +1 -1
  16. package/dist/components/Resizable.js +8 -0
  17. package/dist/components/Resizable.js.map +1 -1
  18. package/dist/components/Streams.d.ts +100 -4
  19. package/dist/components/Streams.d.ts.map +1 -1
  20. package/dist/components/Streams.js +78 -17
  21. package/dist/components/Streams.js.map +1 -1
  22. package/dist/components/ThemeToggle.d.ts +8 -0
  23. package/dist/components/ThemeToggle.d.ts.map +1 -1
  24. package/dist/components/ThemeToggle.js +8 -0
  25. package/dist/components/ThemeToggle.js.map +1 -1
  26. package/dist/constants/connection.d.ts +27 -0
  27. package/dist/constants/connection.d.ts.map +1 -1
  28. package/dist/constants/connection.js +12 -0
  29. package/dist/constants/connection.js.map +1 -1
  30. package/dist/constants/streams.d.ts +9 -0
  31. package/dist/constants/streams.d.ts.map +1 -1
  32. package/dist/constants/streams.js +6 -0
  33. package/dist/constants/streams.js.map +1 -1
  34. package/dist/constants/url.d.ts +12 -0
  35. package/dist/constants/url.d.ts.map +1 -1
  36. package/dist/constants/url.js +12 -0
  37. package/dist/constants/url.js.map +1 -1
  38. package/dist/dai-connection/connection.d.ts +189 -2
  39. package/dist/dai-connection/connection.d.ts.map +1 -1
  40. package/dist/dai-connection/connection.js +121 -5
  41. package/dist/dai-connection/connection.js.map +1 -1
  42. package/dist/dai-connection/decoder.worker.d.ts +21 -0
  43. package/dist/dai-connection/decoder.worker.d.ts.map +1 -1
  44. package/dist/dai-connection/decoder.worker.js +6 -0
  45. package/dist/dai-connection/decoder.worker.js.map +1 -1
  46. package/dist/hooks/connection.d.ts +206 -0
  47. package/dist/hooks/connection.d.ts.map +1 -1
  48. package/dist/hooks/connection.js +22 -0
  49. package/dist/hooks/connection.js.map +1 -1
  50. package/dist/hooks/navigation.d.ts +5 -0
  51. package/dist/hooks/navigation.d.ts.map +1 -1
  52. package/dist/hooks/navigation.js +5 -0
  53. package/dist/hooks/navigation.js.map +1 -1
  54. package/dist/hooks/search.d.ts +12 -0
  55. package/dist/hooks/search.d.ts.map +1 -1
  56. package/dist/hooks/search.js +3 -0
  57. package/dist/hooks/search.js.map +1 -1
  58. package/dist/hooks/useFullScreen.d.ts +8 -0
  59. package/dist/hooks/useFullScreen.d.ts.map +1 -1
  60. package/dist/hooks/useFullScreen.js +8 -0
  61. package/dist/hooks/useFullScreen.js.map +1 -1
  62. package/dist/index.css +9 -9
  63. package/dist/index.d.ts +5 -2
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +5 -2
  66. package/dist/index.js.map +1 -1
  67. package/dist/models/device-configuration.d.ts +69 -0
  68. package/dist/models/device-configuration.d.ts.map +1 -1
  69. package/dist/models/device-configuration.js +21 -0
  70. package/dist/models/device-configuration.js.map +1 -1
  71. package/dist/providers/ConnectionProvider.d.ts +56 -2
  72. package/dist/providers/ConnectionProvider.d.ts.map +1 -1
  73. package/dist/providers/ConnectionProvider.js +26 -0
  74. package/dist/providers/ConnectionProvider.js.map +1 -1
  75. package/dist/providers/DataProvider.d.ts +129 -0
  76. package/dist/providers/DataProvider.d.ts.map +1 -1
  77. package/dist/providers/DataProvider.js +21 -0
  78. package/dist/providers/DataProvider.js.map +1 -1
  79. package/dist/providers/ThemeProvider.d.ts +67 -7
  80. package/dist/providers/ThemeProvider.d.ts.map +1 -1
  81. package/dist/providers/ThemeProvider.js +39 -2
  82. package/dist/providers/ThemeProvider.js.map +1 -1
  83. package/dist/providers/VisualizerRuntimeConfigProvider.d.ts +43 -3
  84. package/dist/providers/VisualizerRuntimeConfigProvider.d.ts.map +1 -1
  85. package/dist/providers/VisualizerRuntimeConfigProvider.js +20 -3
  86. package/dist/providers/VisualizerRuntimeConfigProvider.js.map +1 -1
  87. package/dist/utils/arrays.d.ts +7 -0
  88. package/dist/utils/arrays.d.ts.map +1 -1
  89. package/dist/utils/arrays.js +7 -0
  90. package/dist/utils/arrays.js.map +1 -1
  91. package/dist/utils/functions.d.ts +3 -0
  92. package/dist/utils/functions.d.ts.map +1 -1
  93. package/dist/utils/functions.js +3 -0
  94. package/dist/utils/functions.js.map +1 -1
  95. package/dist/utils/local-storage.d.ts +20 -0
  96. package/dist/utils/local-storage.d.ts.map +1 -1
  97. package/dist/utils/local-storage.js +17 -0
  98. package/dist/utils/local-storage.js.map +1 -1
  99. package/dist/utils/logger.d.ts +31 -0
  100. package/dist/utils/logger.d.ts.map +1 -1
  101. package/dist/utils/logger.js +36 -7
  102. package/dist/utils/logger.js.map +1 -1
  103. package/dist/utils/sorting.d.ts +6 -0
  104. package/dist/utils/sorting.d.ts.map +1 -1
  105. package/dist/utils/sorting.js +6 -0
  106. package/dist/utils/sorting.js.map +1 -1
  107. package/dist/utils/topic.d.ts +6 -0
  108. package/dist/utils/topic.d.ts.map +1 -1
  109. package/dist/utils/topic.js +3 -0
  110. package/dist/utils/topic.js.map +1 -1
  111. package/dist/utils/units.d.ts +24 -0
  112. package/dist/utils/units.d.ts.map +1 -1
  113. package/dist/utils/units.js +24 -0
  114. package/dist/utils/units.js.map +1 -1
  115. package/dist/utils/url.d.ts +9 -0
  116. package/dist/utils/url.d.ts.map +1 -1
  117. package/dist/utils/url.js +10 -1
  118. package/dist/utils/url.js.map +1 -1
  119. package/dist/utils/vite-dev-fix.d.ts +13 -0
  120. package/dist/utils/vite-dev-fix.d.ts.map +1 -1
  121. package/dist/utils/vite-dev-fix.js +13 -0
  122. package/dist/utils/vite-dev-fix.js.map +1 -1
  123. package/dist/visualizer/components/Panel.js +1 -1
  124. package/dist/visualizer/components/Panel.js.map +1 -1
  125. package/dist/visualizer/messaging/decoder-fixtures.d.ts.map +1 -1
  126. package/dist/visualizer/messaging/decoder-fixtures.js +8 -2
  127. package/dist/visualizer/messaging/decoder-fixtures.js.map +1 -1
  128. package/dist/visualizer/messaging/deserialization/detections/constants.d.ts +1 -0
  129. package/dist/visualizer/messaging/deserialization/detections/constants.d.ts.map +1 -1
  130. package/dist/visualizer/messaging/deserialization/detections/constants.js +1 -0
  131. package/dist/visualizer/messaging/deserialization/detections/constants.js.map +1 -1
  132. package/dist/visualizer/messaging/deserialization/detections/custom.d.ts.map +1 -1
  133. package/dist/visualizer/messaging/deserialization/detections/custom.js +2 -2
  134. package/dist/visualizer/messaging/deserialization/detections/custom.js.map +1 -1
  135. package/dist/visualizer/messaging/deserialization/detections/detection.d.ts.map +1 -1
  136. package/dist/visualizer/messaging/deserialization/detections/detection.js +2 -2
  137. package/dist/visualizer/messaging/deserialization/detections/detection.js.map +1 -1
  138. package/dist/visualizer/messaging/utils.d.ts +1 -0
  139. package/dist/visualizer/messaging/utils.d.ts.map +1 -1
  140. package/dist/visualizer/messaging/utils.js +8 -6
  141. package/dist/visualizer/messaging/utils.js.map +1 -1
  142. package/dist/visualizer/output.css +18 -18
  143. package/dist/visualizer/panels/image/ImageCanvasRenderer.d.ts.map +1 -1
  144. package/dist/visualizer/panels/image/ImageCanvasRenderer.js +4 -1
  145. package/dist/visualizer/panels/image/ImageCanvasRenderer.js.map +1 -1
  146. package/dist/visualizer/panels/image/annotation-overlay.d.ts.map +1 -1
  147. package/dist/visualizer/panels/image/annotation-overlay.js +16 -5
  148. package/dist/visualizer/panels/image/annotation-overlay.js.map +1 -1
  149. package/package.json +2 -2
  150. package/protobuf-gen.sh +60 -3
@@ -4,35 +4,121 @@ import { DAI_SERVICE_NAME, type DAIResponse } from '../constants/connection.js';
4
4
  import type { Topic } from '../hooks/connection.js';
5
5
  import { type PublicChannelData, VisualizerConnection } from '../visualizer/index.js';
6
6
  import type { DeserializationErrorCallback } from '../visualizer/messaging/deserialization.worker.js';
7
+ /**
8
+ * Backend message handling protocol version used by the visualizer connection.
9
+ */
7
10
  export type MessageHandlerVersion = 'v1' | 'v2';
11
+ /**
12
+ * Initialization parameters for a DepthAI connection.
13
+ */
8
14
  export type DAIConnectionInitArgs = {
15
+ /**
16
+ * Transport used to connect to the DepthAI backend.
17
+ */
9
18
  type: 'ws' | 'webrtc';
19
+ /**
20
+ * WebSocket URL or signaling endpoint used by the selected transport.
21
+ */
10
22
  connectionUrl: string;
23
+ /**
24
+ * WebRTC client id.
25
+ */
11
26
  clientId: string;
27
+ /**
28
+ * WebRTC auth token.
29
+ */
12
30
  token: string;
31
+ /**
32
+ * Stream topics that should be subscribed immediately after channel discovery.
33
+ */
13
34
  enabledStreams: string[];
35
+ /**
36
+ * Callback invoked when a refreshed WebRTC token is available.
37
+ */
14
38
  automaticTokenRefresh?: (token: string) => void;
39
+ /**
40
+ * WebRTC session recovery behavior forwarded to the remote connection layer.
41
+ */
15
42
  sessionRecovery?: WebRtcConfig['sessionRecovery'];
43
+ /**
44
+ * Enables verbose connection logging.
45
+ */
16
46
  debugLogs?: boolean;
47
+ /**
48
+ * Stream topics opened by default when no explicit stream selection exists.
49
+ */
17
50
  defaultTopics?: string[];
51
+ /**
52
+ * Enables Viewer-specific default stream behavior.
53
+ */
18
54
  isViewer?: boolean;
55
+ /**
56
+ * Backend message handling protocol expected by the connection.
57
+ */
19
58
  messageHandlerVersion?: MessageHandlerVersion;
20
59
  };
21
- type DaiConnectionEventMap = {
60
+ /**
61
+ * Event callbacks emitted by `DAIConnection`.
62
+ */
63
+ export type DaiConnectionEventMap = {
64
+ /**
65
+ * Fired when the underlying visualizer connection opens.
66
+ */
22
67
  open: () => void;
68
+ /**
69
+ * Fired when the underlying connection begins reconnecting.
70
+ */
23
71
  reconnect: () => void;
72
+ /**
73
+ * Fired when stream message decoding reports an error.
74
+ */
24
75
  error: DeserializationErrorCallback;
76
+ /**
77
+ * Fired after the connection is disposed or closed.
78
+ */
25
79
  close: () => void;
80
+ /**
81
+ * Fired when the default parsed pipeline changes.
82
+ */
26
83
  pipeline: (pipeline: Pipeline | null) => void;
84
+ /**
85
+ * Fired when the full parsed pipeline changes.
86
+ */
27
87
  fullPipeline: (pipeline: Pipeline | null) => void;
88
+ /**
89
+ * Fired when live pipeline node state changes.
90
+ */
28
91
  pipelineState: (pipelineState: PipelineState[] | null) => void;
92
+ /**
93
+ * Fired when the advertised stream topic list changes.
94
+ */
29
95
  topics: (topics: Topic[]) => void;
96
+ /**
97
+ * Fired when the backend disconnects with an error event.
98
+ */
30
99
  disconnect: (error: ErrorEvent) => void;
31
100
  };
101
+ /**
102
+ * Supported DepthAI backend service key.
103
+ */
32
104
  export type DAIService = keyof typeof DAI_SERVICE_NAME;
105
+ /**
106
+ * Manages a DepthAI backend connection, stream subscriptions, service polling, and pipeline decoding.
107
+ */
33
108
  export declare class DAIConnection {
109
+ /**
110
+ * Whether this connection instance should continue processing events and service responses.
111
+ */
34
112
  alive: boolean;
113
+ /**
114
+ * Underlying visualizer connection used by Foxglove-derived panels.
115
+ */
35
116
  connection?: VisualizerConnection;
117
+ /**
118
+ * Creates a connection manager with optional synthetic topics.
119
+ *
120
+ * @param fakeTopics - Topics to merge into the backend topic list for host-controlled streams.
121
+ */
36
122
  constructor(fakeTopics?: Topic[]);
37
123
  protected listeners: Partial<Record<keyof DaiConnectionEventMap, any[]>>;
38
124
  protected serviceListeners: Record<string, (data: any, connection: DAIConnection) => void>;
@@ -45,6 +131,9 @@ export declare class DAIConnection {
45
131
  protected activeServices: Set<DAIService>;
46
132
  protected serviceInterval: NodeJS.Timeout | null;
47
133
  protected _pendingDecodeCleanups: Array<() => void>;
134
+ /**
135
+ * Whether topic subscription state was changed explicitly by the user.
136
+ */
48
137
  topicsTouched: boolean;
49
138
  protected channels: PublicChannelData[];
50
139
  protected groups: Record<string, string>;
@@ -58,27 +147,125 @@ export declare class DAIConnection {
58
147
  protected fakeTopicsEnabled: Set<string>;
59
148
  protected shouldRestoreDefaultFakeTopics: boolean;
60
149
  protected isFakeTopic(name: string): boolean;
150
+ /**
151
+ * Returns synthetic topics currently merged into the topic list.
152
+ */
61
153
  getFakeTopics(): Topic[];
154
+ /**
155
+ * Replaces synthetic topics and enables the ones marked as enabled.
156
+ *
157
+ * @param fakeTopics - Synthetic topics to expose through the topic list.
158
+ */
62
159
  setFakeTopics(fakeTopics: Topic[]): void;
63
160
  protected recreateDecoderWorker(): void;
64
161
  protected reportTopics(type?: 'ws' | 'webrtc'): void;
65
162
  protected pollServices(): void;
163
+ /**
164
+ * Initializes the decoder worker and opens the underlying connection.
165
+ *
166
+ * @param args - Connection and stream initialization parameters.
167
+ */
66
168
  init({ enabledStreams, defaultTopics, isViewer, ...args }: DAIConnectionInitArgs): void;
169
+ /**
170
+ * Creates the underlying WebSocket or WebRTC visualizer connection and attaches event handlers.
171
+ *
172
+ * @param args - Transport-specific connection parameters.
173
+ */
67
174
  setupConnection({ type, connectionUrl, clientId, token, automaticTokenRefresh, sessionRecovery, debugLogs, messageHandlerVersion, }: Pick<DAIConnectionInitArgs, 'type' | 'clientId' | 'connectionUrl' | 'token' | 'automaticTokenRefresh' | 'sessionRecovery' | 'debugLogs' | 'messageHandlerVersion'>): void;
175
+ /**
176
+ * Maps a DepthAI service to the decoder payload kind expected by the worker.
177
+ *
178
+ * @param service - Service key to classify.
179
+ * @returns Decoder payload kind used for the service response.
180
+ */
68
181
  serviceToKind(service: DAIService): 'pipeline' | 'json';
182
+ /**
183
+ * Requests a service response and forwards it through the decoder worker asynchronously.
184
+ *
185
+ * @param service - Service key to request.
186
+ * @param body - Optional request body passed to the backend service.
187
+ */
69
188
  fetchService(service: DAIService, body?: Record<string, any> | string | number): Promise<void>;
189
+ /**
190
+ * Returns whether a service is currently advertised by the backend and can be polled.
191
+ *
192
+ * @param service - Service key to check.
193
+ */
70
194
  canPollService(service: DAIService): boolean;
195
+ /**
196
+ * Requests and decodes one service response before resolving.
197
+ *
198
+ * @param service - Service key to request.
199
+ * @param body - Optional request body passed to the backend service.
200
+ * @returns Decoded service payload, or `null` when the service cannot be polled or decoding fails.
201
+ */
71
202
  fetchServiceBlocking<T = unknown>(service: DAIService, body?: Record<string, any> | string | number): Promise<T | null>;
203
+ /**
204
+ * Sends a request to a backend service and decodes the standard JSON response envelope.
205
+ *
206
+ * @param service - Service key to request.
207
+ * @param body - Request body passed to the backend service.
208
+ * @param onResponse - Callback invoked with the decoded response envelope.
209
+ * @param onError - Optional callback invoked when the response envelope contains an error.
210
+ * @param responseTimeout - Request timeout in milliseconds.
211
+ */
72
212
  postToService(service: DAIService, body: Record<string, unknown> | string | number, onResponse: (data: DAIResponse) => void, onError?: (response: DAIResponse | null) => void, responseTimeout?: number): Promise<void>;
213
+ /**
214
+ * Sends a request to a backend service and returns the raw binary response.
215
+ *
216
+ * @param service - Service key to request.
217
+ * @param body - Request body passed to the backend service.
218
+ * @param onResponse - Callback invoked with the raw response data.
219
+ * @param responseTimeout - Request timeout in milliseconds.
220
+ */
73
221
  postToServiceRaw(service: DAIService, body: Record<string, unknown> | string | number, onResponse: (data: DataView | null | undefined) => void, responseTimeout?: number): Promise<void>;
222
+ /**
223
+ * Replaces the set of services polled by the connection.
224
+ *
225
+ * @param services - Service keys to poll.
226
+ */
74
227
  setActiveServices(services: DAIService[]): void;
228
+ /**
229
+ * Closes the connection, stops polling, terminates the decoder worker, and emits `close`.
230
+ */
75
231
  dispose(): void;
232
+ /**
233
+ * Sends a key press event to the backend.
234
+ *
235
+ * @param key - Keyboard key identifier to forward.
236
+ */
76
237
  handleKeyPress(key: string): void;
238
+ /**
239
+ * Toggles subscription state for a stream topic.
240
+ *
241
+ * @param topic - Topic name to toggle.
242
+ */
77
243
  toggleTopic(topic: string): void;
244
+ /**
245
+ * Temporarily stops topic subscriptions while preserving previous selection state.
246
+ *
247
+ * @param topicsFilter - Optional topic allow-list to keep enabled.
248
+ */
78
249
  stopTopics(topicsFilter?: string[]): void;
250
+ /**
251
+ * Restores topic subscriptions saved by `stopTopics`.
252
+ *
253
+ * @param defaultTopics - Optional default topics to use after restart.
254
+ */
79
255
  restartTopics(defaultTopics?: string[]): void;
256
+ /**
257
+ * Registers an event listener.
258
+ *
259
+ * @param event - Event name to subscribe to.
260
+ * @param callback - Callback invoked when the event fires.
261
+ */
80
262
  on<T extends keyof DaiConnectionEventMap>(event: T, callback: DaiConnectionEventMap[T]): void;
263
+ /**
264
+ * Registers a decoded service response listener.
265
+ *
266
+ * @param service - Service name to listen for.
267
+ * @param callback - Callback invoked with decoded service data.
268
+ */
81
269
  setOnService<T>(service: string, callback: (data: T, connection: DAIConnection) => void): void;
82
270
  }
83
- export {};
84
271
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/dai-connection/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/dai-connection/connection.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,27 @@ import { decodeServiceMessage, } from './decoder.worker.js';
9
9
  const isRawPipelinePayload = (data) => !!data?.pipeline;
10
10
  const isRawPipelineStatePayload = (data) => !!data?.nodeStates;
11
11
  const logger = Logger.getLogger();
12
+ /**
13
+ * Manages a DepthAI backend connection, stream subscriptions, service polling, and pipeline decoding.
14
+ */
12
15
  export class DAIConnection {
16
+ /**
17
+ * Whether this connection instance should continue processing events and service responses.
18
+ */
13
19
  alive = true;
20
+ /**
21
+ * Underlying visualizer connection used by Foxglove-derived panels.
22
+ */
14
23
  connection;
24
+ /**
25
+ * Creates a connection manager with optional synthetic topics.
26
+ *
27
+ * @param fakeTopics - Topics to merge into the backend topic list for host-controlled streams.
28
+ */
15
29
  constructor(fakeTopics) {
16
30
  this.fakeTopics = fakeTopics ?? [];
17
31
  }
18
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
32
+ // biome-ignore lint/suspicious/noExplicitAny: Listener arrays are typed by event name at registration.
19
33
  listeners = {};
20
34
  // biome-ignore lint/suspicious/noExplicitAny: Typed only on a usage level
21
35
  serviceListeners = {};
@@ -28,6 +42,9 @@ export class DAIConnection {
28
42
  activeServices = new Set([]);
29
43
  serviceInterval = null;
30
44
  _pendingDecodeCleanups = [];
45
+ /**
46
+ * Whether topic subscription state was changed explicitly by the user.
47
+ */
31
48
  topicsTouched = false;
32
49
  channels = [];
33
50
  groups = {};
@@ -43,9 +60,17 @@ export class DAIConnection {
43
60
  isFakeTopic(name) {
44
61
  return this.fakeTopics.some((t) => t.name === name);
45
62
  }
63
+ /**
64
+ * Returns synthetic topics currently merged into the topic list.
65
+ */
46
66
  getFakeTopics() {
47
67
  return this.fakeTopics;
48
68
  }
69
+ /**
70
+ * Replaces synthetic topics and enables the ones marked as enabled.
71
+ *
72
+ * @param fakeTopics - Synthetic topics to expose through the topic list.
73
+ */
49
74
  setFakeTopics(fakeTopics) {
50
75
  const previousFakeTopicNames = new Set(this.fakeTopics.map((topic) => topic.name));
51
76
  const nextFakeTopicNames = new Set(fakeTopics.map((topic) => topic.name));
@@ -253,6 +278,11 @@ export class DAIConnection {
253
278
  }
254
279
  }, 10_000);
255
280
  }
281
+ /**
282
+ * Initializes the decoder worker and opens the underlying connection.
283
+ *
284
+ * @param args - Connection and stream initialization parameters.
285
+ */
256
286
  init({ enabledStreams, defaultTopics, isViewer, ...args }) {
257
287
  if (enabledStreams && enabledStreams.length > 0) {
258
288
  logger.debug('Initializing connection with predefined streams', enabledStreams);
@@ -266,6 +296,11 @@ export class DAIConnection {
266
296
  this.recreateDecoderWorker();
267
297
  this.setupConnection(args);
268
298
  }
299
+ /**
300
+ * Creates the underlying WebSocket or WebRTC visualizer connection and attaches event handlers.
301
+ *
302
+ * @param args - Transport-specific connection parameters.
303
+ */
269
304
  setupConnection({ type, connectionUrl, clientId, token, automaticTokenRefresh, sessionRecovery, debugLogs, messageHandlerVersion, }) {
270
305
  // TODO: Enable Luxonis ICE Servers
271
306
  this.connection = new VisualizerConnection({
@@ -344,6 +379,12 @@ export class DAIConnection {
344
379
  this.reportTopics(type);
345
380
  });
346
381
  }
382
+ /**
383
+ * Maps a DepthAI service to the decoder payload kind expected by the worker.
384
+ *
385
+ * @param service - Service key to classify.
386
+ * @returns Decoder payload kind used for the service response.
387
+ */
347
388
  serviceToKind(service) {
348
389
  return service === 'pipelineSchema' ||
349
390
  service === 'fullPipelineSchema' ||
@@ -351,6 +392,12 @@ export class DAIConnection {
351
392
  ? 'pipeline'
352
393
  : 'json';
353
394
  }
395
+ /**
396
+ * Requests a service response and forwards it through the decoder worker asynchronously.
397
+ *
398
+ * @param service - Service key to request.
399
+ * @param body - Optional request body passed to the backend service.
400
+ */
354
401
  async fetchService(service,
355
402
  // biome-ignore lint/suspicious/noExplicitAny: Can't possibly be typed, we don't know request specifics
356
403
  body) {
@@ -363,7 +410,7 @@ export class DAIConnection {
363
410
  const data = await this.connection?.request({
364
411
  name: DAI_SERVICE_NAME[service] ?? service,
365
412
  timeout: 60_000,
366
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
413
+ // biome-ignore lint/suspicious/noExplicitAny: Service request bodies differ by endpoint.
367
414
  body: body,
368
415
  });
369
416
  if (data) {
@@ -378,9 +425,21 @@ export class DAIConnection {
378
425
  logger.warn(`DAI: fetchService called for service "${service}" while it's not allowed to poll`);
379
426
  }
380
427
  }
428
+ /**
429
+ * Returns whether a service is currently advertised by the backend and can be polled.
430
+ *
431
+ * @param service - Service key to check.
432
+ */
381
433
  canPollService(service) {
382
434
  return this.allowedServices.has(service);
383
435
  }
436
+ /**
437
+ * Requests and decodes one service response before resolving.
438
+ *
439
+ * @param service - Service key to request.
440
+ * @param body - Optional request body passed to the backend service.
441
+ * @returns Decoded service payload, or `null` when the service cannot be polled or decoding fails.
442
+ */
384
443
  async fetchServiceBlocking(service,
385
444
  // biome-ignore lint/suspicious/noExplicitAny: Can't possibly be typed, we don't know request specifics
386
445
  body) {
@@ -396,7 +455,7 @@ export class DAIConnection {
396
455
  const data = await this.connection?.request({
397
456
  name: DAI_SERVICE_NAME[service] ?? service,
398
457
  timeout: 60_000,
399
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
458
+ // biome-ignore lint/suspicious/noExplicitAny: Service request bodies differ by endpoint.
400
459
  body: body,
401
460
  });
402
461
  if (!data) {
@@ -447,6 +506,15 @@ export class DAIConnection {
447
506
  }, [data.buffer]);
448
507
  });
449
508
  }
509
+ /**
510
+ * Sends a request to a backend service and decodes the standard JSON response envelope.
511
+ *
512
+ * @param service - Service key to request.
513
+ * @param body - Request body passed to the backend service.
514
+ * @param onResponse - Callback invoked with the decoded response envelope.
515
+ * @param onError - Optional callback invoked when the response envelope contains an error.
516
+ * @param responseTimeout - Request timeout in milliseconds.
517
+ */
450
518
  async postToService(service, body, onResponse, onError, responseTimeout = 60_000) {
451
519
  if (!this.alive) {
452
520
  logger.warn(`DAI: postToService called while not alive for service "${service}"`);
@@ -455,7 +523,7 @@ export class DAIConnection {
455
523
  const data = await this.connection?.request({
456
524
  name: DAI_SERVICE_NAME[service] ?? service,
457
525
  timeout: responseTimeout,
458
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
526
+ // biome-ignore lint/suspicious/noExplicitAny: Service request bodies differ by endpoint.
459
527
  body: body,
460
528
  });
461
529
  const parsedResponse = decodeServiceMessage(data ?? null);
@@ -469,6 +537,14 @@ export class DAIConnection {
469
537
  }
470
538
  onResponse(parsedResponse);
471
539
  }
540
+ /**
541
+ * Sends a request to a backend service and returns the raw binary response.
542
+ *
543
+ * @param service - Service key to request.
544
+ * @param body - Request body passed to the backend service.
545
+ * @param onResponse - Callback invoked with the raw response data.
546
+ * @param responseTimeout - Request timeout in milliseconds.
547
+ */
472
548
  async postToServiceRaw(service, body, onResponse, responseTimeout = 60_000) {
473
549
  if (!this.alive) {
474
550
  logger.warn(`DAI: postToService called while not alive for service "${service}"`);
@@ -477,14 +553,22 @@ export class DAIConnection {
477
553
  const data = await this.connection?.request({
478
554
  name: DAI_SERVICE_NAME[service] ?? service,
479
555
  timeout: responseTimeout,
480
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
556
+ // biome-ignore lint/suspicious/noExplicitAny: Service request bodies differ by endpoint.
481
557
  body: body,
482
558
  });
483
559
  onResponse(data);
484
560
  }
561
+ /**
562
+ * Replaces the set of services polled by the connection.
563
+ *
564
+ * @param services - Service keys to poll.
565
+ */
485
566
  setActiveServices(services) {
486
567
  this.activeServices = new Set(services);
487
568
  }
569
+ /**
570
+ * Closes the connection, stops polling, terminates the decoder worker, and emits `close`.
571
+ */
488
572
  dispose() {
489
573
  this.alive = false;
490
574
  for (const abort of this._pendingDecodeCleanups) {
@@ -500,6 +584,11 @@ export class DAIConnection {
500
584
  listener();
501
585
  }
502
586
  }
587
+ /**
588
+ * Sends a key press event to the backend.
589
+ *
590
+ * @param key - Keyboard key identifier to forward.
591
+ */
503
592
  handleKeyPress(key) {
504
593
  void this.connection?.request({
505
594
  name: DAI_SERVICE_NAME.keyPressed,
@@ -507,6 +596,11 @@ export class DAIConnection {
507
596
  ignoreResponse: true,
508
597
  });
509
598
  }
599
+ /**
600
+ * Toggles subscription state for a stream topic.
601
+ *
602
+ * @param topic - Topic name to toggle.
603
+ */
510
604
  toggleTopic(topic) {
511
605
  this.topicsTouched = true;
512
606
  if (this.isFakeTopic(topic)) {
@@ -529,6 +623,11 @@ export class DAIConnection {
529
623
  }
530
624
  this.reportTopics();
531
625
  }
626
+ /**
627
+ * Temporarily stops topic subscriptions while preserving previous selection state.
628
+ *
629
+ * @param topicsFilter - Optional topic allow-list to keep enabled.
630
+ */
532
631
  stopTopics(topicsFilter) {
533
632
  this.topicsTouched = false;
534
633
  this.previouslyEnabledTopics = this.enabledTopics;
@@ -540,6 +639,11 @@ export class DAIConnection {
540
639
  : [];
541
640
  this.reportTopics();
542
641
  }
642
+ /**
643
+ * Restores topic subscriptions saved by `stopTopics`.
644
+ *
645
+ * @param defaultTopics - Optional default topics to use after restart.
646
+ */
543
647
  restartTopics(defaultTopics) {
544
648
  if (defaultTopics) {
545
649
  this.defaultTopics = defaultTopics;
@@ -552,10 +656,22 @@ export class DAIConnection {
552
656
  this.shouldRestoreDefaultFakeTopics = false;
553
657
  this.reportTopics();
554
658
  }
659
+ /**
660
+ * Registers an event listener.
661
+ *
662
+ * @param event - Event name to subscribe to.
663
+ * @param callback - Callback invoked when the event fires.
664
+ */
555
665
  on(event, callback) {
556
666
  this.listeners[event] ??= [];
557
667
  this.listeners[event].push(callback);
558
668
  }
669
+ /**
670
+ * Registers a decoded service response listener.
671
+ *
672
+ * @param service - Service name to listen for.
673
+ * @param callback - Callback invoked with decoded service data.
674
+ */
559
675
  setOnService(service, callback) {
560
676
  this.serviceListeners[service] = callback;
561
677
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/dai-connection/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/dai-connection/connection.ts"],"names":[],"mappings":"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"}