@dronedeploy/rocos-js-sdk 2.6.1 → 3.0.0-alpha.20

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 (618) hide show
  1. package/IRocosSDK.d.ts +3 -26
  2. package/IRocosSDK.js +1 -5
  3. package/README.md +18 -0
  4. package/RocosSDK.d.ts +6 -1
  5. package/RocosSDK.js +103 -95
  6. package/api/StreamRegister.d.ts +1 -1
  7. package/api/StreamRegister.js +23 -12
  8. package/api/atoms/StreamHeartbeat.js +3 -7
  9. package/api/streams/caller/CallerStream.d.ts +6 -6
  10. package/api/streams/caller/CallerStream.js +41 -49
  11. package/api/streams/caller/CallerStreamAbstract.d.ts +6 -11
  12. package/api/streams/caller/CallerStreamAbstract.js +55 -67
  13. package/api/streams/caller/CallerStreamNode.d.ts +6 -6
  14. package/api/streams/caller/CallerStreamNode.js +48 -61
  15. package/api/streams/command/CommandStream.d.ts +2 -4
  16. package/api/streams/command/CommandStream.js +28 -30
  17. package/api/streams/command/CommandStreamAbstract.d.ts +4 -8
  18. package/api/streams/command/CommandStreamAbstract.js +33 -42
  19. package/api/streams/command/CommandStreamNode.d.ts +2 -4
  20. package/api/streams/command/CommandStreamNode.js +16 -40
  21. package/api/streams/control/ControlStream.d.ts +4 -6
  22. package/api/streams/control/ControlStream.js +30 -36
  23. package/api/streams/control/ControlStreamAbstract.d.ts +6 -9
  24. package/api/streams/control/ControlStreamAbstract.js +57 -54
  25. package/api/streams/control/ControlStreamNode.d.ts +3 -5
  26. package/api/streams/control/ControlStreamNode.js +19 -44
  27. package/api/streams/fileAccessor/FileAccessorStream.d.ts +2 -4
  28. package/api/streams/fileAccessor/FileAccessorStream.js +42 -57
  29. package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +4 -9
  30. package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +28 -48
  31. package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +1 -3
  32. package/api/streams/fileAccessor/FileAccessorStreamNode.js +23 -53
  33. package/api/streams/search/SearchStream.d.ts +2 -5
  34. package/api/streams/search/SearchStream.js +50 -74
  35. package/api/streams/search/SearchStreamAbstract.d.ts +4 -9
  36. package/api/streams/search/SearchStreamAbstract.js +33 -35
  37. package/api/streams/search/SearchStreamNode.d.ts +2 -5
  38. package/api/streams/search/SearchStreamNode.js +23 -48
  39. package/api/streams/telemetry/TelemetryStream.d.ts +4 -4
  40. package/api/streams/telemetry/TelemetryStream.js +49 -78
  41. package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +8 -11
  42. package/api/streams/telemetry/TelemetryStreamAbstract.js +126 -145
  43. package/api/streams/telemetry/TelemetryStreamNode.d.ts +5 -5
  44. package/api/streams/telemetry/TelemetryStreamNode.js +44 -64
  45. package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +5 -10
  46. package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +37 -20
  47. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +10 -13
  48. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +37 -37
  49. package/constants/api.d.ts +14 -5
  50. package/constants/api.js +130 -126
  51. package/constants/auth.d.ts +2 -0
  52. package/constants/auth.js +2 -0
  53. package/constants/grpc.js +5 -8
  54. package/constants/identifier.js +6 -9
  55. package/constants/timezones.d.ts +1 -1
  56. package/constants/timezones.js +1 -4
  57. package/grpc/conker_pb.client.d.ts +78 -0
  58. package/grpc/conker_pb.client.js +55 -0
  59. package/grpc/conker_pb.d.ts +141 -0
  60. package/grpc/conker_pb.grpc-client.d.ts +81 -0
  61. package/grpc/conker_pb.grpc-client.js +58 -0
  62. package/grpc/conker_pb.js +104 -0
  63. package/grpc/filagree_pb.client.d.ts +68 -0
  64. package/grpc/filagree_pb.client.js +48 -0
  65. package/grpc/filagree_pb.d.ts +404 -0
  66. package/grpc/filagree_pb.grpc-client.d.ts +69 -0
  67. package/grpc/filagree_pb.grpc-client.js +51 -0
  68. package/grpc/filagree_pb.js +329 -0
  69. package/grpc/google/protobuf/descriptor_pb.d.ts +1798 -0
  70. package/grpc/google/protobuf/descriptor_pb.js +2378 -0
  71. package/grpc/google/protobuf/empty_pb.d.ts +23 -0
  72. package/grpc/google/protobuf/empty_pb.js +47 -0
  73. package/grpc/pigeon_pb.client.d.ts +96 -0
  74. package/grpc/pigeon_pb.client.js +72 -0
  75. package/grpc/pigeon_pb.d.ts +207 -0
  76. package/grpc/pigeon_pb.grpc-client.d.ts +98 -0
  77. package/grpc/pigeon_pb.grpc-client.js +68 -0
  78. package/grpc/pigeon_pb.js +144 -0
  79. package/grpc/rambo.uri.v1_pb.d.ts +73 -0
  80. package/grpc/rambo.uri.v1_pb.js +48 -0
  81. package/grpc/rambo.v1_pb.client.d.ts +66 -0
  82. package/grpc/rambo.v1_pb.client.js +48 -0
  83. package/grpc/rambo.v1_pb.d.ts +392 -0
  84. package/grpc/rambo.v1_pb.grpc-client.d.ts +56 -0
  85. package/grpc/rambo.v1_pb.grpc-client.js +44 -0
  86. package/grpc/rambo.v1_pb.js +272 -0
  87. package/grpc/serviette.uri.v1_pb.d.ts +89 -0
  88. package/grpc/serviette.uri.v1_pb.js +62 -0
  89. package/grpc/serviette.v1_pb.client.d.ts +225 -0
  90. package/grpc/serviette.v1_pb.client.js +174 -0
  91. package/grpc/serviette.v1_pb.d.ts +827 -0
  92. package/grpc/serviette.v1_pb.grpc-client.d.ts +215 -0
  93. package/grpc/serviette.v1_pb.grpc-client.js +162 -0
  94. package/grpc/serviette.v1_pb.js +553 -0
  95. package/grpc/slowlane_pb.client.d.ts +61 -0
  96. package/grpc/slowlane_pb.client.js +41 -0
  97. package/grpc/slowlane_pb.d.ts +303 -0
  98. package/grpc/slowlane_pb.grpc-client.d.ts +64 -0
  99. package/grpc/slowlane_pb.grpc-client.js +44 -0
  100. package/grpc/slowlane_pb.js +185 -0
  101. package/grpc/teletubby_pb.client.d.ts +145 -0
  102. package/grpc/teletubby_pb.client.js +104 -0
  103. package/grpc/teletubby_pb.d.ts +634 -0
  104. package/grpc/teletubby_pb.grpc-client.d.ts +152 -0
  105. package/grpc/teletubby_pb.grpc-client.js +100 -0
  106. package/grpc/teletubby_pb.js +1264 -0
  107. package/helpers/arrayRemove.js +2 -6
  108. package/helpers/arrayUnique.js +2 -6
  109. package/helpers/average.js +2 -7
  110. package/helpers/callerMessageHelpers.d.ts +14 -0
  111. package/helpers/callerMessageHelpers.js +86 -0
  112. package/helpers/cleanObject.js +17 -19
  113. package/helpers/cleanObject.spec.d.ts +1 -0
  114. package/helpers/cleanObject.spec.js +53 -0
  115. package/helpers/enviroment.js +4 -11
  116. package/helpers/flattenCallsignsLookup.d.ts +1 -1
  117. package/helpers/flattenCallsignsLookup.js +1 -5
  118. package/helpers/flattenObject.js +1 -5
  119. package/helpers/flattenObject.spec.d.ts +1 -0
  120. package/helpers/flattenObject.spec.js +29 -0
  121. package/helpers/flattenOneOf.d.ts +67 -0
  122. package/helpers/flattenOneOf.js +29 -0
  123. package/helpers/flattenOneOf.spec.d.ts +1 -0
  124. package/helpers/flattenOneOf.spec.js +157 -0
  125. package/helpers/formatServiceUrl.js +1 -5
  126. package/helpers/formatServiceUrl.spec.d.ts +1 -0
  127. package/helpers/formatServiceUrl.spec.js +16 -0
  128. package/helpers/generateUUID.js +3 -7
  129. package/helpers/getSubscriptionsDifference.d.ts +3 -3
  130. package/helpers/getSubscriptionsDifference.js +6 -10
  131. package/helpers/getURLSearchParams.d.ts +2 -0
  132. package/helpers/getURLSearchParams.js +9 -0
  133. package/helpers/getURLSearchParams.spec.d.ts +1 -0
  134. package/helpers/getURLSearchParams.spec.js +19 -0
  135. package/helpers/getUniqueConfigKey.js +1 -6
  136. package/helpers/getUniqueId.js +3 -7
  137. package/helpers/getUnixTimeMs.js +1 -5
  138. package/helpers/index.d.ts +3 -1
  139. package/helpers/index.js +5 -15
  140. package/helpers/nanosecondToMillisecond.d.ts +1 -1
  141. package/helpers/nanosecondToMillisecond.js +11 -6
  142. package/helpers/nanosecondToMillisecond.spec.d.ts +1 -0
  143. package/helpers/nanosecondToMillisecond.spec.js +20 -0
  144. package/helpers/randomString.js +1 -5
  145. package/helpers/standardDeviation.js +4 -8
  146. package/helpers/standardDeviation.spec.d.ts +1 -0
  147. package/helpers/standardDeviation.spec.js +11 -0
  148. package/helpers/stringToUint8Array.js +3 -7
  149. package/helpers/uint8ArrayToString.js +3 -8
  150. package/helpers/websandbox/connection.d.ts +67 -0
  151. package/helpers/websandbox/connection.js +133 -0
  152. package/helpers/websandbox/frame/frame.d.ts +12 -0
  153. package/helpers/websandbox/frame/frame.js +22 -0
  154. package/helpers/websandbox/frame/frame.source.d.ts +2 -0
  155. package/helpers/websandbox/frame/frame.source.js +5 -0
  156. package/helpers/websandbox/frame/index.d.ts +2 -0
  157. package/helpers/websandbox/frame/index.js +2 -0
  158. package/helpers/websandbox/frame/worker/index.d.ts +2 -0
  159. package/helpers/websandbox/frame/worker/index.js +2 -0
  160. package/helpers/websandbox/frame/worker/manager.d.ts +11 -0
  161. package/helpers/websandbox/frame/worker/manager.js +67 -0
  162. package/helpers/websandbox/frame/worker/manager.spec.d.ts +4 -0
  163. package/helpers/websandbox/frame/worker/manager.spec.js +127 -0
  164. package/helpers/websandbox/frame/worker/types.d.ts +11 -0
  165. package/helpers/websandbox/frame/worker/types.js +1 -0
  166. package/helpers/websandbox/frame/worker/worker.d.ts +1 -0
  167. package/helpers/websandbox/frame/worker/worker.js +74 -0
  168. package/helpers/websandbox/frame/worker/worker.source.d.ts +2 -0
  169. package/helpers/websandbox/frame/worker/worker.source.js +4 -0
  170. package/helpers/websandbox/index.d.ts +2 -0
  171. package/helpers/websandbox/index.js +2 -0
  172. package/helpers/websandbox/sandbox.d.ts +57 -0
  173. package/helpers/websandbox/sandbox.js +175 -0
  174. package/helpers/websandbox/types.d.ts +13 -0
  175. package/helpers/websandbox/types.js +1 -0
  176. package/index.js +7 -19
  177. package/logger/RocosLogger.js +18 -44
  178. package/models/CallsignStatus.d.ts +6 -0
  179. package/models/CallsignStatus.js +7 -0
  180. package/models/ExportDataQuery.js +1 -5
  181. package/models/ExternalProject.js +1 -5
  182. package/models/IBaseService.d.ts +1 -0
  183. package/models/IBaseService.js +1 -2
  184. package/models/IConfigGroup.js +1 -2
  185. package/models/IDebugLevel.d.ts +1 -1
  186. package/models/IDebugLevel.js +1 -2
  187. package/models/IExportDataQuery.js +1 -2
  188. package/models/IFunctionConfig.js +1 -2
  189. package/models/IInvitation.d.ts +1 -1
  190. package/models/IInvitation.js +1 -2
  191. package/models/IInvitationExists.js +1 -2
  192. package/models/IOperation.js +1 -2
  193. package/models/IPersonalAccessToken.js +1 -2
  194. package/models/IProject.js +1 -2
  195. package/models/IProjectApplication.js +1 -2
  196. package/models/IRobot.d.ts +1 -0
  197. package/models/IRobot.js +1 -2
  198. package/models/IRobotConfig.js +1 -2
  199. package/models/IRobotPlugin.js +1 -2
  200. package/models/IRobotSettings.d.ts +28 -0
  201. package/models/IRobotSettings.js +1 -0
  202. package/models/IRobotTemplate.js +1 -2
  203. package/models/IRocosSDKConfig.d.ts +3 -9
  204. package/models/IRocosSDKConfig.js +1 -2
  205. package/models/ISource.js +1 -2
  206. package/models/IStream.js +1 -2
  207. package/models/IStreamConfig.js +1 -2
  208. package/models/IStreamOptions.js +1 -2
  209. package/models/IStreamSource.js +1 -2
  210. package/models/ISubscriberStatus.js +1 -2
  211. package/models/ITelemetryStreamConfig.js +1 -2
  212. package/models/IToken.d.ts +7 -3
  213. package/models/IToken.js +1 -2
  214. package/models/IWidget.js +1 -2
  215. package/models/IWidgetLineGroup.js +1 -2
  216. package/models/ResponseLevelEnum.d.ts +4 -0
  217. package/models/ResponseLevelEnum.js +6 -5
  218. package/models/Robot.d.ts +1 -0
  219. package/models/Robot.js +1 -5
  220. package/models/RobotConfig.js +1 -5
  221. package/models/RobotPlugin.js +1 -5
  222. package/models/RobotTemplate.js +9 -14
  223. package/models/RocosError.d.ts +1 -0
  224. package/models/RocosError.js +3 -6
  225. package/models/ServiceEnum.d.ts +2 -1
  226. package/models/ServiceEnum.js +3 -5
  227. package/models/Stream.js +4 -8
  228. package/models/StreamOptions.js +1 -5
  229. package/models/StreamSource.js +3 -7
  230. package/models/SubscriberStatusEnum.js +2 -5
  231. package/models/Token.d.ts +36 -4
  232. package/models/Token.js +74 -11
  233. package/models/Token.spec.d.ts +1 -0
  234. package/models/Token.spec.js +108 -0
  235. package/models/Widget.js +4 -8
  236. package/models/WidgetLineGroup.js +1 -5
  237. package/models/asset-storage/AssetModelItem.d.ts +3 -0
  238. package/models/asset-storage/AssetModelItem.js +1 -2
  239. package/models/caller/IRocosCallerMessageChunk.d.ts +8 -2
  240. package/models/caller/IRocosCallerMessageChunk.js +1 -2
  241. package/models/caller/IRocosCallerMessageChunks.d.ts +2 -3
  242. package/models/caller/IRocosCallerMessageChunks.js +1 -2
  243. package/models/caller/IRocosCallerMessageHeartbeat.d.ts +3 -2
  244. package/models/caller/IRocosCallerMessageHeartbeat.js +1 -2
  245. package/models/caller/IRocosCallerMessageResponse.d.ts +3 -2
  246. package/models/caller/IRocosCallerMessageResponse.js +1 -2
  247. package/models/caller/IRocosCallerMessageResponseAck.d.ts +16 -2
  248. package/models/caller/IRocosCallerMessageResponseAck.js +13 -2
  249. package/models/caller/IRocosCallerMessageResponseResult.d.ts +15 -2
  250. package/models/caller/IRocosCallerMessageResponseResult.js +12 -2
  251. package/models/caller/IRocosCallerMessageResponseReturn.d.ts +8 -0
  252. package/models/caller/IRocosCallerMessageResponseReturn.js +1 -0
  253. package/models/caller/IRocosCallerMessageResponseUid.d.ts +10 -2
  254. package/models/caller/IRocosCallerMessageResponseUid.js +7 -2
  255. package/models/caller/IRocosCallerMessageResponses.d.ts +2 -3
  256. package/models/caller/IRocosCallerMessageResponses.js +1 -2
  257. package/models/caller/RocosCallerResultStatus.d.ts +11 -1
  258. package/models/caller/RocosCallerResultStatus.js +12 -5
  259. package/models/caller/RocosResponseLevel.d.ts +6 -0
  260. package/models/caller/RocosResponseLevel.js +7 -0
  261. package/models/caller/index.d.ts +11 -0
  262. package/models/caller/index.js +11 -0
  263. package/models/callsigns/CallsignsEnums.d.ts +3 -3
  264. package/models/callsigns/CallsignsEnums.js +11 -14
  265. package/models/callsigns/CallsignsLookup.js +10 -15
  266. package/models/callsigns/CallsignsQuery.js +1 -5
  267. package/models/callsigns/CallsignsQueryPredicate.js +1 -5
  268. package/models/command/IRocosCommandMessageHeartbeat.d.ts +1 -2
  269. package/models/command/IRocosCommandMessageHeartbeat.js +1 -2
  270. package/models/command/IRocosCommandMessageResponse.d.ts +55 -2
  271. package/models/command/IRocosCommandMessageResponse.js +29 -2
  272. package/models/command/RocosCommandResultStatus.d.ts +11 -1
  273. package/models/command/RocosCommandResultStatus.js +12 -5
  274. package/models/command/index.d.ts +4 -0
  275. package/models/command/index.js +4 -0
  276. package/models/file/FileEnums.d.ts +4 -4
  277. package/models/file/FileEnums.js +9 -12
  278. package/models/index.d.ts +6 -31
  279. package/models/index.js +76 -113
  280. package/models/integrations/Overlay.js +1 -2
  281. package/models/integrations/Plan.js +1 -2
  282. package/models/maps/Map.d.ts +2 -3
  283. package/models/maps/Map.js +1 -2
  284. package/models/maps/Panorama.d.ts +36 -0
  285. package/models/maps/Panorama.js +1 -0
  286. package/models/message/IRocosCallerMessage.js +1 -2
  287. package/models/message/IRocosChangeMessage.js +1 -2
  288. package/models/message/IRocosCommandMessage.js +1 -2
  289. package/models/message/IRocosControlMessage.js +1 -2
  290. package/models/message/IRocosOpResultMessage.d.ts +2 -2
  291. package/models/message/IRocosOpResultMessage.js +1 -2
  292. package/models/message/IRocosSearchMessage.js +1 -2
  293. package/models/message/IRocosSearchRowMessage.js +1 -2
  294. package/models/message/IRocosSearchStatusMessage.js +1 -2
  295. package/models/message/IRocosTelemetryMessage.d.ts +12 -7
  296. package/models/message/IRocosTelemetryMessage.js +1 -2
  297. package/models/message/IStreamStatusMessage.js +1 -2
  298. package/models/message/RocosCallerMessage.d.ts +2 -4
  299. package/models/message/RocosCallerMessage.js +24 -15
  300. package/models/message/RocosCommandMessage.d.ts +2 -3
  301. package/models/message/RocosCommandMessage.js +5 -8
  302. package/models/message/RocosControlMessage.d.ts +1 -1
  303. package/models/message/RocosControlMessage.js +6 -10
  304. package/models/message/RocosOpResultMessage.d.ts +3 -2
  305. package/models/message/RocosOpResultMessage.js +6 -10
  306. package/models/message/RocosSearchMessage.d.ts +1 -1
  307. package/models/message/RocosSearchMessage.js +5 -9
  308. package/models/message/RocosSearchRowMessage.d.ts +1 -1
  309. package/models/message/RocosSearchRowMessage.js +8 -12
  310. package/models/message/RocosTelemetryMessage.d.ts +9 -23
  311. package/models/message/RocosTelemetryMessage.js +51 -93
  312. package/models/message/index.d.ts +17 -0
  313. package/models/message/index.js +17 -0
  314. package/models/params/ICallerParams.d.ts +12 -1
  315. package/models/params/ICallerParams.js +1 -2
  316. package/models/params/ICommandParams.js +1 -2
  317. package/models/params/IControlParams.d.ts +1 -1
  318. package/models/params/IControlParams.js +1 -2
  319. package/models/params/IFileAccessorParams.js +1 -2
  320. package/models/params/ISearchParams.js +1 -2
  321. package/models/params/ITelemetryParams.d.ts +1 -1
  322. package/models/params/ITelemetryParams.js +1 -2
  323. package/models/params/IWebRTCSignallingParams.js +1 -2
  324. package/models/projects/ProjectUser.js +1 -2
  325. package/models/schedule/IScheduleAction.d.ts +1 -1
  326. package/models/schedule/IScheduleAction.js +2 -5
  327. package/models/schedule/IScheduleInfo.js +1 -2
  328. package/models/schedule/IScheduleJob.js +1 -2
  329. package/models/search/SearchQueryFilter.js +1 -5
  330. package/models/search/SearchStreamQuery.js +1 -5
  331. package/models/stream/IBaseStream.js +1 -2
  332. package/models/stream/ICallerStream.js +1 -2
  333. package/models/stream/ICommandStream.js +1 -2
  334. package/models/stream/IControlStream.js +1 -2
  335. package/models/stream/IFileAccessorStream.d.ts +1 -2
  336. package/models/stream/IFileAccessorStream.js +1 -2
  337. package/models/stream/ISearchStream.js +1 -2
  338. package/models/stream/ITelemetryStream.js +1 -2
  339. package/models/stream/IWebRTCSignallingStream.d.ts +51 -16
  340. package/models/stream/IWebRTCSignallingStream.js +1 -7
  341. package/models/types.d.ts +5 -5
  342. package/models/types.js +1 -2
  343. package/models/workflow/Workflow.d.ts +36 -0
  344. package/models/workflow/Workflow.js +1 -0
  345. package/node/RocosSDKNode.d.ts +6 -1
  346. package/node/RocosSDKNode.js +82 -80
  347. package/node/index.js +7 -19
  348. package/package.json +10 -11
  349. package/services/AssetStorageService.d.ts +23 -1
  350. package/services/AssetStorageService.js +53 -24
  351. package/services/AuthService.d.ts +59 -27
  352. package/services/AuthService.js +167 -86
  353. package/services/AuthService.spec.d.ts +1 -0
  354. package/services/AuthService.spec.js +163 -0
  355. package/services/BaseServiceAbstract.d.ts +11 -13
  356. package/services/BaseServiceAbstract.js +18 -24
  357. package/services/BaseStreamService.d.ts +18 -0
  358. package/services/BaseStreamService.js +47 -0
  359. package/services/CallerService.d.ts +37 -17
  360. package/services/CallerService.js +86 -65
  361. package/services/CallerService.spec.d.ts +1 -0
  362. package/services/CallerService.spec.js +227 -0
  363. package/services/CallerServiceNode.js +4 -8
  364. package/services/CommandService.d.ts +5 -17
  365. package/services/CommandService.js +19 -62
  366. package/services/CommandServiceNode.js +4 -8
  367. package/services/ConfigGroupService.js +17 -21
  368. package/services/ControlService.d.ts +5 -17
  369. package/services/ControlService.js +22 -65
  370. package/services/ControlServiceNode.js +4 -8
  371. package/services/DashboardService.js +20 -24
  372. package/services/EvaluatorService.d.ts +11 -0
  373. package/services/EvaluatorService.js +28 -0
  374. package/services/EventService.js +13 -17
  375. package/services/FileAccessorService.d.ts +4 -18
  376. package/services/FileAccessorService.js +14 -62
  377. package/services/FileAccessorServiceNode.js +4 -8
  378. package/services/FunctionService.js +17 -21
  379. package/services/IntegrationService.js +14 -19
  380. package/services/MapService.d.ts +71 -25
  381. package/services/MapService.js +113 -40
  382. package/services/PlatformTimeService.js +8 -12
  383. package/services/PlatformTimeService.spec.d.ts +1 -0
  384. package/services/PlatformTimeService.spec.js +180 -0
  385. package/services/ProfileService.js +36 -40
  386. package/services/ProjectService.js +23 -27
  387. package/services/RobotService.d.ts +2 -6
  388. package/services/RobotService.js +48 -55
  389. package/services/ScheduleService.js +10 -14
  390. package/services/SearchService.d.ts +4 -17
  391. package/services/SearchService.js +24 -59
  392. package/services/SearchServiceNode.js +4 -8
  393. package/services/SpotProvisioningService.d.ts +1 -1
  394. package/services/SpotProvisioningService.js +16 -16
  395. package/services/SpotProvisioningServiceNode.d.ts +1 -1
  396. package/services/SpotProvisioningServiceNode.js +16 -16
  397. package/services/StreamService.js +26 -30
  398. package/services/TelemetryService.d.ts +15 -17
  399. package/services/TelemetryService.js +103 -93
  400. package/services/TelemetryService.spec.d.ts +1 -0
  401. package/services/TelemetryService.spec.js +37 -0
  402. package/services/TelemetryServiceNode.js +4 -8
  403. package/services/TimeSyncerService.js +9 -13
  404. package/services/UserService.js +37 -41
  405. package/services/WebRTCSignallingService.d.ts +4 -4
  406. package/services/WebRTCSignallingService.js +24 -27
  407. package/services/WorkflowService.d.ts +25 -29
  408. package/services/WorkflowService.js +39 -75
  409. package/services/index.d.ts +1 -0
  410. package/services/index.js +27 -38
  411. package/store/RocosStore.js +9 -15
  412. package/demo/angular/.editorconfig +0 -16
  413. package/demo/angular/.eslintignore +0 -4
  414. package/demo/angular/.eslintrc.json +0 -50
  415. package/demo/angular/README.md +0 -36
  416. package/demo/angular/angular.json +0 -132
  417. package/demo/angular/karma.conf.js +0 -44
  418. package/demo/angular/package.json +0 -41
  419. package/demo/angular/src/app/app.component.css +0 -0
  420. package/demo/angular/src/app/app.component.html +0 -9
  421. package/demo/angular/src/app/app.component.ts +0 -10
  422. package/demo/angular/src/app/app.module.ts +0 -38
  423. package/demo/angular/src/app/components/assets/assets.component.css +0 -0
  424. package/demo/angular/src/app/components/assets/assets.component.html +0 -29
  425. package/demo/angular/src/app/components/assets/assets.component.ts +0 -107
  426. package/demo/angular/src/app/components/auth/auth.component.css +0 -0
  427. package/demo/angular/src/app/components/auth/auth.component.html +0 -27
  428. package/demo/angular/src/app/components/auth/auth.component.ts +0 -33
  429. package/demo/angular/src/app/components/caller/caller.component.css +0 -0
  430. package/demo/angular/src/app/components/caller/caller.component.html +0 -22
  431. package/demo/angular/src/app/components/caller/caller.component.ts +0 -61
  432. package/demo/angular/src/app/components/command/command.component.css +0 -0
  433. package/demo/angular/src/app/components/command/command.component.html +0 -22
  434. package/demo/angular/src/app/components/command/command.component.ts +0 -60
  435. package/demo/angular/src/app/components/integrations/integrations.component.ts +0 -43
  436. package/demo/angular/src/app/components/robots/robots.component.css +0 -0
  437. package/demo/angular/src/app/components/robots/robots.component.html +0 -13
  438. package/demo/angular/src/app/components/robots/robots.component.ts +0 -26
  439. package/demo/angular/src/app/components/sdk/sdk.component.css +0 -0
  440. package/demo/angular/src/app/components/sdk/sdk.component.html +0 -43
  441. package/demo/angular/src/app/components/sdk/sdk.component.ts +0 -50
  442. package/demo/angular/src/app/components/subscription/subscription.component.css +0 -0
  443. package/demo/angular/src/app/components/subscription/subscription.component.html +0 -6
  444. package/demo/angular/src/app/components/subscription/subscription.component.ts +0 -40
  445. package/demo/angular/src/app/components/telemetry/telemetry.component.css +0 -0
  446. package/demo/angular/src/app/components/telemetry/telemetry.component.html +0 -19
  447. package/demo/angular/src/app/components/telemetry/telemetry.component.ts +0 -61
  448. package/demo/angular/src/app/components/token/token.component.css +0 -0
  449. package/demo/angular/src/app/components/token/token.component.html +0 -10
  450. package/demo/angular/src/app/components/token/token.component.ts +0 -18
  451. package/demo/angular/src/app/components/video/p2pvideo/index.ts +0 -646
  452. package/demo/angular/src/app/components/video/video-source.ts +0 -315
  453. package/demo/angular/src/app/components/video/video.component.css +0 -6
  454. package/demo/angular/src/app/components/video/video.component.html +0 -54
  455. package/demo/angular/src/app/components/video/video.component.ts +0 -151
  456. package/demo/angular/src/app/services/sdk.service.ts +0 -193
  457. package/demo/angular/src/assets/.gitkeep +0 -0
  458. package/demo/angular/src/assets/HKGrotesk-Bold.otf +0 -0
  459. package/demo/angular/src/assets/HKGrotesk-Regular.otf +0 -0
  460. package/demo/angular/src/assets/logo.svg +0 -16
  461. package/demo/angular/src/environments/environment.prod.ts +0 -3
  462. package/demo/angular/src/environments/environment.ts +0 -16
  463. package/demo/angular/src/favicon.ico +0 -0
  464. package/demo/angular/src/index.html +0 -15
  465. package/demo/angular/src/main.ts +0 -7
  466. package/demo/angular/src/polyfills.ts +0 -53
  467. package/demo/angular/src/styles.css +0 -198
  468. package/demo/angular/tsconfig.app.json +0 -15
  469. package/demo/angular/tsconfig.json +0 -39
  470. package/demo/html/README.md +0 -8
  471. package/demo/html/assets/HKGrotesk-Bold.otf +0 -0
  472. package/demo/html/assets/HKGrotesk-Regular.otf +0 -0
  473. package/demo/html/assets/logo.svg +0 -16
  474. package/demo/html/favicon.ico +0 -0
  475. package/demo/html/index.html +0 -416
  476. package/demo/html/rocos-js-sdk.js +0 -3
  477. package/demo/html/rocos-js-sdk.js.LICENSE.txt +0 -8
  478. package/demo/html/rocos-js-sdk.js.map +0 -1
  479. package/demo/html/styles.css +0 -190
  480. package/demo/node/README.md +0 -17
  481. package/demo/node/index.js +0 -134
  482. package/demo/node/package.json +0 -8
  483. package/demo/react/.env +0 -1
  484. package/demo/react/.env.dist +0 -1
  485. package/demo/react/.eslintrc.json +0 -46
  486. package/demo/react/README.md +0 -65
  487. package/demo/react/package.json +0 -60
  488. package/demo/react/public/favicon.ico +0 -0
  489. package/demo/react/public/index.html +0 -43
  490. package/demo/react/public/logo192.png +0 -0
  491. package/demo/react/public/logo512.png +0 -0
  492. package/demo/react/public/manifest.json +0 -25
  493. package/demo/react/public/robots.txt +0 -3
  494. package/demo/react/src/App.css +0 -190
  495. package/demo/react/src/App.tsx +0 -31
  496. package/demo/react/src/actions/index.ts +0 -8
  497. package/demo/react/src/actions/sdkActions.ts +0 -62
  498. package/demo/react/src/assets/HKGrotesk-Bold.otf +0 -0
  499. package/demo/react/src/assets/HKGrotesk-Regular.otf +0 -0
  500. package/demo/react/src/assets/logo.svg +0 -16
  501. package/demo/react/src/components/AuthForm.tsx +0 -76
  502. package/demo/react/src/components/CallerBox.tsx +0 -53
  503. package/demo/react/src/components/CallerForm.tsx +0 -98
  504. package/demo/react/src/components/CommandBox.tsx +0 -47
  505. package/demo/react/src/components/CommandForm.tsx +0 -98
  506. package/demo/react/src/components/RobotsForm.tsx +0 -51
  507. package/demo/react/src/components/SubscriptionBox.tsx +0 -55
  508. package/demo/react/src/components/TelemetryForm.tsx +0 -98
  509. package/demo/react/src/components/TokenForm.tsx +0 -39
  510. package/demo/react/src/config.json +0 -14
  511. package/demo/react/src/controllers/RocosSDKController.ts +0 -48
  512. package/demo/react/src/helpers/deepEqual.ts +0 -27
  513. package/demo/react/src/hooks/useInput.ts +0 -29
  514. package/demo/react/src/index.css +0 -11
  515. package/demo/react/src/index.tsx +0 -26
  516. package/demo/react/src/react-app-env.d.ts +0 -1
  517. package/demo/react/src/reducers/sdkReducer.ts +0 -133
  518. package/demo/react/src/reportWebVitals.ts +0 -15
  519. package/demo/react/src/selectors/sdkSelector.ts +0 -11
  520. package/demo/react/src/setupTests.ts +0 -5
  521. package/demo/react/src/store.ts +0 -14
  522. package/demo/react/tsconfig.json +0 -26
  523. package/demo/sdk-sizer/dist/sdk-sizer/3rdpartylicenses.txt +0 -975
  524. package/demo/sdk-sizer/dist/sdk-sizer/favicon.ico +0 -0
  525. package/demo/sdk-sizer/dist/sdk-sizer/index.html +0 -12
  526. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js +0 -2
  527. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js.map +0 -1
  528. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js +0 -2
  529. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js.map +0 -1
  530. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js +0 -2
  531. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js.map +0 -1
  532. package/demo/sdk-sizer/dist/sdk-sizer/stats.json +0 -1
  533. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css +0 -2
  534. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css.map +0 -1
  535. package/grpc/file-accessor/filagree_grpc_pb.d.ts +0 -41
  536. package/grpc/file-accessor/filagree_grpc_pb.js +0 -121
  537. package/grpc/file-accessor/filagree_pb.d.ts +0 -339
  538. package/grpc/file-accessor/filagree_pb.js +0 -2261
  539. package/grpc/file-accessor/filagree_pb_service.d.ts +0 -115
  540. package/grpc/file-accessor/filagree_pb_service.js +0 -257
  541. package/grpc/rambo/rambo.v1_grpc_pb.d.ts +0 -39
  542. package/grpc/rambo/rambo.v1_grpc_pb.js +0 -73
  543. package/grpc/rambo/rambo.v1_pb.d.ts +0 -365
  544. package/grpc/rambo/rambo.v1_pb.js +0 -2469
  545. package/grpc/rambo/rambo.v1_pb_service.d.ts +0 -76
  546. package/grpc/rambo/rambo.v1_pb_service.js +0 -138
  547. package/grpc/rambo/uri.v1_grpc_pb.d.ts +0 -1
  548. package/grpc/rambo/uri.v1_grpc_pb.js +0 -1
  549. package/grpc/rambo/uri.v1_pb.d.ts +0 -80
  550. package/grpc/rambo/uri.v1_pb.js +0 -563
  551. package/grpc/rambo/uri.v1_pb_service.d.ts +0 -3
  552. package/grpc/rambo/uri.v1_pb_service.js +0 -3
  553. package/grpc/robot-control/conker_grpc_pb.d.ts +0 -46
  554. package/grpc/robot-control/conker_grpc_pb.js +0 -143
  555. package/grpc/robot-control/conker_pb.d.ts +0 -168
  556. package/grpc/robot-control/conker_pb.js +0 -1287
  557. package/grpc/robot-control/conker_pb_service.d.ts +0 -126
  558. package/grpc/robot-control/conker_pb_service.js +0 -301
  559. package/grpc/serviette/common.v1_grpc_pb.d.ts +0 -1
  560. package/grpc/serviette/common.v1_grpc_pb.js +0 -1
  561. package/grpc/serviette/common.v1_pb.d.ts +0 -8
  562. package/grpc/serviette/common.v1_pb.js +0 -45
  563. package/grpc/serviette/common.v1_pb_service.d.ts +0 -3
  564. package/grpc/serviette/common.v1_pb_service.js +0 -3
  565. package/grpc/serviette/serviette.v1_grpc_pb.d.ts +0 -137
  566. package/grpc/serviette/serviette.v1_grpc_pb.js +0 -331
  567. package/grpc/serviette/serviette.v1_pb.d.ts +0 -884
  568. package/grpc/serviette/serviette.v1_pb.js +0 -6363
  569. package/grpc/serviette/serviette.v1_pb_service.d.ts +0 -278
  570. package/grpc/serviette/serviette.v1_pb_service.js +0 -699
  571. package/grpc/serviette/uri.v1_grpc_pb.d.ts +0 -1
  572. package/grpc/serviette/uri.v1_grpc_pb.js +0 -1
  573. package/grpc/serviette/uri.v1_pb.d.ts +0 -102
  574. package/grpc/serviette/uri.v1_pb.js +0 -741
  575. package/grpc/serviette/uri.v1_pb_service.d.ts +0 -3
  576. package/grpc/serviette/uri.v1_pb_service.js +0 -3
  577. package/grpc/slowlane/slowlane_grpc_pb.d.ts +0 -38
  578. package/grpc/slowlane/slowlane_grpc_pb.js +0 -132
  579. package/grpc/slowlane/slowlane_pb.d.ts +0 -373
  580. package/grpc/slowlane/slowlane_pb.js +0 -2908
  581. package/grpc/slowlane/slowlane_pb_service.d.ts +0 -112
  582. package/grpc/slowlane/slowlane_pb_service.js +0 -189
  583. package/grpc/teletubby/teletubby_grpc_pb.d.ts +0 -73
  584. package/grpc/teletubby/teletubby_grpc_pb.js +0 -231
  585. package/grpc/teletubby/teletubby_pb.d.ts +0 -647
  586. package/grpc/teletubby/teletubby_pb.js +0 -4786
  587. package/grpc/teletubby/teletubby_pb_service.d.ts +0 -193
  588. package/grpc/teletubby/teletubby_pb_service.js +0 -436
  589. package/grpc/video/pigeon_grpc_pb.d.ts +0 -59
  590. package/grpc/video/pigeon_grpc_pb.js +0 -180
  591. package/grpc/video/pigeon_pb.d.ts +0 -237
  592. package/grpc/video/pigeon_pb.js +0 -1775
  593. package/grpc/video/pigeon_pb_service.d.ts +0 -152
  594. package/grpc/video/pigeon_pb_service.js +0 -292
  595. package/models/ISignupParams.d.ts +0 -8
  596. package/models/ISignupParams.js +0 -2
  597. package/utils/axisangle.d.ts +0 -18
  598. package/utils/axisangle.js +0 -48
  599. package/utils/eulerangles.d.ts +0 -22
  600. package/utils/eulerangles.js +0 -133
  601. package/utils/helperfunctions.d.ts +0 -5
  602. package/utils/helperfunctions.js +0 -50
  603. package/utils/localtransform.d.ts +0 -17
  604. package/utils/localtransform.js +0 -50
  605. package/utils/localtransformtree.d.ts +0 -17
  606. package/utils/localtransformtree.js +0 -88
  607. package/utils/misc.d.ts +0 -17
  608. package/utils/misc.js +0 -23
  609. package/utils/positionvector.d.ts +0 -13
  610. package/utils/positionvector.js +0 -79
  611. package/utils/quaternion.d.ts +0 -20
  612. package/utils/quaternion.js +0 -62
  613. package/utils/rotationmatrix.d.ts +0 -23
  614. package/utils/rotationmatrix.js +0 -262
  615. package/utils/transformationmatrix.d.ts +0 -12
  616. package/utils/transformationmatrix.js +0 -123
  617. package/utils/vector3.d.ts +0 -11
  618. package/utils/vector3.js +0 -61
@@ -1,12 +1,8 @@
1
1
  import { BehaviorSubject, Subject } from 'rxjs';
2
- import { ITelemetryParams } from '../../../models/params/ITelemetryParams';
3
- import { TelemetryAckStatusMap, TelemetryQueryRequest, TelemetryRequest } from '../../../grpc/teletubby/teletubby_pb';
4
- import { IRocosTelemetryMessage } from '../../../models/message/IRocosTelemetryMessage';
5
- import { ITelemetryStream } from '../../../models/stream/ITelemetryStream';
6
- import { ITelemetryStreamConfig } from '../../../models/ITelemetryStreamConfig';
2
+ import { IRocosTelemetryMessage, ITelemetryParams, ITelemetryStream, ITelemetryStreamConfig, SubscriberStatusEnum } from '../../../models';
3
+ import { TelemetryAckStatus, TelemetryMessage, TelemetryQueryRequest, TelemetryRequest, TelemetryStreamMessage } from '../../../grpc/teletubby_pb';
7
4
  import { Logger } from 'loglevel';
8
5
  import { StreamHeartbeat } from '../../atoms/StreamHeartbeat';
9
- import { SubscriberStatusEnum } from '../../../models/SubscriberStatusEnum';
10
6
  export declare abstract class TelemetryStreamAbstract implements ITelemetryStream {
11
7
  messageStream$: Subject<IRocosTelemetryMessage>;
12
8
  identifier: string;
@@ -22,7 +18,7 @@ export declare abstract class TelemetryStreamAbstract implements ITelemetryStrea
22
18
  protected subscriberStatus: SubscriberStatusEnum;
23
19
  private checkerStartedAt?;
24
20
  private lastRobotMessageReceived?;
25
- private messagesTimer;
21
+ private messagesTimer?;
26
22
  private lastMessageReceived?;
27
23
  private retryTimes;
28
24
  private options;
@@ -37,16 +33,17 @@ export declare abstract class TelemetryStreamAbstract implements ITelemetryStrea
37
33
  protected abstract registerReceiver(): () => void;
38
34
  protected abstract requestTelemetryQuery(req: TelemetryQueryRequest): Promise<void>;
39
35
  protected abstract requestTelemetry(req: TelemetryRequest): Promise<void>;
40
- protected abstract sendAcknowledgmentInternal(uid: string, status: TelemetryAckStatusMap[keyof TelemetryAckStatusMap], noRetry: boolean): boolean;
36
+ protected abstract sendAcknowledgmentInternal(uid: string, status: TelemetryAckStatus, noRetry: boolean): boolean;
41
37
  protected abstract sendHeartbeat(): void;
42
38
  setToken(token: string): void;
43
39
  init(): void;
44
40
  stopStream(): void;
45
41
  addSubscription(params: ITelemetryParams): void;
46
42
  removeSubscription(params: ITelemetryParams, terminateReceiverGroup?: boolean): Promise<void>;
47
- sendAcknowledgment(uid: string, status: TelemetryAckStatusMap[keyof TelemetryAckStatusMap], noRetry: boolean): boolean;
43
+ sendAcknowledgment(uid: string, status: TelemetryAckStatus, noRetry: boolean): boolean;
48
44
  private getSubscriptions;
49
- protected onData(message: IRocosTelemetryMessage): void;
45
+ protected onData(message: TelemetryStreamMessage, isStream: true): void;
46
+ protected onData(message: TelemetryMessage, isStream: false): void;
50
47
  private takeTelemetryAction;
51
48
  protected listenMessagesAndRenew(): void;
52
49
  private addTerminateToAction;
@@ -58,5 +55,5 @@ export declare abstract class TelemetryStreamAbstract implements ITelemetryStrea
58
55
  private isFoundCallsign;
59
56
  private isFoundSource;
60
57
  private isRegisteredMessage;
61
- private updateReceviedDataStatsWithMessage;
58
+ private updateReceivedDataStatsWithMessage;
62
59
  }
@@ -1,64 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TelemetryStreamAbstract = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const grpc_1 = require("../../../constants/grpc");
6
- const teletubby_pb_1 = require("../../../grpc/teletubby/teletubby_pb");
7
- const CallsignsLookup_1 = require("../../../models/callsigns/CallsignsLookup");
8
- const CallsignsEnums_1 = require("../../../models/callsigns/CallsignsEnums");
9
- const identifier_1 = require("../../../constants/identifier");
10
- const RocosStore_1 = require("../../../store/RocosStore");
11
- const RocosTelemetryMessage_1 = require("../../../models/message/RocosTelemetryMessage");
12
- const StreamHeartbeat_1 = require("../../atoms/StreamHeartbeat");
13
- const StreamOptions_1 = require("../../../models/StreamOptions");
14
- const StreamRegister_1 = require("../../StreamRegister");
15
- const SubscriberStatusEnum_1 = require("../../../models/SubscriberStatusEnum");
16
- const arrayUnique_1 = require("../../../helpers/arrayUnique");
17
- const operators_1 = require("rxjs/operators");
18
- const getSubscriptionsDifference_1 = require("../../../helpers/getSubscriptionsDifference");
19
- class TelemetryStreamAbstract {
1
+ import { BehaviorSubject, Subject } from 'rxjs';
2
+ import { CallsignsLookup, CallsignsLookupType, RocosTelemetryMessage, StreamOptions, SubscriberStatusEnum, } from '../../../models';
3
+ import { GRPC_SOURCE_NOOP, GRPC_SOURCE_SUBSCRIBED } from '../../../constants/grpc';
4
+ import { QueryOrPredicate, TelemetryAckStatus, TelemetryQueryRequest, TelemetryRequest, UnsubscribeOperation, } from '../../../grpc/teletubby_pb';
5
+ import { IDENTIFIER_NAME_TELEMETRY } from '../../../constants/identifier';
6
+ import { RocosStore } from '../../../store/RocosStore';
7
+ import { StreamHeartbeat } from '../../atoms/StreamHeartbeat';
8
+ import { StreamRegister } from '../../StreamRegister';
9
+ import { arrayUnique } from '../../../helpers/arrayUnique';
10
+ import { filter } from 'rxjs/operators';
11
+ import { getSubscriptionsDifference } from '../../../helpers/getSubscriptionsDifference';
12
+ export class TelemetryStreamAbstract {
20
13
  constructor(config) {
21
14
  // /////////////////
22
15
  // Subscriber Check
23
16
  this.timerIntervalInSec = 1;
24
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.STOPPED;
17
+ this.subscriberStatus = SubscriberStatusEnum.STOPPED;
25
18
  this.retryTimes = 0;
26
19
  this.receivedMessagesCount = 0;
27
20
  // send heartbeat timeout is set to 5 seconds 5000
28
21
  this.sendHeartbeatTime = 5000;
29
22
  this.receivedDataStats = {};
30
23
  this.subscriptions = new Map();
31
- this.identifier = StreamRegister_1.StreamRegister.getIdentifier(identifier_1.IDENTIFIER_NAME_TELEMETRY, config.scope);
24
+ this.identifier = StreamRegister.getIdentifier(IDENTIFIER_NAME_TELEMETRY, config.scope);
32
25
  this.projectId = config.projectId;
33
26
  this.callsignsLookup = config.callsignsLookup;
34
27
  this.token = config.token;
35
28
  this.scope = config.scope;
36
29
  this.url = config.url;
37
30
  // make sure sources are unique for later comparison
38
- this.sources = arrayUnique_1.arrayUnique(config.sources);
39
- this.options = StreamOptions_1.StreamOptions.fromModel(config.options);
40
- this.messageStream$ = new rxjs_1.Subject();
41
- this.statusStream$ = new rxjs_1.BehaviorSubject(SubscriberStatusEnum_1.SubscriberStatusEnum.STOPPED);
42
- this.heartbeat = new StreamHeartbeat_1.StreamHeartbeat(this.identifier);
43
- // autoResubscribeEnabled = false
44
- // // Resubscribe when received messages above this limit.
45
- // autoResubscribeMessageLimit = 100
46
- // // In seconds
47
- // autoResubscribeMinimumTime = 10
48
- // messageTimeoutInSec = 10
49
- // TODO: implement receive heartbeat handler
50
- // this.heartbeat
51
- // .setHealthTimeout(6000)
52
- // .setHealthMaxTimeout(10)
53
- // .setHealthMaxMisses(5)
54
- // .setHealthCheckStatusCallback(async (status) => {
55
- // console.log('heartbeat status', status)
56
- // })
57
- // .setHealthCheckErrorCallback(async () => {
58
- // console.log('heartbeat error')
59
- // })
60
- RocosStore_1.RocosStore.getChangeSubject()
61
- .pipe(operators_1.filter((message) => {
31
+ this.sources = arrayUnique(config.sources);
32
+ this.options = StreamOptions.fromModel(config.options);
33
+ this.messageStream$ = new Subject();
34
+ this.statusStream$ = new BehaviorSubject(SubscriberStatusEnum.STOPPED);
35
+ this.heartbeat = new StreamHeartbeat(this.identifier);
36
+ RocosStore.getChangeSubject()
37
+ .pipe(filter((message) => {
62
38
  return message.type === 'token' && message.url === this.url;
63
39
  }))
64
40
  .subscribe((msg) => {
@@ -74,13 +50,12 @@ class TelemetryStreamAbstract {
74
50
  this.registerReceiver();
75
51
  }
76
52
  stopStream() {
77
- var _a;
78
- (_a = this.heartbeat) === null || _a === void 0 ? void 0 : _a.stop();
53
+ this.heartbeat?.stop();
79
54
  this.stopInternal();
80
55
  if (this.messagesTimer) {
81
56
  clearInterval(this.messagesTimer);
82
57
  }
83
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.STOPPED;
58
+ this.subscriberStatus = SubscriberStatusEnum.STOPPED;
84
59
  this.statusStream$.next(this.subscriberStatus);
85
60
  }
86
61
  addSubscription(params) {
@@ -88,18 +63,21 @@ class TelemetryStreamAbstract {
88
63
  if (!this.subscriptions.has(params.uniqueId)) {
89
64
  // get subscriptions before change
90
65
  const before = this.getSubscriptions();
91
- this.subscriptions.set(params.uniqueId, Object.assign(Object.assign({}, params), { count: 1 }));
66
+ this.subscriptions.set(params.uniqueId, {
67
+ ...params,
68
+ count: 1, // set the count to one just in case it's set in param
69
+ });
92
70
  // get subscriptions after change
93
71
  const after = this.getSubscriptions();
94
72
  // assign the current values from state after change
95
- this.callsignsLookup = new CallsignsLookup_1.CallsignsLookup(Object.keys(after));
96
- this.sources = arrayUnique_1.arrayUnique(Object.values(after).reduce((a, v) => a.concat(v), []));
73
+ this.callsignsLookup = new CallsignsLookup(Object.keys(after));
74
+ this.sources = arrayUnique(Object.values(after).reduce((a, v) => a.concat(v), []));
97
75
  // compare before and after subscriptions and only add the difference
98
- const { toAdd } = getSubscriptionsDifference_1.getSubscriptionsDifference(before, after);
76
+ const { toAdd } = getSubscriptionsDifference(before, after);
99
77
  // only subscribe if the subscriberId exists, otherwise the messages will be subscribed on lazy load
100
78
  if (toAdd.callsigns.length && toAdd.sources.length) {
101
79
  this.logger.debug('New subscriptions added, we need to refresh sources', { toAdd });
102
- void this.takeTelemetryAction('subscribe', new CallsignsLookup_1.CallsignsLookup(toAdd.callsigns), toAdd.sources);
80
+ void this.takeTelemetryAction('subscribe', new CallsignsLookup(toAdd.callsigns), toAdd.sources);
103
81
  }
104
82
  }
105
83
  else {
@@ -108,7 +86,7 @@ class TelemetryStreamAbstract {
108
86
  this.subscriptions.set(params.uniqueId, subs);
109
87
  this.logger.info('Stream subscriptions already exists, increasing count', params.uniqueId, subs.count);
110
88
  }
111
- RocosStore_1.RocosStore.getChangeSubject().next({ type: 'telemetry-subscription', url: this.url, data: this.subscriptions });
89
+ RocosStore.getChangeSubject().next({ type: 'telemetry-subscription', url: this.url, data: this.subscriptions });
112
90
  }
113
91
  async removeSubscription(params, terminateReceiverGroup = false) {
114
92
  this.logger.info('Removing subscriptions from stream', params.uniqueId);
@@ -123,13 +101,13 @@ class TelemetryStreamAbstract {
123
101
  this.subscriptions.delete(params.uniqueId);
124
102
  const after = this.getSubscriptions();
125
103
  // assign the current values from state after change
126
- this.callsignsLookup = new CallsignsLookup_1.CallsignsLookup(Object.keys(after));
127
- this.sources = arrayUnique_1.arrayUnique(Object.values(after).reduce((a, v) => a.concat(v), []));
128
- const { toRemove } = getSubscriptionsDifference_1.getSubscriptionsDifference(before, after);
104
+ this.callsignsLookup = new CallsignsLookup(Object.keys(after));
105
+ this.sources = arrayUnique(Object.values(after).reduce((a, v) => a.concat(v), []));
106
+ const { toRemove } = getSubscriptionsDifference(before, after);
129
107
  if (toRemove.callsigns.length && toRemove.sources.length) {
130
108
  this.logger.debug('Subscriptions removed, we need to refresh sources', { toRemove });
131
109
  try {
132
- await this.takeTelemetryAction('unsubscribe', new CallsignsLookup_1.CallsignsLookup(toRemove.callsigns), toRemove.sources, terminateReceiverGroup);
110
+ await this.takeTelemetryAction('unsubscribe', new CallsignsLookup(toRemove.callsigns), toRemove.sources, terminateReceiverGroup);
133
111
  }
134
112
  catch (err) {
135
113
  this.logger.error(`Failed to unsubscribe: ${err}`);
@@ -139,7 +117,7 @@ class TelemetryStreamAbstract {
139
117
  this.logger.info('No subscriptions remaining closing stream', params.uniqueId);
140
118
  this.stopStream();
141
119
  // self remove when no subscriptions a re left
142
- void StreamRegister_1.StreamRegister.getInstance().removeStream(this);
120
+ void StreamRegister.getInstance().removeStream(this);
143
121
  this.logger.info('Stream closed');
144
122
  }
145
123
  }
@@ -152,79 +130,73 @@ class TelemetryStreamAbstract {
152
130
  if (data.callsigns) {
153
131
  data.callsigns.forEach((item) => {
154
132
  if (!subs[item]) {
155
- subs[item] = arrayUnique_1.arrayUnique([...data.sources]);
133
+ subs[item] = arrayUnique([...data.sources]);
156
134
  }
157
135
  else {
158
- subs[item] = arrayUnique_1.arrayUnique([...subs[item], ...data.sources]);
136
+ subs[item] = arrayUnique([...subs[item], ...data.sources]);
159
137
  }
160
138
  });
161
139
  }
162
140
  });
163
141
  return subs;
164
142
  }
165
- onData(message) {
166
- // Increase the counter
143
+ onData(message, isStream) {
167
144
  this.receivedMessagesCount++;
168
- const { source } = message;
169
- const { callsign } = message;
145
+ let rocosMessage;
146
+ const data = {
147
+ subscriberId: this.subscriberId,
148
+ subId: this.scope,
149
+ projectId: this.projectId,
150
+ };
151
+ if (isStream) {
152
+ rocosMessage = RocosTelemetryMessage.fromTelemetryStreamMessage(message, data, 'json');
153
+ }
154
+ else {
155
+ rocosMessage = RocosTelemetryMessage.fromTelemetryMessage(message, data, 'json');
156
+ }
157
+ const { source, callsign } = rocosMessage;
170
158
  let isRobotMessage = true;
171
159
  const now = new Date();
172
160
  // Update last message received time
173
161
  this.lastMessageReceived = now;
174
- // Update the message's project id
175
- message.projectId = this.projectId;
176
- message.type = 'json';
177
- message.subId = this.scope;
178
- message.subscriberId = this.subscriberId;
179
- message.receivedAt = new Date();
180
162
  switch (source) {
181
163
  // Subscribe message
182
- case grpc_1.GRPC_SOURCE_SUBSCRIBED:
183
- // eslint-disable-next-line no-case-declarations
184
- const json = RocosTelemetryMessage_1.RocosTelemetryMessage.getPayloadAsJSON(message);
185
- // eslint-disable-next-line no-case-declarations
186
- const { subscriberId } = json;
164
+ case GRPC_SOURCE_SUBSCRIBED: {
165
+ const { subscriberId } = rocosMessage.payload;
187
166
  if (this.subscriberId && subscriberId) {
188
167
  this.logger.warn(`Replacing old subscriberId (${this.subscriberId}) with a new one (${subscriberId})`);
189
168
  }
190
169
  // Update the subscriberId
191
170
  this.subscriberId = subscriberId;
192
- message.subscriberId = this.subscriberId;
171
+ rocosMessage.subscriberId = this.subscriberId;
193
172
  this.logger.info('onData', `subscriberId has been updated - ${subscriberId}`, { subscriberId });
194
173
  void this.takeTelemetryAction('subscribe');
195
174
  this.heartbeat.start(this.sendHeartbeat, this.sendHeartbeatTime);
196
175
  isRobotMessage = false;
197
176
  break;
177
+ }
198
178
  // Server heartbeat message
199
- case grpc_1.GRPC_SOURCE_NOOP:
200
- // this.logger.debug('onData', 'received noop message');
179
+ case GRPC_SOURCE_NOOP:
201
180
  isRobotMessage = false;
202
181
  break;
203
- default:
204
- isRobotMessage = true;
205
- break;
206
- }
207
- if (!source) {
208
- isRobotMessage = false;
209
182
  }
210
183
  // Update robot last message timestamp
211
184
  if (isRobotMessage) {
212
185
  this.lastRobotMessageReceived = now;
213
186
  }
214
- message.payload = RocosTelemetryMessage_1.RocosTelemetryMessage.getPayloadByType(message);
215
187
  // Update stats
216
- this.updateReceviedDataStatsWithMessage(message);
188
+ this.updateReceivedDataStatsWithMessage(rocosMessage);
217
189
  // Send message to subscribers
218
190
  if (this.isRegisteredMessage(callsign, source) && this.messageStream$) {
219
- this.messageStream$.next(message);
220
- if (message.isackable && this.options.autoAcknowledgmentEnabled) {
221
- this.sendAcknowledgment(message.uid, teletubby_pb_1.TelemetryAckStatus.OK, false);
191
+ this.messageStream$.next(rocosMessage);
192
+ if (rocosMessage.isackable && this.options.autoAcknowledgmentEnabled) {
193
+ this.sendAcknowledgment(rocosMessage.uid, TelemetryAckStatus.OK, false);
222
194
  }
223
195
  }
224
196
  else if (isRobotMessage) {
225
197
  // acknowledge any way, as the user never receives this message
226
- if (message.isackable) {
227
- this.sendAcknowledgment(message.uid, teletubby_pb_1.TelemetryAckStatus.REJECT, true);
198
+ if (rocosMessage.isackable) {
199
+ this.sendAcknowledgment(rocosMessage.uid, TelemetryAckStatus.REJECT, true);
228
200
  }
229
201
  // All messages received should be subscribed.
230
202
  this.logger.debug('onData', 'received unsubscribed message', {
@@ -244,50 +216,55 @@ class TelemetryStreamAbstract {
244
216
  });
245
217
  return Promise.resolve();
246
218
  }
247
- const actionSources = sources !== null && sources !== void 0 ? sources : this.sources;
248
- const actionCallsigns = callsignsLookup !== null && callsignsLookup !== void 0 ? callsignsLookup : this.callsignsLookup;
249
- if (this.callsignsLookup.lookupType === CallsignsEnums_1.CallsignsLookupType.List) {
219
+ const actionSources = sources ?? this.sources;
220
+ const actionCallsigns = callsignsLookup ?? this.callsignsLookup;
221
+ if (this.callsignsLookup.lookupType === CallsignsLookupType.List) {
250
222
  // Compose the request message
251
- const req = new teletubby_pb_1.TelemetryRequest();
252
- const actions = [];
253
- const action = new teletubby_pb_1.TelemetryAction();
254
- action.setOperation(actionType);
255
- action.setCallsignsList(actionCallsigns.lookupValue);
256
- action.setSourcesList(actionSources);
223
+ const req = TelemetryRequest.create({
224
+ subscriberId: this.subscriberId,
225
+ requestedActions: [
226
+ {
227
+ operation: actionType,
228
+ callsigns: actionCallsigns.lookupValue,
229
+ sources: actionSources,
230
+ },
231
+ ],
232
+ });
257
233
  if (actionType === 'unsubscribe' && terminate) {
258
- this.addTerminateToAction(action);
234
+ this.addTerminateToAction(req.requestedActions[0]);
259
235
  }
260
- actions.push(action);
261
- req.setRequestedactionsList(actions);
262
- req.setSubscriberid(this.subscriberId);
263
236
  this.logger.debug('takeTelemetryAction', actionType, 'client.requestTelemetry', this.subscriberId);
264
237
  // Send the message to back-end.
265
238
  return this.requestTelemetry(req);
266
239
  }
267
- else if (actionCallsigns.lookupType === CallsignsEnums_1.CallsignsLookupType.Query) {
240
+ else if (actionCallsigns.lookupType === CallsignsLookupType.Query) {
268
241
  const lookupValue = actionCallsigns.lookupValue;
269
- // Compose the request message
270
- const req = new teletubby_pb_1.TelemetryQueryRequest();
271
- req.setSubscriberid(this.subscriberId);
272
- req.setSourcesList(actionSources);
273
- req.setOperation(actionType);
274
- const telemetryQuery = new teletubby_pb_1.Query();
275
- telemetryQuery.setOperation(lookupValue.operation);
276
242
  // We don't support nested query at the moment
277
243
  const queryOrPredicatesList = [];
278
244
  // Loop through user provided predicates to construct a telemetry query request
279
245
  lookupValue.predicates.forEach((callsignsPredicate) => {
280
- const queryOrPredicate = new teletubby_pb_1.QueryOrPredicate();
281
- const predicate = new teletubby_pb_1.Predicate();
282
- // Map user provided predicate value to proto object
283
- predicate.setAttribute(callsignsPredicate.attribute);
284
- predicate.setOperation(callsignsPredicate.operation);
285
- predicate.setValue(callsignsPredicate.value);
286
- queryOrPredicate.setPredicate(predicate);
246
+ const queryOrPredicate = QueryOrPredicate.create({
247
+ content: {
248
+ oneofKind: 'predicate',
249
+ predicate: {
250
+ attribute: callsignsPredicate.attribute.valueOf(),
251
+ operation: callsignsPredicate.operation.valueOf(),
252
+ value: callsignsPredicate.value,
253
+ },
254
+ },
255
+ });
287
256
  queryOrPredicatesList.push(queryOrPredicate);
288
257
  });
289
- telemetryQuery.setQueryorpredicatesList(queryOrPredicatesList);
290
- req.setCallsignquery(telemetryQuery);
258
+ // Compose the request message
259
+ const req = TelemetryQueryRequest.create({
260
+ subscriberId: this.subscriberId,
261
+ sources: actionSources,
262
+ operation: actionType,
263
+ callsignQuery: {
264
+ operation: lookupValue.operation.valueOf(),
265
+ queryOrPredicates: queryOrPredicatesList,
266
+ },
267
+ });
291
268
  this.logger.debug('takeTelemetryAction', actionType, 'client.requestTelemetry', this.subscriberId);
292
269
  // Send the telemetry query request to back-end.
293
270
  return this.requestTelemetryQuery(req);
@@ -302,45 +279,41 @@ class TelemetryStreamAbstract {
302
279
  clearInterval(timer);
303
280
  }
304
281
  this.messagesTimer = setInterval(() => {
305
- var _a;
306
282
  const now = new Date();
307
283
  const latest = this.lastMessageReceived;
308
284
  const latestRobot = this.lastRobotMessageReceived;
309
- const startedAt = (_a = this.checkerStartedAt) !== null && _a !== void 0 ? _a : new Date();
285
+ const startedAt = this.checkerStartedAt ?? new Date();
310
286
  const timeout = this.options.messageTimeoutInSec;
311
287
  let shouldRetry = false;
312
288
  let shouldAutoResubscribe = false;
313
- if (latest && (now.getTime() - latest.getTime()) / 1000 > timeout) {
314
- // If we received message before, we should retry after timeout.
315
- shouldRetry = true;
316
- }
317
- else if (!latest && startedAt && (now.getTime() - startedAt.getTime()) / 1000 > timeout) {
318
- // If we have not received message before, we should also retry after timeout.
289
+ const hasExceededTimeoutSinceLastMessage = latest && (now.getTime() - latest.getTime()) / 1000 > timeout;
290
+ const hasExceededTimeoutBeforeMessages = !latest && startedAt && (now.getTime() - startedAt.getTime()) / 1000 > timeout;
291
+ if (hasExceededTimeoutSinceLastMessage || hasExceededTimeoutBeforeMessages) {
319
292
  shouldRetry = true;
320
293
  }
321
294
  if (latestRobot) {
322
295
  // If we get robot messages at least once.
323
296
  if ((now.getTime() - latestRobot.getTime()) / 1000 > timeout) {
324
297
  // Offline
325
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.DEAD;
298
+ this.subscriberStatus = SubscriberStatusEnum.DEAD;
326
299
  }
327
300
  else {
328
301
  // Online
329
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.ALIVE;
302
+ this.subscriberStatus = SubscriberStatusEnum.ALIVE;
330
303
  }
331
304
  }
332
305
  else if ((now.getTime() - startedAt.getTime()) / 1000 > timeout) {
333
306
  // If there is no robot messages received, then we compare with startedAt time.
334
307
  // Timeout
335
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.DEAD;
308
+ this.subscriberStatus = SubscriberStatusEnum.DEAD;
336
309
  }
337
310
  else if (this.retryTimes <= 0) {
338
311
  // Still trying, status unknown.
339
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.STOPPED;
312
+ this.subscriberStatus = SubscriberStatusEnum.STOPPED;
340
313
  }
341
314
  else {
342
315
  // Tried multiple times. dead already.
343
- this.subscriberStatus = SubscriberStatusEnum_1.SubscriberStatusEnum.DEAD;
316
+ this.subscriberStatus = SubscriberStatusEnum.DEAD;
344
317
  }
345
318
  if (this.options.autoResubscribeEnabled &&
346
319
  this.receivedMessagesCount > this.options.autoResubscribeMessageLimit &&
@@ -367,13 +340,22 @@ class TelemetryStreamAbstract {
367
340
  }, this.timerIntervalInSec * 1000);
368
341
  }
369
342
  addTerminateToAction(telemetryAction) {
370
- const unsubscribeOperation = new teletubby_pb_1.UnsubscribeOperation();
371
- const unsubscribeOption = new teletubby_pb_1.UnsubscribeOption();
372
- const receiverGroupUnsubscribeOption = new teletubby_pb_1.ReceiverGroupUnsubscribeOption();
373
- receiverGroupUnsubscribeOption.setTerminate(true);
374
- unsubscribeOption.setReceivergroupunsubscribeoption(receiverGroupUnsubscribeOption);
375
- unsubscribeOperation.addOptions(unsubscribeOption);
376
- telemetryAction.setUnsubscribeoperation(unsubscribeOperation);
343
+ const unsubscribeOperation = UnsubscribeOperation.create({
344
+ options: [
345
+ {
346
+ content: {
347
+ receivergroupUnsubscribeOption: {
348
+ terminate: true,
349
+ },
350
+ oneofKind: 'receivergroupUnsubscribeOption',
351
+ },
352
+ },
353
+ ],
354
+ });
355
+ telemetryAction.content = {
356
+ oneofKind: 'unsubscribeOperation',
357
+ unsubscribeOperation,
358
+ };
377
359
  }
378
360
  messageTimeoutTryAgain() {
379
361
  // Increase retry times.
@@ -397,7 +379,7 @@ class TelemetryStreamAbstract {
397
379
  this.registerReceiver();
398
380
  }
399
381
  isFoundCallsign(callsign) {
400
- return this.callsignsLookup.lookupType === CallsignsEnums_1.CallsignsLookupType.List
382
+ return this.callsignsLookup.lookupType === CallsignsLookupType.List
401
383
  ? this.callsignsLookup.lookupValue.indexOf(callsign) !== -1
402
384
  : true; // If callsigns lookup option is query, we always return true
403
385
  }
@@ -407,7 +389,7 @@ class TelemetryStreamAbstract {
407
389
  isRegisteredMessage(callsign, source) {
408
390
  return this.isFoundCallsign(callsign) && this.isFoundSource(source);
409
391
  }
410
- updateReceviedDataStatsWithMessage(msg) {
392
+ updateReceivedDataStatsWithMessage(msg) {
411
393
  const { source } = msg;
412
394
  const { callsign } = msg;
413
395
  const id = `${callsign}-${source}`;
@@ -418,4 +400,3 @@ class TelemetryStreamAbstract {
418
400
  this.receivedDataStats[id] = count + 1;
419
401
  }
420
402
  }
421
- exports.TelemetryStreamAbstract = TelemetryStreamAbstract;
@@ -1,11 +1,11 @@
1
- import { TelemetryAckStatusMap, TelemetryQueryRequest, TelemetryRequest } from '../../../grpc/teletubby/teletubby_pb';
2
- import { ITelemetryStreamConfig } from '../../../models/ITelemetryStreamConfig';
1
+ import { ITelemetryStreamConfig } from '../../../models';
2
+ import { TelemetryAckStatus, TelemetryQueryRequest, TelemetryRequest } from '../../../grpc/teletubby_pb';
3
3
  import { TelemetryStreamAbstract } from './TelemetryStreamAbstract';
4
4
  export declare class TelemetryStreamNode extends TelemetryStreamAbstract {
5
5
  private client?;
6
6
  private stream?;
7
- private port;
8
- private credentials;
7
+ private readonly port;
8
+ private readonly credentials;
9
9
  constructor(config: ITelemetryStreamConfig);
10
10
  protected stopInternal(): void;
11
11
  protected registerReceiver(): () => void;
@@ -16,6 +16,6 @@ export declare class TelemetryStreamNode extends TelemetryStreamAbstract {
16
16
  private getMetaData;
17
17
  protected requestTelemetry(req: TelemetryRequest): Promise<void>;
18
18
  protected requestTelemetryQuery(req: TelemetryQueryRequest): Promise<void>;
19
- protected sendAcknowledgmentInternal(uid: string, status: TelemetryAckStatusMap[keyof TelemetryAckStatusMap], noRetry: boolean): boolean;
19
+ protected sendAcknowledgmentInternal(uid: string, status: TelemetryAckStatus, noRetry: boolean): boolean;
20
20
  protected sendHeartbeat(): void;
21
21
  }