@dronedeploy/rocos-js-sdk 1.0.0-alpha-2 → 2.6.1

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