@dronedeploy/rocos-js-sdk 0.0.1 → 3.0.0-alpha.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (470) hide show
  1. package/IRocosSDK.d.ts +55 -0
  2. package/IRocosSDK.js +2 -0
  3. package/README.md +108 -0
  4. package/RocosSDK.d.ts +138 -0
  5. package/RocosSDK.js +292 -0
  6. package/api/StreamRegister.d.ts +13 -0
  7. package/api/StreamRegister.js +69 -0
  8. package/api/atoms/StreamHeartbeat.d.ts +27 -0
  9. package/api/atoms/StreamHeartbeat.js +111 -0
  10. package/api/streams/caller/CallerStream.d.ts +13 -0
  11. package/api/streams/caller/CallerStream.js +77 -0
  12. package/api/streams/caller/CallerStreamAbstract.d.ts +23 -0
  13. package/api/streams/caller/CallerStreamAbstract.js +87 -0
  14. package/api/streams/caller/CallerStreamNode.d.ts +13 -0
  15. package/api/streams/caller/CallerStreamNode.js +115 -0
  16. package/api/streams/command/CommandStream.d.ts +10 -0
  17. package/api/streams/command/CommandStream.js +66 -0
  18. package/api/streams/command/CommandStreamAbstract.d.ts +20 -0
  19. package/api/streams/command/CommandStreamAbstract.js +63 -0
  20. package/api/streams/command/CommandStreamNode.d.ts +10 -0
  21. package/api/streams/command/CommandStreamNode.js +69 -0
  22. package/api/streams/control/ControlStream.d.ts +12 -0
  23. package/api/streams/control/ControlStream.js +75 -0
  24. package/api/streams/control/ControlStreamAbstract.d.ts +25 -0
  25. package/api/streams/control/ControlStreamAbstract.js +111 -0
  26. package/api/streams/control/ControlStreamNode.d.ts +12 -0
  27. package/api/streams/control/ControlStreamNode.js +73 -0
  28. package/api/streams/fileAccessor/FileAccessorStream.d.ts +8 -0
  29. package/api/streams/fileAccessor/FileAccessorStream.js +59 -0
  30. package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +21 -0
  31. package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +62 -0
  32. package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +8 -0
  33. package/api/streams/fileAccessor/FileAccessorStreamNode.js +66 -0
  34. package/api/streams/search/SearchStream.d.ts +13 -0
  35. package/api/streams/search/SearchStream.js +96 -0
  36. package/api/streams/search/SearchStreamAbstract.d.ts +25 -0
  37. package/api/streams/search/SearchStreamAbstract.js +72 -0
  38. package/api/streams/search/SearchStreamNode.d.ts +13 -0
  39. package/api/streams/search/SearchStreamNode.js +118 -0
  40. package/api/streams/telemetry/TelemetryStream.d.ts +17 -0
  41. package/api/streams/telemetry/TelemetryStream.js +97 -0
  42. package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +59 -0
  43. package/api/streams/telemetry/TelemetryStreamAbstract.js +402 -0
  44. package/api/streams/telemetry/TelemetryStreamNode.d.ts +21 -0
  45. package/api/streams/telemetry/TelemetryStreamNode.js +175 -0
  46. package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +39 -0
  47. package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +84 -0
  48. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +29 -0
  49. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +65 -0
  50. package/constants/api.d.ts +127 -0
  51. package/constants/api.js +127 -0
  52. package/constants/auth.d.ts +2 -0
  53. package/constants/auth.js +2 -0
  54. package/constants/grpc.d.ts +5 -0
  55. package/constants/grpc.js +5 -0
  56. package/constants/identifier.d.ts +6 -0
  57. package/constants/identifier.js +6 -0
  58. package/constants/timezones.d.ts +2 -0
  59. package/constants/timezones.js +427 -0
  60. package/grpc/conker_pb.client.d.ts +78 -0
  61. package/grpc/conker_pb.client.js +55 -0
  62. package/grpc/conker_pb.d.ts +141 -0
  63. package/grpc/conker_pb.grpc-client.d.ts +81 -0
  64. package/grpc/conker_pb.grpc-client.js +58 -0
  65. package/grpc/conker_pb.js +104 -0
  66. package/grpc/filagree_pb.client.d.ts +68 -0
  67. package/grpc/filagree_pb.client.js +48 -0
  68. package/grpc/filagree_pb.d.ts +404 -0
  69. package/grpc/filagree_pb.grpc-client.d.ts +69 -0
  70. package/grpc/filagree_pb.grpc-client.js +51 -0
  71. package/grpc/filagree_pb.js +329 -0
  72. package/grpc/google/protobuf/descriptor_pb.d.ts +1798 -0
  73. package/grpc/google/protobuf/descriptor_pb.js +2378 -0
  74. package/grpc/google/protobuf/empty_pb.d.ts +23 -0
  75. package/grpc/google/protobuf/empty_pb.js +47 -0
  76. package/grpc/pigeon_pb.client.d.ts +96 -0
  77. package/grpc/pigeon_pb.client.js +72 -0
  78. package/grpc/pigeon_pb.d.ts +207 -0
  79. package/grpc/pigeon_pb.grpc-client.d.ts +98 -0
  80. package/grpc/pigeon_pb.grpc-client.js +68 -0
  81. package/grpc/pigeon_pb.js +144 -0
  82. package/grpc/rambo.uri.v1_pb.d.ts +73 -0
  83. package/grpc/rambo.uri.v1_pb.js +48 -0
  84. package/grpc/rambo.v1_pb.client.d.ts +66 -0
  85. package/grpc/rambo.v1_pb.client.js +48 -0
  86. package/grpc/rambo.v1_pb.d.ts +392 -0
  87. package/grpc/rambo.v1_pb.grpc-client.d.ts +56 -0
  88. package/grpc/rambo.v1_pb.grpc-client.js +44 -0
  89. package/grpc/rambo.v1_pb.js +272 -0
  90. package/grpc/serviette.uri.v1_pb.d.ts +89 -0
  91. package/grpc/serviette.uri.v1_pb.js +62 -0
  92. package/grpc/serviette.v1_pb.client.d.ts +225 -0
  93. package/grpc/serviette.v1_pb.client.js +174 -0
  94. package/grpc/serviette.v1_pb.d.ts +827 -0
  95. package/grpc/serviette.v1_pb.grpc-client.d.ts +215 -0
  96. package/grpc/serviette.v1_pb.grpc-client.js +162 -0
  97. package/grpc/serviette.v1_pb.js +553 -0
  98. package/grpc/slowlane_pb.client.d.ts +61 -0
  99. package/grpc/slowlane_pb.client.js +41 -0
  100. package/grpc/slowlane_pb.d.ts +303 -0
  101. package/grpc/slowlane_pb.grpc-client.d.ts +64 -0
  102. package/grpc/slowlane_pb.grpc-client.js +44 -0
  103. package/grpc/slowlane_pb.js +185 -0
  104. package/grpc/teletubby_pb.client.d.ts +145 -0
  105. package/grpc/teletubby_pb.client.js +104 -0
  106. package/grpc/teletubby_pb.d.ts +634 -0
  107. package/grpc/teletubby_pb.grpc-client.d.ts +152 -0
  108. package/grpc/teletubby_pb.grpc-client.js +100 -0
  109. package/grpc/teletubby_pb.js +1264 -0
  110. package/helpers/arrayRemove.d.ts +1 -0
  111. package/helpers/arrayRemove.js +3 -0
  112. package/helpers/arrayUnique.d.ts +1 -0
  113. package/helpers/arrayUnique.js +3 -0
  114. package/helpers/average.d.ts +1 -0
  115. package/helpers/average.js +6 -0
  116. package/helpers/cleanObject.d.ts +1 -0
  117. package/helpers/cleanObject.js +18 -0
  118. package/helpers/cleanObject.spec.d.ts +1 -0
  119. package/helpers/cleanObject.spec.js +53 -0
  120. package/helpers/enviroment.d.ts +8 -0
  121. package/helpers/enviroment.js +13 -0
  122. package/helpers/flattenCallsignsLookup.d.ts +2 -0
  123. package/helpers/flattenCallsignsLookup.js +6 -0
  124. package/helpers/flattenObject.d.ts +1 -0
  125. package/helpers/flattenObject.js +13 -0
  126. package/helpers/flattenObject.spec.d.ts +1 -0
  127. package/helpers/flattenObject.spec.js +29 -0
  128. package/helpers/flattenOneOf.d.ts +67 -0
  129. package/helpers/flattenOneOf.js +29 -0
  130. package/helpers/flattenOneOf.spec.d.ts +1 -0
  131. package/helpers/flattenOneOf.spec.js +157 -0
  132. package/helpers/formatServiceUrl.d.ts +1 -0
  133. package/helpers/formatServiceUrl.js +7 -0
  134. package/helpers/formatServiceUrl.spec.d.ts +1 -0
  135. package/helpers/formatServiceUrl.spec.js +16 -0
  136. package/helpers/generateUUID.d.ts +1 -0
  137. package/helpers/generateUUID.js +4 -0
  138. package/helpers/getSubscriptionsDifference.d.ts +10 -0
  139. package/helpers/getSubscriptionsDifference.js +35 -0
  140. package/helpers/getUniqueConfigKey.d.ts +7 -0
  141. package/helpers/getUniqueConfigKey.js +14 -0
  142. package/helpers/getUniqueId.d.ts +9 -0
  143. package/helpers/getUniqueId.js +11 -0
  144. package/helpers/getUnixTimeMs.d.ts +1 -0
  145. package/helpers/getUnixTimeMs.js +4 -0
  146. package/helpers/index.d.ts +3 -0
  147. package/helpers/index.js +3 -0
  148. package/helpers/nanosecondToMillisecond.d.ts +1 -0
  149. package/helpers/nanosecondToMillisecond.js +12 -0
  150. package/helpers/nanosecondToMillisecond.spec.d.ts +1 -0
  151. package/helpers/nanosecondToMillisecond.spec.js +20 -0
  152. package/helpers/randomString.d.ts +1 -0
  153. package/helpers/randomString.js +3 -0
  154. package/helpers/standardDeviation.d.ts +1 -0
  155. package/helpers/standardDeviation.js +12 -0
  156. package/helpers/standardDeviation.spec.d.ts +1 -0
  157. package/helpers/standardDeviation.spec.js +11 -0
  158. package/helpers/stringToUint8Array.d.ts +1 -0
  159. package/helpers/stringToUint8Array.js +10 -0
  160. package/helpers/uint8ArrayToString.d.ts +1 -0
  161. package/helpers/uint8ArrayToString.js +10 -0
  162. package/index.d.ts +7 -0
  163. package/index.js +7 -0
  164. package/logger/RocosLogger.d.ts +7 -0
  165. package/logger/RocosLogger.js +37 -0
  166. package/models/CallsignStatus.d.ts +6 -0
  167. package/models/CallsignStatus.js +7 -0
  168. package/models/ExportDataQuery.d.ts +8 -0
  169. package/models/ExportDataQuery.js +13 -0
  170. package/models/ExternalProject.d.ts +6 -0
  171. package/models/ExternalProject.js +2 -0
  172. package/models/IBaseService.d.ts +4 -0
  173. package/models/IBaseService.js +1 -0
  174. package/models/IConfigGroup.d.ts +5 -0
  175. package/models/IConfigGroup.js +1 -0
  176. package/models/IDebugLevel.d.ts +2 -0
  177. package/models/IDebugLevel.js +1 -0
  178. package/models/IExportDataQuery.d.ts +9 -0
  179. package/models/IExportDataQuery.js +1 -0
  180. package/models/IFunctionConfig.d.ts +8 -0
  181. package/models/IFunctionConfig.js +1 -0
  182. package/models/IInvitation.d.ts +6 -0
  183. package/models/IInvitation.js +1 -0
  184. package/models/IInvitationExists.d.ts +4 -0
  185. package/models/IInvitationExists.js +1 -0
  186. package/models/IOperation.d.ts +6 -0
  187. package/models/IOperation.js +1 -0
  188. package/models/IPersonalAccessToken.d.ts +16 -0
  189. package/models/IPersonalAccessToken.js +1 -0
  190. package/models/IProject.d.ts +4 -0
  191. package/models/IProject.js +1 -0
  192. package/models/IProjectApplication.d.ts +6 -0
  193. package/models/IProjectApplication.js +1 -0
  194. package/models/IRobot.d.ts +18 -0
  195. package/models/IRobot.js +1 -0
  196. package/models/IRobotConfig.d.ts +8 -0
  197. package/models/IRobotConfig.js +1 -0
  198. package/models/IRobotPlugin.d.ts +3 -0
  199. package/models/IRobotPlugin.js +1 -0
  200. package/models/IRobotSettings.d.ts +28 -0
  201. package/models/IRobotSettings.js +1 -0
  202. package/models/IRobotTemplate.d.ts +10 -0
  203. package/models/IRobotTemplate.js +1 -0
  204. package/models/IRocosSDKConfig.d.ts +19 -0
  205. package/models/IRocosSDKConfig.js +1 -0
  206. package/models/ISource.d.ts +8 -0
  207. package/models/ISource.js +1 -0
  208. package/models/IStream.d.ts +9 -0
  209. package/models/IStream.js +1 -0
  210. package/models/IStreamConfig.d.ts +9 -0
  211. package/models/IStreamConfig.js +1 -0
  212. package/models/IStreamOptions.d.ts +7 -0
  213. package/models/IStreamOptions.js +1 -0
  214. package/models/IStreamSource.d.ts +8 -0
  215. package/models/IStreamSource.js +1 -0
  216. package/models/ISubscriberStatus.d.ts +5 -0
  217. package/models/ISubscriberStatus.js +1 -0
  218. package/models/ITelemetryStreamConfig.d.ts +7 -0
  219. package/models/ITelemetryStreamConfig.js +1 -0
  220. package/models/IToken.d.ts +9 -0
  221. package/models/IToken.js +1 -0
  222. package/models/IWidget.d.ts +25 -0
  223. package/models/IWidget.js +1 -0
  224. package/models/IWidgetLineGroup.d.ts +8 -0
  225. package/models/IWidgetLineGroup.js +1 -0
  226. package/models/ResponseLevelEnum.d.ts +10 -0
  227. package/models/ResponseLevelEnum.js +11 -0
  228. package/models/Robot.d.ts +20 -0
  229. package/models/Robot.js +8 -0
  230. package/models/RobotConfig.d.ts +10 -0
  231. package/models/RobotConfig.js +5 -0
  232. package/models/RobotPlugin.d.ts +5 -0
  233. package/models/RobotPlugin.js +5 -0
  234. package/models/RobotTemplate.d.ts +12 -0
  235. package/models/RobotTemplate.js +25 -0
  236. package/models/RocosError.d.ts +30 -0
  237. package/models/RocosError.js +39 -0
  238. package/models/ServiceEnum.d.ts +26 -0
  239. package/models/ServiceEnum.js +27 -0
  240. package/models/Stream.d.ts +10 -0
  241. package/models/Stream.js +11 -0
  242. package/models/StreamOptions.d.ts +9 -0
  243. package/models/StreamOptions.js +33 -0
  244. package/models/StreamSource.d.ts +10 -0
  245. package/models/StreamSource.js +11 -0
  246. package/models/SubscriberStatusEnum.d.ts +6 -0
  247. package/models/SubscriberStatusEnum.js +7 -0
  248. package/models/Token.d.ts +40 -0
  249. package/models/Token.js +78 -0
  250. package/models/Token.spec.d.ts +1 -0
  251. package/models/Token.spec.js +108 -0
  252. package/models/Widget.d.ts +27 -0
  253. package/models/Widget.js +12 -0
  254. package/models/WidgetLineGroup.d.ts +10 -0
  255. package/models/WidgetLineGroup.js +5 -0
  256. package/models/asset-storage/AssetModelItem.d.ts +29 -0
  257. package/models/asset-storage/AssetModelItem.js +1 -0
  258. package/models/caller/IRocosCallerMessageChunk.d.ts +10 -0
  259. package/models/caller/IRocosCallerMessageChunk.js +1 -0
  260. package/models/caller/IRocosCallerMessageChunks.d.ts +4 -0
  261. package/models/caller/IRocosCallerMessageChunks.js +1 -0
  262. package/models/caller/IRocosCallerMessageHeartbeat.d.ts +3 -0
  263. package/models/caller/IRocosCallerMessageHeartbeat.js +1 -0
  264. package/models/caller/IRocosCallerMessageResponse.d.ts +10 -0
  265. package/models/caller/IRocosCallerMessageResponse.js +1 -0
  266. package/models/caller/IRocosCallerMessageResponseAck.d.ts +16 -0
  267. package/models/caller/IRocosCallerMessageResponseAck.js +13 -0
  268. package/models/caller/IRocosCallerMessageResponseResult.d.ts +15 -0
  269. package/models/caller/IRocosCallerMessageResponseResult.js +12 -0
  270. package/models/caller/IRocosCallerMessageResponseReturn.d.ts +8 -0
  271. package/models/caller/IRocosCallerMessageResponseReturn.js +1 -0
  272. package/models/caller/IRocosCallerMessageResponseUid.d.ts +10 -0
  273. package/models/caller/IRocosCallerMessageResponseUid.js +7 -0
  274. package/models/caller/IRocosCallerMessageResponses.d.ts +4 -0
  275. package/models/caller/IRocosCallerMessageResponses.js +1 -0
  276. package/models/caller/RocosCallerResultStatus.d.ts +11 -0
  277. package/models/caller/RocosCallerResultStatus.js +12 -0
  278. package/models/caller/RocosResponseLevel.d.ts +6 -0
  279. package/models/caller/RocosResponseLevel.js +7 -0
  280. package/models/caller/index.d.ts +10 -0
  281. package/models/caller/index.js +10 -0
  282. package/models/callsigns/CallsignsEnums.d.ts +13 -0
  283. package/models/callsigns/CallsignsEnums.js +17 -0
  284. package/models/callsigns/CallsignsLookup.d.ts +8 -0
  285. package/models/callsigns/CallsignsLookup.js +28 -0
  286. package/models/callsigns/CallsignsQuery.d.ts +9 -0
  287. package/models/callsigns/CallsignsQuery.js +14 -0
  288. package/models/callsigns/CallsignsQueryPredicate.d.ts +9 -0
  289. package/models/callsigns/CallsignsQueryPredicate.js +15 -0
  290. package/models/command/IRocosCommandMessageHeartbeat.d.ts +1 -0
  291. package/models/command/IRocosCommandMessageHeartbeat.js +1 -0
  292. package/models/command/IRocosCommandMessageResponse.d.ts +55 -0
  293. package/models/command/IRocosCommandMessageResponse.js +29 -0
  294. package/models/command/RocosCommandResultStatus.d.ts +11 -0
  295. package/models/command/RocosCommandResultStatus.js +12 -0
  296. package/models/command/index.d.ts +4 -0
  297. package/models/command/index.js +4 -0
  298. package/models/file/FileEnums.d.ts +30 -0
  299. package/models/file/FileEnums.js +33 -0
  300. package/models/index.d.ts +75 -0
  301. package/models/index.js +75 -0
  302. package/models/integrations/Overlay.d.ts +49 -0
  303. package/models/integrations/Overlay.js +1 -0
  304. package/models/integrations/Plan.d.ts +324 -0
  305. package/models/integrations/Plan.js +1 -0
  306. package/models/maps/Map.d.ts +11 -0
  307. package/models/maps/Map.js +1 -0
  308. package/models/message/IRocosCallerMessage.d.ts +8 -0
  309. package/models/message/IRocosCallerMessage.js +1 -0
  310. package/models/message/IRocosChangeMessage.d.ts +6 -0
  311. package/models/message/IRocosChangeMessage.js +1 -0
  312. package/models/message/IRocosCommandMessage.d.ts +6 -0
  313. package/models/message/IRocosCommandMessage.js +1 -0
  314. package/models/message/IRocosControlMessage.d.ts +7 -0
  315. package/models/message/IRocosControlMessage.js +1 -0
  316. package/models/message/IRocosOpResultMessage.d.ts +6 -0
  317. package/models/message/IRocosOpResultMessage.js +1 -0
  318. package/models/message/IRocosSearchMessage.d.ts +5 -0
  319. package/models/message/IRocosSearchMessage.js +1 -0
  320. package/models/message/IRocosSearchRowMessage.d.ts +9 -0
  321. package/models/message/IRocosSearchRowMessage.js +1 -0
  322. package/models/message/IRocosSearchStatusMessage.d.ts +4 -0
  323. package/models/message/IRocosSearchStatusMessage.js +1 -0
  324. package/models/message/IRocosTelemetryMessage.d.ts +23 -0
  325. package/models/message/IRocosTelemetryMessage.js +1 -0
  326. package/models/message/IStreamStatusMessage.d.ts +5 -0
  327. package/models/message/IStreamStatusMessage.js +1 -0
  328. package/models/message/RocosCallerMessage.d.ts +10 -0
  329. package/models/message/RocosCallerMessage.js +32 -0
  330. package/models/message/RocosCommandMessage.d.ts +9 -0
  331. package/models/message/RocosCommandMessage.js +13 -0
  332. package/models/message/RocosControlMessage.d.ts +11 -0
  333. package/models/message/RocosControlMessage.js +14 -0
  334. package/models/message/RocosOpResultMessage.d.ts +10 -0
  335. package/models/message/RocosOpResultMessage.js +18 -0
  336. package/models/message/RocosSearchMessage.d.ts +9 -0
  337. package/models/message/RocosSearchMessage.js +24 -0
  338. package/models/message/RocosSearchRowMessage.d.ts +13 -0
  339. package/models/message/RocosSearchRowMessage.js +16 -0
  340. package/models/message/RocosTelemetryMessage.d.ts +10 -0
  341. package/models/message/RocosTelemetryMessage.js +63 -0
  342. package/models/message/index.d.ts +17 -0
  343. package/models/message/index.js +17 -0
  344. package/models/params/ICallerParams.d.ts +16 -0
  345. package/models/params/ICallerParams.js +1 -0
  346. package/models/params/ICommandParams.d.ts +9 -0
  347. package/models/params/ICommandParams.js +1 -0
  348. package/models/params/IControlParams.d.ts +8 -0
  349. package/models/params/IControlParams.js +1 -0
  350. package/models/params/IFileAccessorParams.d.ts +11 -0
  351. package/models/params/IFileAccessorParams.js +1 -0
  352. package/models/params/ISearchParams.d.ts +10 -0
  353. package/models/params/ISearchParams.js +1 -0
  354. package/models/params/ITelemetryParams.d.ts +18 -0
  355. package/models/params/ITelemetryParams.js +1 -0
  356. package/models/params/IWebRTCSignallingParams.d.ts +21 -0
  357. package/models/params/IWebRTCSignallingParams.js +1 -0
  358. package/models/projects/ProjectUser.d.ts +6 -0
  359. package/models/projects/ProjectUser.js +1 -0
  360. package/models/schedule/IScheduleAction.d.ts +13 -0
  361. package/models/schedule/IScheduleAction.js +6 -0
  362. package/models/schedule/IScheduleInfo.d.ts +11 -0
  363. package/models/schedule/IScheduleInfo.js +1 -0
  364. package/models/schedule/IScheduleJob.d.ts +12 -0
  365. package/models/schedule/IScheduleJob.js +1 -0
  366. package/models/search/SearchQueryFilter.d.ts +5 -0
  367. package/models/search/SearchQueryFilter.js +5 -0
  368. package/models/search/SearchStreamQuery.d.ts +15 -0
  369. package/models/search/SearchStreamQuery.js +6 -0
  370. package/models/stream/IBaseStream.d.ts +8 -0
  371. package/models/stream/IBaseStream.js +1 -0
  372. package/models/stream/ICallerStream.d.ts +8 -0
  373. package/models/stream/ICallerStream.js +1 -0
  374. package/models/stream/ICommandStream.d.ts +7 -0
  375. package/models/stream/ICommandStream.js +1 -0
  376. package/models/stream/IControlStream.d.ts +9 -0
  377. package/models/stream/IControlStream.js +1 -0
  378. package/models/stream/IFileAccessorStream.d.ts +9 -0
  379. package/models/stream/IFileAccessorStream.js +1 -0
  380. package/models/stream/ISearchStream.d.ts +11 -0
  381. package/models/stream/ISearchStream.js +1 -0
  382. package/models/stream/ITelemetryStream.d.ts +10 -0
  383. package/models/stream/ITelemetryStream.js +1 -0
  384. package/models/stream/IWebRTCSignallingStream.d.ts +76 -0
  385. package/models/stream/IWebRTCSignallingStream.js +1 -0
  386. package/models/types.d.ts +5 -0
  387. package/models/types.js +1 -0
  388. package/node/RocosSDKNode.d.ts +42 -0
  389. package/node/RocosSDKNode.js +143 -0
  390. package/node/index.d.ts +7 -0
  391. package/node/index.js +7 -0
  392. package/package.json +23 -7
  393. package/services/AssetStorageService.d.ts +106 -0
  394. package/services/AssetStorageService.js +169 -0
  395. package/services/AuthService.d.ts +93 -0
  396. package/services/AuthService.js +235 -0
  397. package/services/AuthService.spec.d.ts +1 -0
  398. package/services/AuthService.spec.js +163 -0
  399. package/services/BaseServiceAbstract.d.ts +36 -0
  400. package/services/BaseServiceAbstract.js +101 -0
  401. package/services/BaseStreamService.d.ts +18 -0
  402. package/services/BaseStreamService.js +47 -0
  403. package/services/CallerService.d.ts +10 -0
  404. package/services/CallerService.js +53 -0
  405. package/services/CallerServiceNode.d.ts +6 -0
  406. package/services/CallerServiceNode.js +7 -0
  407. package/services/CommandService.d.ts +9 -0
  408. package/services/CommandService.js +38 -0
  409. package/services/CommandServiceNode.d.ts +6 -0
  410. package/services/CommandServiceNode.js +7 -0
  411. package/services/ConfigGroupService.d.ts +89 -0
  412. package/services/ConfigGroupService.js +153 -0
  413. package/services/ControlService.d.ts +11 -0
  414. package/services/ControlService.js +57 -0
  415. package/services/ControlServiceNode.d.ts +6 -0
  416. package/services/ControlServiceNode.js +7 -0
  417. package/services/DashboardService.d.ts +97 -0
  418. package/services/DashboardService.js +142 -0
  419. package/services/EventService.d.ts +53 -0
  420. package/services/EventService.js +85 -0
  421. package/services/FileAccessorService.d.ts +11 -0
  422. package/services/FileAccessorService.js +37 -0
  423. package/services/FileAccessorServiceNode.d.ts +6 -0
  424. package/services/FileAccessorServiceNode.js +7 -0
  425. package/services/FunctionService.d.ts +68 -0
  426. package/services/FunctionService.js +99 -0
  427. package/services/IntegrationService.d.ts +48 -0
  428. package/services/IntegrationService.js +72 -0
  429. package/services/MapService.d.ts +107 -0
  430. package/services/MapService.js +149 -0
  431. package/services/PlatformTimeService.d.ts +35 -0
  432. package/services/PlatformTimeService.js +156 -0
  433. package/services/PlatformTimeService.spec.d.ts +1 -0
  434. package/services/PlatformTimeService.spec.js +180 -0
  435. package/services/ProfileService.d.ts +244 -0
  436. package/services/ProfileService.js +362 -0
  437. package/services/ProjectService.d.ts +110 -0
  438. package/services/ProjectService.js +160 -0
  439. package/services/RobotService.d.ts +278 -0
  440. package/services/RobotService.js +460 -0
  441. package/services/ScheduleService.d.ts +22 -0
  442. package/services/ScheduleService.js +36 -0
  443. package/services/SearchService.d.ts +12 -0
  444. package/services/SearchService.js +58 -0
  445. package/services/SearchServiceNode.d.ts +6 -0
  446. package/services/SearchServiceNode.js +7 -0
  447. package/services/SpotProvisioningService.d.ts +14 -0
  448. package/services/SpotProvisioningService.js +43 -0
  449. package/services/SpotProvisioningServiceNode.d.ts +15 -0
  450. package/services/SpotProvisioningServiceNode.js +43 -0
  451. package/services/StreamService.d.ts +98 -0
  452. package/services/StreamService.js +142 -0
  453. package/services/TelemetryService.d.ts +40 -0
  454. package/services/TelemetryService.js +142 -0
  455. package/services/TelemetryService.spec.d.ts +1 -0
  456. package/services/TelemetryService.spec.js +37 -0
  457. package/services/TelemetryServiceNode.d.ts +6 -0
  458. package/services/TelemetryServiceNode.js +7 -0
  459. package/services/TimeSyncerService.d.ts +13 -0
  460. package/services/TimeSyncerService.js +23 -0
  461. package/services/UserService.d.ts +200 -0
  462. package/services/UserService.js +315 -0
  463. package/services/WebRTCSignallingService.d.ts +22 -0
  464. package/services/WebRTCSignallingService.js +78 -0
  465. package/services/WorkflowService.d.ts +71 -0
  466. package/services/WorkflowService.js +118 -0
  467. package/services/index.d.ts +26 -0
  468. package/services/index.js +26 -0
  469. package/store/RocosStore.d.ts +31 -0
  470. package/store/RocosStore.js +47 -0
package/IRocosSDK.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ import { MapService, SpotProvisioningServiceNode } from './services';
2
+ import { AssetStorageService } from './services/AssetStorageService';
3
+ import { AuthService } from './services/AuthService';
4
+ import { CallerService } from './services/CallerService';
5
+ import { CommandService } from './services/CommandService';
6
+ import { ConfigGroupService } from './services/ConfigGroupService';
7
+ import { ControlService } from './services/ControlService';
8
+ import { DashboardService } from './services/DashboardService';
9
+ import { EventService } from './services/EventService';
10
+ import { FileAccessorService } from './services/FileAccessorService';
11
+ import { FunctionService } from './services/FunctionService';
12
+ import { IBaseService } from './models/IBaseService';
13
+ import { IDebugLevel } from './models/IDebugLevel';
14
+ import { IntegrationService } from './services/IntegrationService';
15
+ import { ProfileService } from './services/ProfileService';
16
+ import { ProjectService } from './services/ProjectService';
17
+ import { RobotService } from './services/RobotService';
18
+ import { SearchService } from './services/SearchService';
19
+ import { ServiceEnum } from './models/ServiceEnum';
20
+ import { SpotProvisioningService } from './services/SpotProvisioningService';
21
+ import { StreamService } from './services/StreamService';
22
+ import { TelemetryService } from './services/TelemetryService';
23
+ import { TimeSyncerService } from './services/TimeSyncerService';
24
+ import { UserService } from './services/UserService';
25
+ import { WebRTCSignallingService } from './services/WebRTCSignallingService';
26
+ import { WorkflowService } from './services/WorkflowService';
27
+ export declare abstract class IRocosSDK {
28
+ abstract getService<T extends IBaseService>(name: ServiceEnum): T;
29
+ abstract getAuthService(): AuthService;
30
+ abstract getRobotService(): RobotService;
31
+ abstract getEventService(): EventService;
32
+ abstract getProjectService(): ProjectService;
33
+ abstract getTelemetryService(): TelemetryService;
34
+ abstract getCallerService(): CallerService;
35
+ abstract getControlService(): ControlService;
36
+ abstract getCommandService(): CommandService;
37
+ abstract getSearchService(): SearchService;
38
+ abstract getConfigGroupService(): ConfigGroupService;
39
+ abstract getDashboardService(): DashboardService;
40
+ abstract getFunctionService(): FunctionService;
41
+ abstract getStreamService(): StreamService;
42
+ abstract getUserService(): UserService;
43
+ abstract getMapService(): MapService;
44
+ abstract getTimeSyncerService(): TimeSyncerService;
45
+ abstract getWorkflowService(): WorkflowService;
46
+ abstract getAssetStorageService(): AssetStorageService;
47
+ abstract getProfileService(): ProfileService;
48
+ abstract getWebRTCSignallingService(): WebRTCSignallingService;
49
+ abstract getFileAccessorService(): FileAccessorService;
50
+ abstract getSpotProvisionerService(): SpotProvisioningService | SpotProvisioningServiceNode;
51
+ abstract getIntegrationService(): IntegrationService;
52
+ abstract cleanup(): Promise<boolean>;
53
+ abstract enableDebugMode(on: boolean): void;
54
+ abstract setDebugLevel(level: IDebugLevel): void;
55
+ }
package/IRocosSDK.js ADDED
@@ -0,0 +1,2 @@
1
+ export class IRocosSDK {
2
+ }
package/README.md ADDED
@@ -0,0 +1,108 @@
1
+ # rocos-js-sdk
2
+ Javascript SDK for interacting with the Rocos platform.
3
+
4
+ ## Using with Node
5
+ In order to use the SDK with node, you must be using node version 18.13 or higher.
6
+
7
+ ## Installation
8
+
9
+ Add a .npmrc to your project, in the same directory as your package.json
10
+
11
+ ```bash
12
+ @team-rocos:registry=https://npm.pkg.github.com
13
+ ```
14
+
15
+ Then install the package with npm
16
+
17
+ ```bash
18
+ npm install @team-rocos/rocos-js-sdk
19
+ ```
20
+
21
+ or yarn
22
+
23
+ ```bash
24
+ yarn add @team-rocos/rocos-js-sdk rxjs@^7
25
+ ```
26
+ ## What's New?
27
+
28
+ ### 3.0.0
29
+
30
+ *Breaking Changes*
31
+ * `IToken` interface changes
32
+ * `created` is now `issuedAt` and is a `Date` object instead of a `string`
33
+ * `expiresIn` is now `expires` and is a `Date` object instead of a `number`
34
+ * `Token` class is now only functional for JWT tokens
35
+ * Logging in and signing up with email and password has been removed
36
+ * Resetting password has been removed
37
+
38
+ *New Features*
39
+ * NodeJS requirement has been dropped, so that the SDK can be used in the browser regardless of node version. When using node SDK, you must be using node version 18.13 or higher.
40
+ * `AuthService` now supports `refreshToken` method to refresh the access token
41
+ * Auth Token will now be refreshed automatically when it expires
42
+
43
+
44
+ ### 2.6.1
45
+
46
+ * Modify map service response type
47
+
48
+ ### 2.6.0
49
+
50
+ * Change `rxjs` dependency to a peer dependency (support for `^6.6.6 || ^7.0.0`)
51
+ - If you are using `yarn` you may need to add `rxjs` to your dependencies
52
+
53
+ ### 2.4.0
54
+
55
+ * deleted unused endpoints relating to legacy accounts which are no longer supported
56
+
57
+ ### 2.3.0
58
+
59
+ * Added `mapService` for supporting agent map functionality
60
+
61
+ ### 2.2.0
62
+
63
+ * Added `listUsers` method in ProjectService to list project users
64
+ * Added additional debug information for failed HTTP responses
65
+
66
+ ### 2.1.0
67
+
68
+ * Added getPlansPaged method to the IntegrationService to retrieve plans in a paged manner
69
+
70
+ ### 2.0.2
71
+
72
+ * Fix no-content responses attempting to parse as JSON
73
+
74
+ ### 2.0.1
75
+
76
+ * Security updates for React demo app dependencies
77
+
78
+ ### 2.0.0
79
+
80
+ * Updating base class for all REST requests to go via fetch instead of axios
81
+ * Remove unused dependencies `source-map-loader`, `ts-loader`, `axios`
82
+ * Mark certain auth methods as deprecated in AuthService
83
+ * `login` Login with email and password.
84
+ * `signup`
85
+ * `resetPassword`
86
+ * Deleted legacy services, these services are prefixed with BC, e.g. `BCRocosClient`
87
+ * Updated outdated dependencies in the Angular demo application
88
+
89
+ #### Migrating from 1.x to 2.x
90
+
91
+ * NodeJS engine requirements need to be v18.13 and npm v8 to use in NodeJS as the underlying HTTP services now use fetch API
92
+ * Legacy services prefixed with BC will need to be migrated to use the standard services
93
+
94
+ ### 1.19.0
95
+
96
+ New method added to the `IntegrationService` to create a new issue in the current location.
97
+
98
+ * createIssue - Creates a new issue in a specific location on the latest map plan
99
+
100
+ ### 1.18.0
101
+
102
+ Added new integration service to be able to retrieve plans created in DroneDeploy
103
+
104
+ This can be retrieved by getIntegrationService(). Available methods:
105
+
106
+ * getPlans - Gets a list of plans
107
+ * getPlanById - Retrieves a specific plan with the tiled layer that can be used to render meshes, point clouds, or tiled maps
108
+ * getWMTS - Returns WMTS tiles that can be rendered in tools such as mapbox if your project has WMTS feature enabled)
package/RocosSDK.d.ts ADDED
@@ -0,0 +1,138 @@
1
+ import { AssetStorageService, AuthService, CallerService, CommandService, ConfigGroupService, ControlService, DashboardService, EventService, FileAccessorService, FunctionService, IntegrationService, MapService, ProfileService, ProjectService, RobotService, ScheduleService, SearchService, SpotProvisioningService, StreamService, TelemetryService, TimeSyncerService, UserService, WebRTCSignallingService, WorkflowService } from './services';
2
+ import { IBaseService, IDebugLevel, IRocosSDKConfig, ServiceEnum } from './models';
3
+ import { IRocosSDK } from './IRocosSDK';
4
+ import { Logger } from 'loglevel';
5
+ export declare class RocosSDK implements IRocosSDK {
6
+ protected config: IRocosSDKConfig;
7
+ protected logger: Logger;
8
+ protected services: Record<string, IBaseService>;
9
+ /**
10
+ * Create a new SDK instance using a config object.
11
+ *
12
+ * @param config - SDK config {@link IRocosSDKConfig}
13
+ */
14
+ constructor(config: IRocosSDKConfig);
15
+ /**
16
+ * Gets the service by service name.
17
+ *
18
+ * @param name - Service name {@link ServiceEnum}
19
+ */
20
+ getService<T extends IBaseService>(name: ServiceEnum): T;
21
+ /**
22
+ * GEts the authentication service.
23
+ */
24
+ getAuthService(): AuthService;
25
+ /**
26
+ * Gets the robot service.
27
+ */
28
+ getRobotService(): RobotService;
29
+ /**
30
+ * Gets the event service.
31
+ */
32
+ getEventService(): EventService;
33
+ /**
34
+ * Gets the project service.
35
+ */
36
+ getProjectService(): ProjectService;
37
+ /**
38
+ * Gets the telemetry service.
39
+ */
40
+ getTelemetryService(): TelemetryService;
41
+ /**
42
+ * Gets the service call service.
43
+ */
44
+ getCallerService(): CallerService;
45
+ /**
46
+ * Gets the command service.
47
+ */
48
+ getCommandService(): CommandService;
49
+ /**
50
+ * Gets the robot control service.
51
+ */
52
+ getControlService(): ControlService;
53
+ /**
54
+ * Gets the search service.
55
+ */
56
+ getSearchService(): SearchService;
57
+ /**
58
+ * Gets the config group service
59
+ */
60
+ getConfigGroupService(): ConfigGroupService;
61
+ /**
62
+ * Gets the dashboard service
63
+ */
64
+ getDashboardService(): DashboardService;
65
+ /**
66
+ * Gets the function service
67
+ */
68
+ getFunctionService(): FunctionService;
69
+ /**
70
+ * Gets the stream service
71
+ */
72
+ getStreamService(): StreamService;
73
+ /**
74
+ * Gets the user service
75
+ */
76
+ getUserService(): UserService;
77
+ /**
78
+ * Gets time syncer service
79
+ */
80
+ getTimeSyncerService(): TimeSyncerService;
81
+ /**
82
+ * Gets the workflow service
83
+ */
84
+ getWorkflowService(): WorkflowService;
85
+ /**
86
+ * Gets the asset storage service
87
+ */
88
+ getAssetStorageService(): AssetStorageService;
89
+ /**
90
+ * Gets the robot profile service
91
+ */
92
+ getProfileService(): ProfileService;
93
+ /**
94
+ * Gets the WebRTC signalling service
95
+ * @returns WebRTCSignallingService
96
+ */
97
+ getWebRTCSignallingService(): WebRTCSignallingService;
98
+ /**
99
+ * Gets the file accessor service
100
+ * @returns FileAccessorService
101
+ */
102
+ getFileAccessorService(): FileAccessorService;
103
+ /**
104
+ * Gets the scheduler service
105
+ * @returns FileAccessorService
106
+ */
107
+ getSchedulerService(): ScheduleService;
108
+ /**
109
+ * Gets the spot provisioner service
110
+ * @returns SpotProvisioningService
111
+ */
112
+ getSpotProvisionerService(): SpotProvisioningService;
113
+ /**
114
+ * Gets the integration service
115
+ * @returns IntegrationService
116
+ */
117
+ getIntegrationService(): IntegrationService;
118
+ /**
119
+ * Gets the map service
120
+ * @returns MapService
121
+ */
122
+ getMapService(): MapService;
123
+ get platformTimeOffset(): number;
124
+ get platformTime(): number;
125
+ /**
126
+ * Cleanup function to release all the stream resources.
127
+ * All streams get destroyed by default once all the observers unsubscribe.
128
+ * This should be called as a precaution in case there are some subscriptions still hanging.
129
+ */
130
+ cleanup(): Promise<boolean>;
131
+ /**
132
+ * Enable or disable debug log
133
+ *
134
+ * @param on
135
+ */
136
+ enableDebugMode(on: boolean): void;
137
+ setDebugLevel(level: IDebugLevel): void;
138
+ }
package/RocosSDK.js ADDED
@@ -0,0 +1,292 @@
1
+ import { AssetStorageService, AuthService, CallerService, CommandService, ConfigGroupService, ControlService, DashboardService, EventService, FileAccessorService, FunctionService, IntegrationService, MapService, PlatFormTimeService, ProfileService, ProjectService, RobotService, ScheduleService, SearchService, SpotProvisioningService, StreamService, TelemetryService, TimeSyncerService, UserService, WebRTCSignallingService, WorkflowService, } from './services';
2
+ import { ServiceEnum } from './models';
3
+ import { RocosLogger } from './logger/RocosLogger';
4
+ import { RocosStore } from './store/RocosStore';
5
+ import { StreamRegister } from './api/StreamRegister';
6
+ export class RocosSDK {
7
+ /**
8
+ * Create a new SDK instance using a config object.
9
+ *
10
+ * @param config - SDK config {@link IRocosSDKConfig}
11
+ */
12
+ constructor(config) {
13
+ this.services = {};
14
+ this.config = config;
15
+ this.logger = RocosLogger.getInstance(`RocosSDK(${this.config.url})`);
16
+ RocosStore.putSDKInstance(this.config, this);
17
+ }
18
+ /**
19
+ * Gets the service by service name.
20
+ *
21
+ * @param name - Service name {@link ServiceEnum}
22
+ */
23
+ // eslint-disable-next-line max-lines-per-function
24
+ getService(name) {
25
+ if (!this.services?.[name]) {
26
+ this.logger.info(`Service ${name} does not exist, creating it now.`);
27
+ switch (name) {
28
+ case ServiceEnum.AUTH:
29
+ this.services[name] = new AuthService(this.config);
30
+ break;
31
+ case ServiceEnum.TELEMETRY:
32
+ this.services[name] = new TelemetryService(this.config);
33
+ break;
34
+ case ServiceEnum.ROBOT:
35
+ this.services[name] = new RobotService(this.config);
36
+ break;
37
+ case ServiceEnum.EVENT:
38
+ this.services[name] = new EventService(this.config);
39
+ break;
40
+ case ServiceEnum.PROJECT:
41
+ this.services[name] = new ProjectService(this.config);
42
+ break;
43
+ case ServiceEnum.CALLER:
44
+ this.services[name] = new CallerService(this.config);
45
+ break;
46
+ case ServiceEnum.COMMAND:
47
+ this.services[name] = new CommandService(this.config);
48
+ break;
49
+ case ServiceEnum.CONTROL:
50
+ this.services[name] = new ControlService(this.config);
51
+ break;
52
+ case ServiceEnum.SEARCH:
53
+ this.services[name] = new SearchService(this.config);
54
+ break;
55
+ case ServiceEnum.CONFIG_GROUP:
56
+ this.services[name] = new ConfigGroupService(this.config);
57
+ break;
58
+ case ServiceEnum.DASHBOARD:
59
+ this.services[name] = new DashboardService(this.config);
60
+ break;
61
+ case ServiceEnum.FUNCTION:
62
+ this.services[name] = new FunctionService(this.config);
63
+ break;
64
+ case ServiceEnum.STREAM:
65
+ this.services[name] = new StreamService(this.config);
66
+ break;
67
+ case ServiceEnum.USER:
68
+ this.services[name] = new UserService(this.config);
69
+ break;
70
+ case ServiceEnum.TIME_SYNCER:
71
+ this.services[name] = new TimeSyncerService(this.config);
72
+ break;
73
+ case ServiceEnum.WORKFLOW:
74
+ this.services[name] = new WorkflowService(this.config);
75
+ break;
76
+ case ServiceEnum.ASSET_STORAGE:
77
+ this.services[name] = new AssetStorageService(this.config);
78
+ break;
79
+ case ServiceEnum.PROFILE:
80
+ this.services[name] = new ProfileService(this.config);
81
+ break;
82
+ case ServiceEnum.WEBRTC_SIGNALLING:
83
+ this.services[name] = new WebRTCSignallingService(this.config);
84
+ break;
85
+ case ServiceEnum.FILE_ACCESSOR:
86
+ this.services[name] = new FileAccessorService(this.config);
87
+ break;
88
+ case ServiceEnum.SCHEDULE:
89
+ this.services[name] = new ScheduleService(this.config);
90
+ break;
91
+ case ServiceEnum.SPOT_PROVISIONER:
92
+ this.services[name] = new SpotProvisioningService(this.config);
93
+ break;
94
+ case ServiceEnum.INTEGRATION:
95
+ this.services[name] = new IntegrationService(this.config);
96
+ break;
97
+ case ServiceEnum.MAP:
98
+ this.services[name] = new MapService(this.config);
99
+ break;
100
+ }
101
+ }
102
+ this.logger.debug(`Found service ${name}.`);
103
+ return this.services[name];
104
+ }
105
+ /**
106
+ * GEts the authentication service.
107
+ */
108
+ getAuthService() {
109
+ return this.getService(ServiceEnum.AUTH);
110
+ }
111
+ /**
112
+ * Gets the robot service.
113
+ */
114
+ getRobotService() {
115
+ return this.getService(ServiceEnum.ROBOT);
116
+ }
117
+ /**
118
+ * Gets the event service.
119
+ */
120
+ getEventService() {
121
+ return this.getService(ServiceEnum.EVENT);
122
+ }
123
+ /**
124
+ * Gets the project service.
125
+ */
126
+ getProjectService() {
127
+ return this.getService(ServiceEnum.PROJECT);
128
+ }
129
+ /**
130
+ * Gets the telemetry service.
131
+ */
132
+ getTelemetryService() {
133
+ return this.getService(ServiceEnum.TELEMETRY);
134
+ }
135
+ /**
136
+ * Gets the service call service.
137
+ */
138
+ getCallerService() {
139
+ return this.getService(ServiceEnum.CALLER);
140
+ }
141
+ /**
142
+ * Gets the command service.
143
+ */
144
+ getCommandService() {
145
+ return this.getService(ServiceEnum.COMMAND);
146
+ }
147
+ /**
148
+ * Gets the robot control service.
149
+ */
150
+ getControlService() {
151
+ return this.getService(ServiceEnum.CONTROL);
152
+ }
153
+ /**
154
+ * Gets the search service.
155
+ */
156
+ getSearchService() {
157
+ return this.getService(ServiceEnum.SEARCH);
158
+ }
159
+ /**
160
+ * Gets the config group service
161
+ */
162
+ getConfigGroupService() {
163
+ return this.getService(ServiceEnum.CONFIG_GROUP);
164
+ }
165
+ /**
166
+ * Gets the dashboard service
167
+ */
168
+ getDashboardService() {
169
+ return this.getService(ServiceEnum.DASHBOARD);
170
+ }
171
+ /**
172
+ * Gets the function service
173
+ */
174
+ getFunctionService() {
175
+ return this.getService(ServiceEnum.FUNCTION);
176
+ }
177
+ /**
178
+ * Gets the stream service
179
+ */
180
+ getStreamService() {
181
+ return this.getService(ServiceEnum.STREAM);
182
+ }
183
+ /**
184
+ * Gets the user service
185
+ */
186
+ getUserService() {
187
+ return this.getService(ServiceEnum.USER);
188
+ }
189
+ /**
190
+ * Gets time syncer service
191
+ */
192
+ getTimeSyncerService() {
193
+ return this.getService(ServiceEnum.TIME_SYNCER);
194
+ }
195
+ /**
196
+ * Gets the workflow service
197
+ */
198
+ getWorkflowService() {
199
+ return this.getService(ServiceEnum.WORKFLOW);
200
+ }
201
+ /**
202
+ * Gets the asset storage service
203
+ */
204
+ getAssetStorageService() {
205
+ return this.getService(ServiceEnum.ASSET_STORAGE);
206
+ }
207
+ /**
208
+ * Gets the robot profile service
209
+ */
210
+ getProfileService() {
211
+ return this.getService(ServiceEnum.PROFILE);
212
+ }
213
+ /**
214
+ * Gets the WebRTC signalling service
215
+ * @returns WebRTCSignallingService
216
+ */
217
+ getWebRTCSignallingService() {
218
+ return this.getService(ServiceEnum.WEBRTC_SIGNALLING);
219
+ }
220
+ /**
221
+ * Gets the file accessor service
222
+ * @returns FileAccessorService
223
+ */
224
+ getFileAccessorService() {
225
+ return this.getService(ServiceEnum.FILE_ACCESSOR);
226
+ }
227
+ /**
228
+ * Gets the scheduler service
229
+ * @returns FileAccessorService
230
+ */
231
+ getSchedulerService() {
232
+ return this.getService(ServiceEnum.SCHEDULE);
233
+ }
234
+ /**
235
+ * Gets the spot provisioner service
236
+ * @returns SpotProvisioningService
237
+ */
238
+ getSpotProvisionerService() {
239
+ return this.getService(ServiceEnum.SPOT_PROVISIONER);
240
+ }
241
+ /**
242
+ * Gets the integration service
243
+ * @returns IntegrationService
244
+ */
245
+ getIntegrationService() {
246
+ return this.getService(ServiceEnum.INTEGRATION);
247
+ }
248
+ /**
249
+ * Gets the map service
250
+ * @returns MapService
251
+ */
252
+ getMapService() {
253
+ return this.getService(ServiceEnum.MAP);
254
+ }
255
+ get platformTimeOffset() {
256
+ return PlatFormTimeService.getInstance(this.getTimeSyncerService())?.platformTimeOffset;
257
+ }
258
+ get platformTime() {
259
+ return PlatFormTimeService.getInstance(this.getTimeSyncerService())?.platformTime;
260
+ }
261
+ /**
262
+ * Cleanup function to release all the stream resources.
263
+ * All streams get destroyed by default once all the observers unsubscribe.
264
+ * This should be called as a precaution in case there are some subscriptions still hanging.
265
+ */
266
+ async cleanup() {
267
+ for (const service of Object.values(this.services)) {
268
+ if (service.teardown) {
269
+ await service.teardown();
270
+ }
271
+ }
272
+ this.services = {};
273
+ RocosStore.removeSDKInstance(this.config);
274
+ return StreamRegister.getInstance().removeAllStreams();
275
+ }
276
+ /**
277
+ * Enable or disable debug log
278
+ *
279
+ * @param on
280
+ */
281
+ enableDebugMode(on) {
282
+ if (on) {
283
+ RocosLogger.enableAll();
284
+ }
285
+ else {
286
+ RocosLogger.disableAll();
287
+ }
288
+ }
289
+ setDebugLevel(level) {
290
+ RocosLogger.setLevel(level);
291
+ }
292
+ }
@@ -0,0 +1,13 @@
1
+ import { IBaseStream } from '../models';
2
+ export declare class StreamRegister {
3
+ private teleStreams;
4
+ private logger;
5
+ private static instance;
6
+ private constructor();
7
+ static getInstance(): StreamRegister;
8
+ static getIdentifier($identifier: string, scope?: string): string;
9
+ addStream(stream: IBaseStream): Promise<void>;
10
+ getStream(identifier: string): IBaseStream | undefined;
11
+ removeStream(stream: IBaseStream): Promise<void>;
12
+ removeAllStreams(): Promise<boolean>;
13
+ }
@@ -0,0 +1,69 @@
1
+ import { RocosError, errorCodes } from '../models';
2
+ import { RocosLogger } from '../logger/RocosLogger';
3
+ export class StreamRegister {
4
+ constructor() {
5
+ this.teleStreams = new Map();
6
+ this.logger = RocosLogger.getInstance('StreamRegister');
7
+ }
8
+ static getInstance() {
9
+ if (!StreamRegister.instance) {
10
+ StreamRegister.instance = new StreamRegister();
11
+ }
12
+ return StreamRegister.instance;
13
+ }
14
+ static getIdentifier($identifier, scope) {
15
+ return `${$identifier}-${scope ?? ''}`;
16
+ }
17
+ async addStream(stream) {
18
+ try {
19
+ if (this.teleStreams.has(stream.identifier)) {
20
+ await this.removeStream(stream);
21
+ }
22
+ this.teleStreams.set(stream.identifier, stream);
23
+ }
24
+ catch (e) {
25
+ this.logger.error(`Failed to add stream to list. identifier: ${stream.identifier}`, e);
26
+ if (e instanceof Error || typeof e === 'string') {
27
+ throw new RocosError(e, errorCodes.STREAM_LISTENER_ERROR);
28
+ }
29
+ else {
30
+ throw e;
31
+ }
32
+ }
33
+ }
34
+ getStream(identifier) {
35
+ return this.teleStreams.get(identifier);
36
+ }
37
+ async removeStream(stream) {
38
+ try {
39
+ await stream.stopStream();
40
+ this.teleStreams.delete(stream.identifier);
41
+ }
42
+ catch (e) {
43
+ this.logger.error(`Failed to remove stream from list. identifier: ${stream.identifier}`, e);
44
+ if (e instanceof Error || typeof e === 'string') {
45
+ throw new RocosError(e, errorCodes.STREAM_LISTENER_ERROR);
46
+ }
47
+ else {
48
+ throw e;
49
+ }
50
+ }
51
+ }
52
+ async removeAllStreams() {
53
+ try {
54
+ for (const [, stream] of this.teleStreams.entries()) {
55
+ await this.removeStream(stream);
56
+ }
57
+ }
58
+ catch (e) {
59
+ this.logger.error(`error removing stream, ${e}`);
60
+ if (e instanceof Error || typeof e === 'string') {
61
+ throw new RocosError(e, errorCodes.STREAM_LISTENER_ERROR);
62
+ }
63
+ else {
64
+ throw e;
65
+ }
66
+ }
67
+ return true;
68
+ }
69
+ }