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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) hide show
  1. package/IRocosSDK.d.ts +3 -26
  2. package/IRocosSDK.js +1 -5
  3. package/README.md +18 -0
  4. package/RocosSDK.d.ts +6 -1
  5. package/RocosSDK.js +103 -95
  6. package/api/StreamRegister.d.ts +1 -1
  7. package/api/StreamRegister.js +23 -12
  8. package/api/atoms/StreamHeartbeat.js +3 -7
  9. package/api/streams/caller/CallerStream.d.ts +6 -6
  10. package/api/streams/caller/CallerStream.js +41 -49
  11. package/api/streams/caller/CallerStreamAbstract.d.ts +6 -11
  12. package/api/streams/caller/CallerStreamAbstract.js +55 -67
  13. package/api/streams/caller/CallerStreamNode.d.ts +6 -6
  14. package/api/streams/caller/CallerStreamNode.js +48 -61
  15. package/api/streams/command/CommandStream.d.ts +2 -4
  16. package/api/streams/command/CommandStream.js +28 -30
  17. package/api/streams/command/CommandStreamAbstract.d.ts +4 -8
  18. package/api/streams/command/CommandStreamAbstract.js +33 -42
  19. package/api/streams/command/CommandStreamNode.d.ts +2 -4
  20. package/api/streams/command/CommandStreamNode.js +16 -40
  21. package/api/streams/control/ControlStream.d.ts +4 -6
  22. package/api/streams/control/ControlStream.js +30 -36
  23. package/api/streams/control/ControlStreamAbstract.d.ts +6 -9
  24. package/api/streams/control/ControlStreamAbstract.js +57 -54
  25. package/api/streams/control/ControlStreamNode.d.ts +3 -5
  26. package/api/streams/control/ControlStreamNode.js +19 -44
  27. package/api/streams/fileAccessor/FileAccessorStream.d.ts +2 -4
  28. package/api/streams/fileAccessor/FileAccessorStream.js +42 -57
  29. package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +4 -9
  30. package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +28 -48
  31. package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +1 -3
  32. package/api/streams/fileAccessor/FileAccessorStreamNode.js +23 -53
  33. package/api/streams/search/SearchStream.d.ts +2 -5
  34. package/api/streams/search/SearchStream.js +50 -74
  35. package/api/streams/search/SearchStreamAbstract.d.ts +4 -9
  36. package/api/streams/search/SearchStreamAbstract.js +33 -35
  37. package/api/streams/search/SearchStreamNode.d.ts +2 -5
  38. package/api/streams/search/SearchStreamNode.js +23 -48
  39. package/api/streams/telemetry/TelemetryStream.d.ts +4 -4
  40. package/api/streams/telemetry/TelemetryStream.js +49 -78
  41. package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +8 -11
  42. package/api/streams/telemetry/TelemetryStreamAbstract.js +126 -145
  43. package/api/streams/telemetry/TelemetryStreamNode.d.ts +5 -5
  44. package/api/streams/telemetry/TelemetryStreamNode.js +44 -64
  45. package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +5 -10
  46. package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +37 -20
  47. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +10 -13
  48. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +37 -37
  49. package/constants/api.d.ts +14 -5
  50. package/constants/api.js +130 -126
  51. package/constants/auth.d.ts +2 -0
  52. package/constants/auth.js +2 -0
  53. package/constants/grpc.js +5 -8
  54. package/constants/identifier.js +6 -9
  55. package/constants/timezones.d.ts +1 -1
  56. package/constants/timezones.js +1 -4
  57. package/grpc/conker_pb.client.d.ts +78 -0
  58. package/grpc/conker_pb.client.js +55 -0
  59. package/grpc/conker_pb.d.ts +141 -0
  60. package/grpc/conker_pb.grpc-client.d.ts +81 -0
  61. package/grpc/conker_pb.grpc-client.js +58 -0
  62. package/grpc/conker_pb.js +104 -0
  63. package/grpc/filagree_pb.client.d.ts +68 -0
  64. package/grpc/filagree_pb.client.js +48 -0
  65. package/grpc/filagree_pb.d.ts +404 -0
  66. package/grpc/filagree_pb.grpc-client.d.ts +69 -0
  67. package/grpc/filagree_pb.grpc-client.js +51 -0
  68. package/grpc/filagree_pb.js +329 -0
  69. package/grpc/google/protobuf/descriptor_pb.d.ts +1798 -0
  70. package/grpc/google/protobuf/descriptor_pb.js +2378 -0
  71. package/grpc/google/protobuf/empty_pb.d.ts +23 -0
  72. package/grpc/google/protobuf/empty_pb.js +47 -0
  73. package/grpc/pigeon_pb.client.d.ts +96 -0
  74. package/grpc/pigeon_pb.client.js +72 -0
  75. package/grpc/pigeon_pb.d.ts +207 -0
  76. package/grpc/pigeon_pb.grpc-client.d.ts +98 -0
  77. package/grpc/pigeon_pb.grpc-client.js +68 -0
  78. package/grpc/pigeon_pb.js +144 -0
  79. package/grpc/rambo.uri.v1_pb.d.ts +73 -0
  80. package/grpc/rambo.uri.v1_pb.js +48 -0
  81. package/grpc/rambo.v1_pb.client.d.ts +66 -0
  82. package/grpc/rambo.v1_pb.client.js +48 -0
  83. package/grpc/rambo.v1_pb.d.ts +392 -0
  84. package/grpc/rambo.v1_pb.grpc-client.d.ts +56 -0
  85. package/grpc/rambo.v1_pb.grpc-client.js +44 -0
  86. package/grpc/rambo.v1_pb.js +272 -0
  87. package/grpc/serviette.uri.v1_pb.d.ts +89 -0
  88. package/grpc/serviette.uri.v1_pb.js +62 -0
  89. package/grpc/serviette.v1_pb.client.d.ts +225 -0
  90. package/grpc/serviette.v1_pb.client.js +174 -0
  91. package/grpc/serviette.v1_pb.d.ts +827 -0
  92. package/grpc/serviette.v1_pb.grpc-client.d.ts +215 -0
  93. package/grpc/serviette.v1_pb.grpc-client.js +162 -0
  94. package/grpc/serviette.v1_pb.js +553 -0
  95. package/grpc/slowlane_pb.client.d.ts +61 -0
  96. package/grpc/slowlane_pb.client.js +41 -0
  97. package/grpc/slowlane_pb.d.ts +303 -0
  98. package/grpc/slowlane_pb.grpc-client.d.ts +64 -0
  99. package/grpc/slowlane_pb.grpc-client.js +44 -0
  100. package/grpc/slowlane_pb.js +185 -0
  101. package/grpc/teletubby_pb.client.d.ts +145 -0
  102. package/grpc/teletubby_pb.client.js +104 -0
  103. package/grpc/teletubby_pb.d.ts +634 -0
  104. package/grpc/teletubby_pb.grpc-client.d.ts +152 -0
  105. package/grpc/teletubby_pb.grpc-client.js +100 -0
  106. package/grpc/teletubby_pb.js +1264 -0
  107. package/helpers/arrayRemove.js +2 -6
  108. package/helpers/arrayUnique.js +2 -6
  109. package/helpers/average.js +2 -7
  110. package/helpers/callerMessageHelpers.d.ts +14 -0
  111. package/helpers/callerMessageHelpers.js +86 -0
  112. package/helpers/cleanObject.js +17 -19
  113. package/helpers/cleanObject.spec.d.ts +1 -0
  114. package/helpers/cleanObject.spec.js +53 -0
  115. package/helpers/enviroment.js +4 -11
  116. package/helpers/flattenCallsignsLookup.d.ts +1 -1
  117. package/helpers/flattenCallsignsLookup.js +1 -5
  118. package/helpers/flattenObject.js +1 -5
  119. package/helpers/flattenObject.spec.d.ts +1 -0
  120. package/helpers/flattenObject.spec.js +29 -0
  121. package/helpers/flattenOneOf.d.ts +67 -0
  122. package/helpers/flattenOneOf.js +29 -0
  123. package/helpers/flattenOneOf.spec.d.ts +1 -0
  124. package/helpers/flattenOneOf.spec.js +157 -0
  125. package/helpers/formatServiceUrl.js +1 -5
  126. package/helpers/formatServiceUrl.spec.d.ts +1 -0
  127. package/helpers/formatServiceUrl.spec.js +16 -0
  128. package/helpers/generateUUID.js +3 -7
  129. package/helpers/getSubscriptionsDifference.d.ts +3 -3
  130. package/helpers/getSubscriptionsDifference.js +6 -10
  131. package/helpers/getURLSearchParams.d.ts +2 -0
  132. package/helpers/getURLSearchParams.js +9 -0
  133. package/helpers/getURLSearchParams.spec.d.ts +1 -0
  134. package/helpers/getURLSearchParams.spec.js +19 -0
  135. package/helpers/getUniqueConfigKey.js +1 -6
  136. package/helpers/getUniqueId.js +3 -7
  137. package/helpers/getUnixTimeMs.js +1 -5
  138. package/helpers/index.d.ts +3 -1
  139. package/helpers/index.js +5 -15
  140. package/helpers/nanosecondToMillisecond.d.ts +1 -1
  141. package/helpers/nanosecondToMillisecond.js +11 -6
  142. package/helpers/nanosecondToMillisecond.spec.d.ts +1 -0
  143. package/helpers/nanosecondToMillisecond.spec.js +20 -0
  144. package/helpers/randomString.js +1 -5
  145. package/helpers/standardDeviation.js +4 -8
  146. package/helpers/standardDeviation.spec.d.ts +1 -0
  147. package/helpers/standardDeviation.spec.js +11 -0
  148. package/helpers/stringToUint8Array.js +3 -7
  149. package/helpers/uint8ArrayToString.js +3 -8
  150. package/helpers/websandbox/connection.d.ts +67 -0
  151. package/helpers/websandbox/connection.js +133 -0
  152. package/helpers/websandbox/frame/frame.d.ts +12 -0
  153. package/helpers/websandbox/frame/frame.js +22 -0
  154. package/helpers/websandbox/frame/frame.source.d.ts +2 -0
  155. package/helpers/websandbox/frame/frame.source.js +5 -0
  156. package/helpers/websandbox/frame/index.d.ts +2 -0
  157. package/helpers/websandbox/frame/index.js +2 -0
  158. package/helpers/websandbox/frame/worker/index.d.ts +2 -0
  159. package/helpers/websandbox/frame/worker/index.js +2 -0
  160. package/helpers/websandbox/frame/worker/manager.d.ts +11 -0
  161. package/helpers/websandbox/frame/worker/manager.js +67 -0
  162. package/helpers/websandbox/frame/worker/manager.spec.d.ts +4 -0
  163. package/helpers/websandbox/frame/worker/manager.spec.js +127 -0
  164. package/helpers/websandbox/frame/worker/types.d.ts +11 -0
  165. package/helpers/websandbox/frame/worker/types.js +1 -0
  166. package/helpers/websandbox/frame/worker/worker.d.ts +1 -0
  167. package/helpers/websandbox/frame/worker/worker.js +74 -0
  168. package/helpers/websandbox/frame/worker/worker.source.d.ts +2 -0
  169. package/helpers/websandbox/frame/worker/worker.source.js +4 -0
  170. package/helpers/websandbox/index.d.ts +2 -0
  171. package/helpers/websandbox/index.js +2 -0
  172. package/helpers/websandbox/sandbox.d.ts +57 -0
  173. package/helpers/websandbox/sandbox.js +175 -0
  174. package/helpers/websandbox/types.d.ts +13 -0
  175. package/helpers/websandbox/types.js +1 -0
  176. package/index.js +7 -19
  177. package/logger/RocosLogger.js +18 -44
  178. package/models/CallsignStatus.d.ts +6 -0
  179. package/models/CallsignStatus.js +7 -0
  180. package/models/ExportDataQuery.js +1 -5
  181. package/models/ExternalProject.js +1 -5
  182. package/models/IBaseService.d.ts +1 -0
  183. package/models/IBaseService.js +1 -2
  184. package/models/IConfigGroup.js +1 -2
  185. package/models/IDebugLevel.d.ts +1 -1
  186. package/models/IDebugLevel.js +1 -2
  187. package/models/IExportDataQuery.js +1 -2
  188. package/models/IFunctionConfig.js +1 -2
  189. package/models/IInvitation.d.ts +1 -1
  190. package/models/IInvitation.js +1 -2
  191. package/models/IInvitationExists.js +1 -2
  192. package/models/IOperation.js +1 -2
  193. package/models/IPersonalAccessToken.js +1 -2
  194. package/models/IProject.js +1 -2
  195. package/models/IProjectApplication.js +1 -2
  196. package/models/IRobot.d.ts +1 -0
  197. package/models/IRobot.js +1 -2
  198. package/models/IRobotConfig.js +1 -2
  199. package/models/IRobotPlugin.js +1 -2
  200. package/models/IRobotSettings.d.ts +28 -0
  201. package/models/IRobotSettings.js +1 -0
  202. package/models/IRobotTemplate.js +1 -2
  203. package/models/IRocosSDKConfig.d.ts +3 -9
  204. package/models/IRocosSDKConfig.js +1 -2
  205. package/models/ISource.js +1 -2
  206. package/models/IStream.js +1 -2
  207. package/models/IStreamConfig.js +1 -2
  208. package/models/IStreamOptions.js +1 -2
  209. package/models/IStreamSource.js +1 -2
  210. package/models/ISubscriberStatus.js +1 -2
  211. package/models/ITelemetryStreamConfig.js +1 -2
  212. package/models/IToken.d.ts +7 -3
  213. package/models/IToken.js +1 -2
  214. package/models/IWidget.js +1 -2
  215. package/models/IWidgetLineGroup.js +1 -2
  216. package/models/ResponseLevelEnum.d.ts +4 -0
  217. package/models/ResponseLevelEnum.js +6 -5
  218. package/models/Robot.d.ts +1 -0
  219. package/models/Robot.js +1 -5
  220. package/models/RobotConfig.js +1 -5
  221. package/models/RobotPlugin.js +1 -5
  222. package/models/RobotTemplate.js +9 -14
  223. package/models/RocosError.d.ts +1 -0
  224. package/models/RocosError.js +3 -6
  225. package/models/ServiceEnum.d.ts +2 -1
  226. package/models/ServiceEnum.js +3 -5
  227. package/models/Stream.js +4 -8
  228. package/models/StreamOptions.js +1 -5
  229. package/models/StreamSource.js +3 -7
  230. package/models/SubscriberStatusEnum.js +2 -5
  231. package/models/Token.d.ts +36 -4
  232. package/models/Token.js +74 -11
  233. package/models/Token.spec.d.ts +1 -0
  234. package/models/Token.spec.js +108 -0
  235. package/models/Widget.js +4 -8
  236. package/models/WidgetLineGroup.js +1 -5
  237. package/models/asset-storage/AssetModelItem.d.ts +3 -0
  238. package/models/asset-storage/AssetModelItem.js +1 -2
  239. package/models/caller/IRocosCallerMessageChunk.d.ts +8 -2
  240. package/models/caller/IRocosCallerMessageChunk.js +1 -2
  241. package/models/caller/IRocosCallerMessageChunks.d.ts +2 -3
  242. package/models/caller/IRocosCallerMessageChunks.js +1 -2
  243. package/models/caller/IRocosCallerMessageHeartbeat.d.ts +3 -2
  244. package/models/caller/IRocosCallerMessageHeartbeat.js +1 -2
  245. package/models/caller/IRocosCallerMessageResponse.d.ts +3 -2
  246. package/models/caller/IRocosCallerMessageResponse.js +1 -2
  247. package/models/caller/IRocosCallerMessageResponseAck.d.ts +16 -2
  248. package/models/caller/IRocosCallerMessageResponseAck.js +13 -2
  249. package/models/caller/IRocosCallerMessageResponseResult.d.ts +15 -2
  250. package/models/caller/IRocosCallerMessageResponseResult.js +12 -2
  251. package/models/caller/IRocosCallerMessageResponseReturn.d.ts +8 -0
  252. package/models/caller/IRocosCallerMessageResponseReturn.js +1 -0
  253. package/models/caller/IRocosCallerMessageResponseUid.d.ts +10 -2
  254. package/models/caller/IRocosCallerMessageResponseUid.js +7 -2
  255. package/models/caller/IRocosCallerMessageResponses.d.ts +2 -3
  256. package/models/caller/IRocosCallerMessageResponses.js +1 -2
  257. package/models/caller/RocosCallerResultStatus.d.ts +11 -1
  258. package/models/caller/RocosCallerResultStatus.js +12 -5
  259. package/models/caller/RocosResponseLevel.d.ts +6 -0
  260. package/models/caller/RocosResponseLevel.js +7 -0
  261. package/models/caller/index.d.ts +11 -0
  262. package/models/caller/index.js +11 -0
  263. package/models/callsigns/CallsignsEnums.d.ts +3 -3
  264. package/models/callsigns/CallsignsEnums.js +11 -14
  265. package/models/callsigns/CallsignsLookup.js +10 -15
  266. package/models/callsigns/CallsignsQuery.js +1 -5
  267. package/models/callsigns/CallsignsQueryPredicate.js +1 -5
  268. package/models/command/IRocosCommandMessageHeartbeat.d.ts +1 -2
  269. package/models/command/IRocosCommandMessageHeartbeat.js +1 -2
  270. package/models/command/IRocosCommandMessageResponse.d.ts +55 -2
  271. package/models/command/IRocosCommandMessageResponse.js +29 -2
  272. package/models/command/RocosCommandResultStatus.d.ts +11 -1
  273. package/models/command/RocosCommandResultStatus.js +12 -5
  274. package/models/command/index.d.ts +4 -0
  275. package/models/command/index.js +4 -0
  276. package/models/file/FileEnums.d.ts +4 -4
  277. package/models/file/FileEnums.js +9 -12
  278. package/models/index.d.ts +6 -31
  279. package/models/index.js +76 -113
  280. package/models/integrations/Overlay.js +1 -2
  281. package/models/integrations/Plan.js +1 -2
  282. package/models/maps/Map.d.ts +2 -3
  283. package/models/maps/Map.js +1 -2
  284. package/models/maps/Panorama.d.ts +36 -0
  285. package/models/maps/Panorama.js +1 -0
  286. package/models/message/IRocosCallerMessage.js +1 -2
  287. package/models/message/IRocosChangeMessage.js +1 -2
  288. package/models/message/IRocosCommandMessage.js +1 -2
  289. package/models/message/IRocosControlMessage.js +1 -2
  290. package/models/message/IRocosOpResultMessage.d.ts +2 -2
  291. package/models/message/IRocosOpResultMessage.js +1 -2
  292. package/models/message/IRocosSearchMessage.js +1 -2
  293. package/models/message/IRocosSearchRowMessage.js +1 -2
  294. package/models/message/IRocosSearchStatusMessage.js +1 -2
  295. package/models/message/IRocosTelemetryMessage.d.ts +12 -7
  296. package/models/message/IRocosTelemetryMessage.js +1 -2
  297. package/models/message/IStreamStatusMessage.js +1 -2
  298. package/models/message/RocosCallerMessage.d.ts +2 -4
  299. package/models/message/RocosCallerMessage.js +24 -15
  300. package/models/message/RocosCommandMessage.d.ts +2 -3
  301. package/models/message/RocosCommandMessage.js +5 -8
  302. package/models/message/RocosControlMessage.d.ts +1 -1
  303. package/models/message/RocosControlMessage.js +6 -10
  304. package/models/message/RocosOpResultMessage.d.ts +3 -2
  305. package/models/message/RocosOpResultMessage.js +6 -10
  306. package/models/message/RocosSearchMessage.d.ts +1 -1
  307. package/models/message/RocosSearchMessage.js +5 -9
  308. package/models/message/RocosSearchRowMessage.d.ts +1 -1
  309. package/models/message/RocosSearchRowMessage.js +8 -12
  310. package/models/message/RocosTelemetryMessage.d.ts +9 -23
  311. package/models/message/RocosTelemetryMessage.js +51 -93
  312. package/models/message/index.d.ts +17 -0
  313. package/models/message/index.js +17 -0
  314. package/models/params/ICallerParams.d.ts +12 -1
  315. package/models/params/ICallerParams.js +1 -2
  316. package/models/params/ICommandParams.js +1 -2
  317. package/models/params/IControlParams.d.ts +1 -1
  318. package/models/params/IControlParams.js +1 -2
  319. package/models/params/IFileAccessorParams.js +1 -2
  320. package/models/params/ISearchParams.js +1 -2
  321. package/models/params/ITelemetryParams.d.ts +1 -1
  322. package/models/params/ITelemetryParams.js +1 -2
  323. package/models/params/IWebRTCSignallingParams.js +1 -2
  324. package/models/projects/ProjectUser.js +1 -2
  325. package/models/schedule/IScheduleAction.d.ts +1 -1
  326. package/models/schedule/IScheduleAction.js +2 -5
  327. package/models/schedule/IScheduleInfo.js +1 -2
  328. package/models/schedule/IScheduleJob.js +1 -2
  329. package/models/search/SearchQueryFilter.js +1 -5
  330. package/models/search/SearchStreamQuery.js +1 -5
  331. package/models/stream/IBaseStream.js +1 -2
  332. package/models/stream/ICallerStream.js +1 -2
  333. package/models/stream/ICommandStream.js +1 -2
  334. package/models/stream/IControlStream.js +1 -2
  335. package/models/stream/IFileAccessorStream.d.ts +1 -2
  336. package/models/stream/IFileAccessorStream.js +1 -2
  337. package/models/stream/ISearchStream.js +1 -2
  338. package/models/stream/ITelemetryStream.js +1 -2
  339. package/models/stream/IWebRTCSignallingStream.d.ts +51 -16
  340. package/models/stream/IWebRTCSignallingStream.js +1 -7
  341. package/models/types.d.ts +5 -5
  342. package/models/types.js +1 -2
  343. package/models/workflow/Workflow.d.ts +36 -0
  344. package/models/workflow/Workflow.js +1 -0
  345. package/node/RocosSDKNode.d.ts +6 -1
  346. package/node/RocosSDKNode.js +82 -80
  347. package/node/index.js +7 -19
  348. package/package.json +10 -11
  349. package/services/AssetStorageService.d.ts +23 -1
  350. package/services/AssetStorageService.js +53 -24
  351. package/services/AuthService.d.ts +59 -27
  352. package/services/AuthService.js +167 -86
  353. package/services/AuthService.spec.d.ts +1 -0
  354. package/services/AuthService.spec.js +163 -0
  355. package/services/BaseServiceAbstract.d.ts +11 -13
  356. package/services/BaseServiceAbstract.js +18 -24
  357. package/services/BaseStreamService.d.ts +18 -0
  358. package/services/BaseStreamService.js +47 -0
  359. package/services/CallerService.d.ts +37 -17
  360. package/services/CallerService.js +86 -65
  361. package/services/CallerService.spec.d.ts +1 -0
  362. package/services/CallerService.spec.js +227 -0
  363. package/services/CallerServiceNode.js +4 -8
  364. package/services/CommandService.d.ts +5 -17
  365. package/services/CommandService.js +19 -62
  366. package/services/CommandServiceNode.js +4 -8
  367. package/services/ConfigGroupService.js +17 -21
  368. package/services/ControlService.d.ts +5 -17
  369. package/services/ControlService.js +22 -65
  370. package/services/ControlServiceNode.js +4 -8
  371. package/services/DashboardService.js +20 -24
  372. package/services/EvaluatorService.d.ts +11 -0
  373. package/services/EvaluatorService.js +28 -0
  374. package/services/EventService.js +13 -17
  375. package/services/FileAccessorService.d.ts +4 -18
  376. package/services/FileAccessorService.js +14 -62
  377. package/services/FileAccessorServiceNode.js +4 -8
  378. package/services/FunctionService.js +17 -21
  379. package/services/IntegrationService.js +14 -19
  380. package/services/MapService.d.ts +71 -25
  381. package/services/MapService.js +113 -40
  382. package/services/PlatformTimeService.js +8 -12
  383. package/services/PlatformTimeService.spec.d.ts +1 -0
  384. package/services/PlatformTimeService.spec.js +180 -0
  385. package/services/ProfileService.js +36 -40
  386. package/services/ProjectService.js +23 -27
  387. package/services/RobotService.d.ts +2 -6
  388. package/services/RobotService.js +48 -55
  389. package/services/ScheduleService.js +10 -14
  390. package/services/SearchService.d.ts +4 -17
  391. package/services/SearchService.js +24 -59
  392. package/services/SearchServiceNode.js +4 -8
  393. package/services/SpotProvisioningService.d.ts +1 -1
  394. package/services/SpotProvisioningService.js +16 -16
  395. package/services/SpotProvisioningServiceNode.d.ts +1 -1
  396. package/services/SpotProvisioningServiceNode.js +16 -16
  397. package/services/StreamService.js +26 -30
  398. package/services/TelemetryService.d.ts +15 -17
  399. package/services/TelemetryService.js +103 -93
  400. package/services/TelemetryService.spec.d.ts +1 -0
  401. package/services/TelemetryService.spec.js +37 -0
  402. package/services/TelemetryServiceNode.js +4 -8
  403. package/services/TimeSyncerService.js +9 -13
  404. package/services/UserService.js +37 -41
  405. package/services/WebRTCSignallingService.d.ts +4 -4
  406. package/services/WebRTCSignallingService.js +24 -27
  407. package/services/WorkflowService.d.ts +25 -29
  408. package/services/WorkflowService.js +39 -75
  409. package/services/index.d.ts +1 -0
  410. package/services/index.js +27 -38
  411. package/store/RocosStore.js +9 -15
  412. package/demo/angular/.editorconfig +0 -16
  413. package/demo/angular/.eslintignore +0 -4
  414. package/demo/angular/.eslintrc.json +0 -50
  415. package/demo/angular/README.md +0 -36
  416. package/demo/angular/angular.json +0 -132
  417. package/demo/angular/karma.conf.js +0 -44
  418. package/demo/angular/package.json +0 -41
  419. package/demo/angular/src/app/app.component.css +0 -0
  420. package/demo/angular/src/app/app.component.html +0 -9
  421. package/demo/angular/src/app/app.component.ts +0 -10
  422. package/demo/angular/src/app/app.module.ts +0 -38
  423. package/demo/angular/src/app/components/assets/assets.component.css +0 -0
  424. package/demo/angular/src/app/components/assets/assets.component.html +0 -29
  425. package/demo/angular/src/app/components/assets/assets.component.ts +0 -107
  426. package/demo/angular/src/app/components/auth/auth.component.css +0 -0
  427. package/demo/angular/src/app/components/auth/auth.component.html +0 -27
  428. package/demo/angular/src/app/components/auth/auth.component.ts +0 -33
  429. package/demo/angular/src/app/components/caller/caller.component.css +0 -0
  430. package/demo/angular/src/app/components/caller/caller.component.html +0 -22
  431. package/demo/angular/src/app/components/caller/caller.component.ts +0 -61
  432. package/demo/angular/src/app/components/command/command.component.css +0 -0
  433. package/demo/angular/src/app/components/command/command.component.html +0 -22
  434. package/demo/angular/src/app/components/command/command.component.ts +0 -60
  435. package/demo/angular/src/app/components/integrations/integrations.component.ts +0 -43
  436. package/demo/angular/src/app/components/robots/robots.component.css +0 -0
  437. package/demo/angular/src/app/components/robots/robots.component.html +0 -13
  438. package/demo/angular/src/app/components/robots/robots.component.ts +0 -26
  439. package/demo/angular/src/app/components/sdk/sdk.component.css +0 -0
  440. package/demo/angular/src/app/components/sdk/sdk.component.html +0 -43
  441. package/demo/angular/src/app/components/sdk/sdk.component.ts +0 -50
  442. package/demo/angular/src/app/components/subscription/subscription.component.css +0 -0
  443. package/demo/angular/src/app/components/subscription/subscription.component.html +0 -6
  444. package/demo/angular/src/app/components/subscription/subscription.component.ts +0 -40
  445. package/demo/angular/src/app/components/telemetry/telemetry.component.css +0 -0
  446. package/demo/angular/src/app/components/telemetry/telemetry.component.html +0 -19
  447. package/demo/angular/src/app/components/telemetry/telemetry.component.ts +0 -61
  448. package/demo/angular/src/app/components/token/token.component.css +0 -0
  449. package/demo/angular/src/app/components/token/token.component.html +0 -10
  450. package/demo/angular/src/app/components/token/token.component.ts +0 -18
  451. package/demo/angular/src/app/components/video/p2pvideo/index.ts +0 -646
  452. package/demo/angular/src/app/components/video/video-source.ts +0 -315
  453. package/demo/angular/src/app/components/video/video.component.css +0 -6
  454. package/demo/angular/src/app/components/video/video.component.html +0 -54
  455. package/demo/angular/src/app/components/video/video.component.ts +0 -151
  456. package/demo/angular/src/app/services/sdk.service.ts +0 -193
  457. package/demo/angular/src/assets/.gitkeep +0 -0
  458. package/demo/angular/src/assets/HKGrotesk-Bold.otf +0 -0
  459. package/demo/angular/src/assets/HKGrotesk-Regular.otf +0 -0
  460. package/demo/angular/src/assets/logo.svg +0 -16
  461. package/demo/angular/src/environments/environment.prod.ts +0 -3
  462. package/demo/angular/src/environments/environment.ts +0 -16
  463. package/demo/angular/src/favicon.ico +0 -0
  464. package/demo/angular/src/index.html +0 -15
  465. package/demo/angular/src/main.ts +0 -7
  466. package/demo/angular/src/polyfills.ts +0 -53
  467. package/demo/angular/src/styles.css +0 -198
  468. package/demo/angular/tsconfig.app.json +0 -15
  469. package/demo/angular/tsconfig.json +0 -39
  470. package/demo/html/README.md +0 -8
  471. package/demo/html/assets/HKGrotesk-Bold.otf +0 -0
  472. package/demo/html/assets/HKGrotesk-Regular.otf +0 -0
  473. package/demo/html/assets/logo.svg +0 -16
  474. package/demo/html/favicon.ico +0 -0
  475. package/demo/html/index.html +0 -416
  476. package/demo/html/rocos-js-sdk.js +0 -3
  477. package/demo/html/rocos-js-sdk.js.LICENSE.txt +0 -8
  478. package/demo/html/rocos-js-sdk.js.map +0 -1
  479. package/demo/html/styles.css +0 -190
  480. package/demo/node/README.md +0 -17
  481. package/demo/node/index.js +0 -134
  482. package/demo/node/package.json +0 -8
  483. package/demo/react/.env +0 -1
  484. package/demo/react/.env.dist +0 -1
  485. package/demo/react/.eslintrc.json +0 -46
  486. package/demo/react/README.md +0 -65
  487. package/demo/react/package.json +0 -60
  488. package/demo/react/public/favicon.ico +0 -0
  489. package/demo/react/public/index.html +0 -43
  490. package/demo/react/public/logo192.png +0 -0
  491. package/demo/react/public/logo512.png +0 -0
  492. package/demo/react/public/manifest.json +0 -25
  493. package/demo/react/public/robots.txt +0 -3
  494. package/demo/react/src/App.css +0 -190
  495. package/demo/react/src/App.tsx +0 -31
  496. package/demo/react/src/actions/index.ts +0 -8
  497. package/demo/react/src/actions/sdkActions.ts +0 -62
  498. package/demo/react/src/assets/HKGrotesk-Bold.otf +0 -0
  499. package/demo/react/src/assets/HKGrotesk-Regular.otf +0 -0
  500. package/demo/react/src/assets/logo.svg +0 -16
  501. package/demo/react/src/components/AuthForm.tsx +0 -76
  502. package/demo/react/src/components/CallerBox.tsx +0 -53
  503. package/demo/react/src/components/CallerForm.tsx +0 -98
  504. package/demo/react/src/components/CommandBox.tsx +0 -47
  505. package/demo/react/src/components/CommandForm.tsx +0 -98
  506. package/demo/react/src/components/RobotsForm.tsx +0 -51
  507. package/demo/react/src/components/SubscriptionBox.tsx +0 -55
  508. package/demo/react/src/components/TelemetryForm.tsx +0 -98
  509. package/demo/react/src/components/TokenForm.tsx +0 -39
  510. package/demo/react/src/config.json +0 -14
  511. package/demo/react/src/controllers/RocosSDKController.ts +0 -48
  512. package/demo/react/src/helpers/deepEqual.ts +0 -27
  513. package/demo/react/src/hooks/useInput.ts +0 -29
  514. package/demo/react/src/index.css +0 -11
  515. package/demo/react/src/index.tsx +0 -26
  516. package/demo/react/src/react-app-env.d.ts +0 -1
  517. package/demo/react/src/reducers/sdkReducer.ts +0 -133
  518. package/demo/react/src/reportWebVitals.ts +0 -15
  519. package/demo/react/src/selectors/sdkSelector.ts +0 -11
  520. package/demo/react/src/setupTests.ts +0 -5
  521. package/demo/react/src/store.ts +0 -14
  522. package/demo/react/tsconfig.json +0 -26
  523. package/demo/sdk-sizer/dist/sdk-sizer/3rdpartylicenses.txt +0 -975
  524. package/demo/sdk-sizer/dist/sdk-sizer/favicon.ico +0 -0
  525. package/demo/sdk-sizer/dist/sdk-sizer/index.html +0 -12
  526. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js +0 -2
  527. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js.map +0 -1
  528. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js +0 -2
  529. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js.map +0 -1
  530. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js +0 -2
  531. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js.map +0 -1
  532. package/demo/sdk-sizer/dist/sdk-sizer/stats.json +0 -1
  533. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css +0 -2
  534. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css.map +0 -1
  535. package/grpc/file-accessor/filagree_grpc_pb.d.ts +0 -41
  536. package/grpc/file-accessor/filagree_grpc_pb.js +0 -121
  537. package/grpc/file-accessor/filagree_pb.d.ts +0 -339
  538. package/grpc/file-accessor/filagree_pb.js +0 -2261
  539. package/grpc/file-accessor/filagree_pb_service.d.ts +0 -115
  540. package/grpc/file-accessor/filagree_pb_service.js +0 -257
  541. package/grpc/rambo/rambo.v1_grpc_pb.d.ts +0 -39
  542. package/grpc/rambo/rambo.v1_grpc_pb.js +0 -73
  543. package/grpc/rambo/rambo.v1_pb.d.ts +0 -365
  544. package/grpc/rambo/rambo.v1_pb.js +0 -2469
  545. package/grpc/rambo/rambo.v1_pb_service.d.ts +0 -76
  546. package/grpc/rambo/rambo.v1_pb_service.js +0 -138
  547. package/grpc/rambo/uri.v1_grpc_pb.d.ts +0 -1
  548. package/grpc/rambo/uri.v1_grpc_pb.js +0 -1
  549. package/grpc/rambo/uri.v1_pb.d.ts +0 -80
  550. package/grpc/rambo/uri.v1_pb.js +0 -563
  551. package/grpc/rambo/uri.v1_pb_service.d.ts +0 -3
  552. package/grpc/rambo/uri.v1_pb_service.js +0 -3
  553. package/grpc/robot-control/conker_grpc_pb.d.ts +0 -46
  554. package/grpc/robot-control/conker_grpc_pb.js +0 -143
  555. package/grpc/robot-control/conker_pb.d.ts +0 -168
  556. package/grpc/robot-control/conker_pb.js +0 -1287
  557. package/grpc/robot-control/conker_pb_service.d.ts +0 -126
  558. package/grpc/robot-control/conker_pb_service.js +0 -301
  559. package/grpc/serviette/common.v1_grpc_pb.d.ts +0 -1
  560. package/grpc/serviette/common.v1_grpc_pb.js +0 -1
  561. package/grpc/serviette/common.v1_pb.d.ts +0 -8
  562. package/grpc/serviette/common.v1_pb.js +0 -45
  563. package/grpc/serviette/common.v1_pb_service.d.ts +0 -3
  564. package/grpc/serviette/common.v1_pb_service.js +0 -3
  565. package/grpc/serviette/serviette.v1_grpc_pb.d.ts +0 -137
  566. package/grpc/serviette/serviette.v1_grpc_pb.js +0 -331
  567. package/grpc/serviette/serviette.v1_pb.d.ts +0 -884
  568. package/grpc/serviette/serviette.v1_pb.js +0 -6363
  569. package/grpc/serviette/serviette.v1_pb_service.d.ts +0 -278
  570. package/grpc/serviette/serviette.v1_pb_service.js +0 -699
  571. package/grpc/serviette/uri.v1_grpc_pb.d.ts +0 -1
  572. package/grpc/serviette/uri.v1_grpc_pb.js +0 -1
  573. package/grpc/serviette/uri.v1_pb.d.ts +0 -102
  574. package/grpc/serviette/uri.v1_pb.js +0 -741
  575. package/grpc/serviette/uri.v1_pb_service.d.ts +0 -3
  576. package/grpc/serviette/uri.v1_pb_service.js +0 -3
  577. package/grpc/slowlane/slowlane_grpc_pb.d.ts +0 -38
  578. package/grpc/slowlane/slowlane_grpc_pb.js +0 -132
  579. package/grpc/slowlane/slowlane_pb.d.ts +0 -373
  580. package/grpc/slowlane/slowlane_pb.js +0 -2908
  581. package/grpc/slowlane/slowlane_pb_service.d.ts +0 -112
  582. package/grpc/slowlane/slowlane_pb_service.js +0 -189
  583. package/grpc/teletubby/teletubby_grpc_pb.d.ts +0 -73
  584. package/grpc/teletubby/teletubby_grpc_pb.js +0 -231
  585. package/grpc/teletubby/teletubby_pb.d.ts +0 -647
  586. package/grpc/teletubby/teletubby_pb.js +0 -4786
  587. package/grpc/teletubby/teletubby_pb_service.d.ts +0 -193
  588. package/grpc/teletubby/teletubby_pb_service.js +0 -436
  589. package/grpc/video/pigeon_grpc_pb.d.ts +0 -59
  590. package/grpc/video/pigeon_grpc_pb.js +0 -180
  591. package/grpc/video/pigeon_pb.d.ts +0 -237
  592. package/grpc/video/pigeon_pb.js +0 -1775
  593. package/grpc/video/pigeon_pb_service.d.ts +0 -152
  594. package/grpc/video/pigeon_pb_service.js +0 -292
  595. package/models/ISignupParams.d.ts +0 -8
  596. package/models/ISignupParams.js +0 -2
  597. package/utils/axisangle.d.ts +0 -18
  598. package/utils/axisangle.js +0 -48
  599. package/utils/eulerangles.d.ts +0 -22
  600. package/utils/eulerangles.js +0 -133
  601. package/utils/helperfunctions.d.ts +0 -5
  602. package/utils/helperfunctions.js +0 -50
  603. package/utils/localtransform.d.ts +0 -17
  604. package/utils/localtransform.js +0 -50
  605. package/utils/localtransformtree.d.ts +0 -17
  606. package/utils/localtransformtree.js +0 -88
  607. package/utils/misc.d.ts +0 -17
  608. package/utils/misc.js +0 -23
  609. package/utils/positionvector.d.ts +0 -13
  610. package/utils/positionvector.js +0 -79
  611. package/utils/quaternion.d.ts +0 -20
  612. package/utils/quaternion.js +0 -62
  613. package/utils/rotationmatrix.d.ts +0 -23
  614. package/utils/rotationmatrix.js +0 -262
  615. package/utils/transformationmatrix.d.ts +0 -12
  616. package/utils/transformationmatrix.js +0 -123
  617. package/utils/vector3.d.ts +0 -11
  618. package/utils/vector3.js +0 -61
@@ -1,5 +1,6 @@
1
1
  import { IBaseService, IRocosSDKConfig, Map, RocosError } from '../models';
2
2
  import { BaseServiceAbstract } from './BaseServiceAbstract';
3
+ import { Observation } from '../models/maps/Panorama';
3
4
  /**
4
5
  * Integrations to retrieve data from the linked project in DroneDeploy
5
6
  */
@@ -17,24 +18,17 @@ export declare class MapService extends BaseServiceAbstract implements IBaseServ
17
18
  /**
18
19
  * List maps from the robot and the cloud
19
20
  *
20
- * if onlyRobot is true, only the maps from the robot will be returned
21
- *
22
21
  * @param projectId Project ID
23
22
  * @param callsign Robot callsign
24
- * @param options Options to filter the maps
25
23
  * @returns All maps in the cloud
26
24
  */
27
- list(projectId: string, callsign: string, options?: {
28
- onlyRobot: boolean;
29
- }): Promise<Map[]>;
30
- /**
31
- * Creates a new DB for the project if it's missing
32
- *
33
- * has no effect if the DB already exists
25
+ list(projectId: string, callsign: string): Promise<Map[]>;
26
+ /** List maps to be deployed to a callsign
34
27
  *
35
- * @param projectId Project ID
28
+ * @param projectId
29
+ * @param callsign
36
30
  */
37
- initDB(projectId: string): Promise<void>;
31
+ listDeployedMaps(projectId: string, callsign: string): Promise<Map[]>;
38
32
  /**
39
33
  * Creates a new map by merging two existing maps
40
34
  * @param projectId Project ID
@@ -46,6 +40,12 @@ export declare class MapService extends BaseServiceAbstract implements IBaseServ
46
40
  description?: string;
47
41
  callsign: string;
48
42
  }): Promise<void>;
43
+ /** Returns a map in its canonical form
44
+ *
45
+ * @param projectId Project ID
46
+ * @param mapId Map ID
47
+ */
48
+ get(projectId: string, mapId: string): Promise<Map>;
49
49
  /**
50
50
  * Updates a maps metadata
51
51
  * @param projectId Project ID
@@ -53,44 +53,90 @@ export declare class MapService extends BaseServiceAbstract implements IBaseServ
53
53
  * @param options New metadata
54
54
  */
55
55
  update(projectId: string, mapId: string, options: {
56
- name: string;
57
56
  description?: string;
58
57
  callsign?: string;
59
58
  }): Promise<void>;
60
59
  /**
61
- * Copies a map from a robot to the cloud
62
- *
63
- * @see copyFromCloud
60
+ * Begins uploading a map from the agent
64
61
  *
65
62
  * @param projectId Project ID
66
63
  * @param mapId Map ID
67
64
  * @param callsign Robot callsign
65
+ * @param hash Map hash
68
66
  */
69
- copyFromRobot(projectId: string, mapId: string, callsign: string): Promise<void>;
67
+ sendToCloud(projectId: string, mapId: string, callsign: string, hash: string): Promise<void>;
70
68
  /**
71
- * Deletes a map from the cloud
69
+ * Deletes a map from the cloud and all agents
72
70
  * @param projectId
73
71
  * @param mapId
74
72
  */
75
73
  delete(projectId: string, mapId: string): Promise<void>;
76
74
  /**
77
- * Deletes a map from the cloud and attempts to delete it from the robot
75
+ * Deletes a map from a single agent.
76
+ *
77
+ * If the callsign does not have the map deployed, any local copy of the map will be deleted.
78
+ *
78
79
  * @param projectId
79
80
  * @param mapId
80
81
  * @param callsign
82
+ * @param hash
81
83
  */
82
- delete(projectId: string, mapId: string, callsign: string): Promise<void>;
84
+ delete(projectId: string, mapId: string, callsign: string, hash: string): Promise<void>;
83
85
  /**
84
- * Makes a copy of a map stored in the cloud
85
- *
86
- * @see copyFromRobot
86
+ * Makes a copy of an uploaded map
87
87
  *
88
88
  * @param projectId Project ID
89
89
  * @param mapId Map ID
90
90
  * @param options Options to create the new map
91
91
  */
92
- copyFromCloud(projectId: string, mapId: string, options: {
93
- name: string;
92
+ copy(projectId: string, mapId: string, options: {
94
93
  description?: string;
95
94
  }): Promise<void>;
95
+ /** Deploy a map from the cloud to a robot
96
+ *
97
+ * @param projectId Project ID
98
+ * @param mapId Map ID
99
+ * @param callsign Robot callsign
100
+ */
101
+ deploy(projectId: string, mapId: string, callsign: string): Promise<void>;
102
+ /** Get a GeoJSON representation of a map
103
+ *
104
+ * @param projectId Project ID
105
+ * @param mapId Map ID
106
+ * @param frameId Frame ID (optional)
107
+ */
108
+ getGeoJSON(projectId: string, mapId: string, frameId?: string): Promise<unknown>;
109
+ /**
110
+ * Returns a Promise that resolves to an array of Observation objects for the given panorama ID.
111
+ *
112
+ * @param projectId The ID of the project the panorama belongs to.
113
+ * @param panoramaId The ID of the panorama to retrieve observations for.
114
+ * @returns A Promise that resolves to an array of Observation objects.
115
+ */
116
+ listObservations(projectId: string, panoramaId: string): Promise<Observation[]>;
117
+ /**
118
+ * Creates new observations on a panorama.
119
+ *
120
+ * @param projectId The ID of the project the panorama belongs to.
121
+ * @param panoramaId The ID of the panorama to create observations for.
122
+ * @param observations An array of Observation objects to create.
123
+ * @returns A Promise that resolves when the observations have been created.
124
+ */
125
+ createObservations(projectId: string, panoramaId: string, observations: Observation[]): Promise<void>;
126
+ /**
127
+ * Gets observations for a project.
128
+ *
129
+ * @param projectId The ID of the project the observations belongs to.
130
+ * @param key (optional) Filters on a key defined on the observation
131
+ * @param frameID (optional) Transforms on a seed frame
132
+ * @returns A list of observations
133
+ */
134
+ getObservations(projectId: string, key?: string, frameID?: string): Promise<Observation[]>;
135
+ /**
136
+ * Lists available keys for all observations in a project.
137
+ *
138
+ * @param projectId The ID of the project the observations belongs to.
139
+ * @returns A list of observations
140
+ */
141
+ getObservationsKeys(projectId: string): Promise<string[]>;
96
142
  }
@@ -1,45 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MapService = void 0;
4
- const api_1 = require("../constants/api");
5
- const models_1 = require("../models");
6
- const BaseServiceAbstract_1 = require("./BaseServiceAbstract");
7
- const RocosLogger_1 = require("../logger/RocosLogger");
8
- const formatServiceUrl_1 = require("../helpers/formatServiceUrl");
1
+ import { API_MAPS_COPY_URL, API_MAPS_DEPLOYED_URL, API_MAPS_DEPLOY_URL, API_MAPS_GEOJSON_URL, API_MAPS_MERGE_URL, API_MAPS_PANORAMA_OBSERVATIONS_URL, API_MAPS_URL, API_MAP_ID_URL, API_OBSERVATIONS_URL, API_OBSERVATION_KEYS_URL, } from '../constants/api';
2
+ import { RocosError, errorCodes } from '../models';
3
+ import { BaseServiceAbstract } from './BaseServiceAbstract';
4
+ import { RocosLogger } from '../logger/RocosLogger';
5
+ import { formatServiceUrl } from '../helpers/formatServiceUrl';
9
6
  /**
10
7
  * Integrations to retrieve data from the linked project in DroneDeploy
11
8
  */
12
- class MapService extends BaseServiceAbstract_1.BaseServiceAbstract {
9
+ export class MapService extends BaseServiceAbstract {
13
10
  constructor(config) {
14
11
  super(config);
15
- this.logger = RocosLogger_1.RocosLogger.getInstance(`MapService(${this.config.url})`);
12
+ this.logger = RocosLogger.getInstance(`MapService(${this.config.url})`);
16
13
  }
17
14
  getStatus() {
18
15
  return true;
19
16
  }
20
17
  getError(e) {
21
- return new models_1.RocosError(e, models_1.errorCodes.MAPS_SERVICE_ERROR);
18
+ return new RocosError(e, errorCodes.MAPS_SERVICE_ERROR);
22
19
  }
23
- async list(projectId, callsign, options) {
24
- var _a;
25
- const resp = await this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_MAPS_URL, {
20
+ async list(projectId, callsign) {
21
+ const resp = await this.callGet(formatServiceUrl(API_MAPS_URL, {
26
22
  url: this.config.url,
27
23
  projectId,
28
- }, this.config.insecure), 'Failed to get maps.', callsign ? { callsign, onlyRobot: (_a = options === null || options === void 0 ? void 0 : options.onlyRobot) !== null && _a !== void 0 ? _a : false } : undefined);
24
+ }, this.config.insecure), 'Failed to get maps.', callsign ? { callsign } : undefined);
29
25
  return resp.maps;
30
26
  }
31
- /**
32
- * Creates a new DB for the project if it's missing
33
- *
34
- * has no effect if the DB already exists
27
+ /** List maps to be deployed to a callsign
35
28
  *
36
- * @param projectId Project ID
29
+ * @param projectId
30
+ * @param callsign
37
31
  */
38
- async initDB(projectId) {
39
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_MAPS_INIT_DB_URL, {
32
+ async listDeployedMaps(projectId, callsign) {
33
+ const safeCallsign = encodeURIComponent(callsign);
34
+ const resp = await this.callGet(formatServiceUrl(API_MAPS_DEPLOYED_URL, {
40
35
  url: this.config.url,
41
36
  projectId,
42
- }, this.config.insecure), undefined, 'Failed to init DB.');
37
+ callsign: safeCallsign,
38
+ }, this.config.insecure), 'Failed to get deployed maps.');
39
+ return resp.maps;
43
40
  }
44
41
  /**
45
42
  * Creates a new map by merging two existing maps
@@ -58,11 +55,23 @@ class MapService extends BaseServiceAbstract_1.BaseServiceAbstract {
58
55
  description: options.description,
59
56
  callsign: options.callsign,
60
57
  };
61
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_MAPS_MERGE_URL, {
58
+ return this.callPost(formatServiceUrl(API_MAPS_MERGE_URL, {
62
59
  url: this.config.url,
63
60
  projectId,
64
61
  }, this.config.insecure), payload, 'Failed to merge maps.');
65
62
  }
63
+ /** Returns a map in its canonical form
64
+ *
65
+ * @param projectId Project ID
66
+ * @param mapId Map ID
67
+ */
68
+ async get(projectId, mapId) {
69
+ return this.callGet(formatServiceUrl(API_MAP_ID_URL, {
70
+ url: this.config.url,
71
+ projectId,
72
+ mapId,
73
+ }, this.config.insecure), 'Failed to get map.');
74
+ }
66
75
  /**
67
76
  * Updates a maps metadata
68
77
  * @param projectId Project ID
@@ -70,50 +79,114 @@ class MapService extends BaseServiceAbstract_1.BaseServiceAbstract {
70
79
  * @param options New metadata
71
80
  */
72
81
  async update(projectId, mapId, options) {
73
- return this.callPut(formatServiceUrl_1.formatServiceUrl(api_1.API_MAP_ID_URL, {
82
+ return this.callPut(formatServiceUrl(API_MAP_ID_URL, {
74
83
  url: this.config.url,
75
84
  projectId,
76
85
  mapId,
77
86
  }, this.config.insecure), options, 'Failed to update map.');
78
87
  }
79
88
  /**
80
- * Copies a map from a robot to the cloud
81
- *
82
- * @see copyFromCloud
89
+ * Begins uploading a map from the agent
83
90
  *
84
91
  * @param projectId Project ID
85
92
  * @param mapId Map ID
86
93
  * @param callsign Robot callsign
94
+ * @param hash Map hash
87
95
  */
88
- async copyFromRobot(projectId, mapId, callsign) {
89
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_MAP_ID_URL, {
96
+ async sendToCloud(projectId, mapId, callsign, hash) {
97
+ return this.callPost(formatServiceUrl(API_MAP_ID_URL, {
90
98
  url: this.config.url,
91
99
  projectId,
92
100
  mapId,
93
- }, this.config.insecure), { callsign }, 'Failed to copy map from robot.');
101
+ }, this.config.insecure), { callsign, hash }, 'Failed to start map upload.');
94
102
  }
95
- async delete(projectId, mapId, callsign) {
96
- return this.callDelete(formatServiceUrl_1.formatServiceUrl(api_1.API_MAP_ID_URL, {
103
+ async delete(projectId, mapId, callsign, hash) {
104
+ return this.callDelete(formatServiceUrl(API_MAP_ID_URL, {
97
105
  url: this.config.url,
98
106
  projectId,
99
107
  mapId,
100
- }, this.config.insecure), 'Failed to delete map.', callsign ? { callsign } : {});
108
+ }, this.config.insecure), 'Failed to delete map.', callsign ? { callsign, hash } : {});
101
109
  }
102
110
  /**
103
- * Makes a copy of a map stored in the cloud
104
- *
105
- * @see copyFromRobot
111
+ * Makes a copy of an uploaded map
106
112
  *
107
113
  * @param projectId Project ID
108
114
  * @param mapId Map ID
109
115
  * @param options Options to create the new map
110
116
  */
111
- async copyFromCloud(projectId, mapId, options) {
112
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_MAPS_COPY_URL, {
117
+ async copy(projectId, mapId, options) {
118
+ return this.callPost(formatServiceUrl(API_MAPS_COPY_URL, {
113
119
  url: this.config.url,
114
120
  projectId,
115
121
  mapId,
116
122
  }, this.config.insecure), options, 'Failed to copy map.');
117
123
  }
124
+ /** Deploy a map from the cloud to a robot
125
+ *
126
+ * @param projectId Project ID
127
+ * @param mapId Map ID
128
+ * @param callsign Robot callsign
129
+ */
130
+ async deploy(projectId, mapId, callsign) {
131
+ return this.callPost(formatServiceUrl(API_MAPS_DEPLOY_URL, {
132
+ url: this.config.url,
133
+ projectId,
134
+ mapId,
135
+ }, this.config.insecure), { callsign }, 'Failed to deploy map.');
136
+ }
137
+ /** Get a GeoJSON representation of a map
138
+ *
139
+ * @param projectId Project ID
140
+ * @param mapId Map ID
141
+ * @param frameId Frame ID (optional)
142
+ */
143
+ async getGeoJSON(projectId, mapId, frameId) {
144
+ const params = {
145
+ url: this.config.url,
146
+ projectId,
147
+ mapId,
148
+ };
149
+ return this.callGet(formatServiceUrl(API_MAPS_GEOJSON_URL, params, this.config.insecure), 'Failed to get map GeoJSON.', frameId ? { frameID: frameId } : undefined);
150
+ }
151
+ /**
152
+ * Returns a Promise that resolves to an array of Observation objects for the given panorama ID.
153
+ *
154
+ * @param projectId The ID of the project the panorama belongs to.
155
+ * @param panoramaId The ID of the panorama to retrieve observations for.
156
+ * @returns A Promise that resolves to an array of Observation objects.
157
+ */
158
+ listObservations(projectId, panoramaId) {
159
+ return this.callGet(formatServiceUrl(API_MAPS_PANORAMA_OBSERVATIONS_URL, { url: this.config.url, projectId, panoramaId }, this.config.insecure), 'Failed to list observations.');
160
+ }
161
+ /**
162
+ * Creates new observations on a panorama.
163
+ *
164
+ * @param projectId The ID of the project the panorama belongs to.
165
+ * @param panoramaId The ID of the panorama to create observations for.
166
+ * @param observations An array of Observation objects to create.
167
+ * @returns A Promise that resolves when the observations have been created.
168
+ */
169
+ createObservations(projectId, panoramaId, observations) {
170
+ return this.callPut(formatServiceUrl(API_MAPS_PANORAMA_OBSERVATIONS_URL, { url: this.config.url, projectId, panoramaId }, this.config.insecure), observations, 'Failed to update observations.');
171
+ }
172
+ /**
173
+ * Gets observations for a project.
174
+ *
175
+ * @param projectId The ID of the project the observations belongs to.
176
+ * @param key (optional) Filters on a key defined on the observation
177
+ * @param frameID (optional) Transforms on a seed frame
178
+ * @returns A list of observations
179
+ */
180
+ getObservations(projectId, key = '', frameID = '') {
181
+ return this.callGet(formatServiceUrl(API_OBSERVATIONS_URL, { url: this.config.url, projectId }, this.config.insecure), 'Failed to get observations.', { key, frameID });
182
+ }
183
+ /**
184
+ * Lists available keys for all observations in a project.
185
+ *
186
+ * @param projectId The ID of the project the observations belongs to.
187
+ * @returns A list of observations
188
+ */
189
+ getObservationsKeys(projectId) {
190
+ return this.callGet(formatServiceUrl(API_OBSERVATION_KEYS_URL, { url: this.config.url, projectId }, this.config.insecure), 'Failed to get observation keys.');
191
+ }
118
192
  }
119
- exports.MapService = MapService;
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PlatFormTimeService = void 0;
4
- const RocosLogger_1 = require("../logger/RocosLogger");
5
- const standardDeviation_1 = require("../helpers/standardDeviation");
1
+ import { RocosLogger } from '../logger/RocosLogger';
2
+ import { standardDeviation } from '../helpers/standardDeviation';
6
3
  const NUMBER_OF_SERVER_TIME_USED_TO_CALIBRATE = 5;
7
4
  const MAX_CLIENT_WAITING_TIME_STANDARD_DEVIATION_ALLOWED = 100; // 100 miliseconds
8
5
  const KEY_GR_PLATFORM_TIME_OFFSET = 'gr_platformTimeOffset';
9
6
  const KEY_GR_LAST_PLATFORM_TIME_SYNCED_AT = 'gr_lastPlatformTimeSyncedAt';
10
7
  const GR_PLATFORM_TIME_TTL = 30 * 60 * 1000; // 30 minutes
11
- class PlatFormTimeService {
8
+ export class PlatFormTimeService {
12
9
  // Make this a singleton, so that we don't have multi platform time
13
10
  constructor(timeSyncerService) {
14
11
  this.backoffTimeouts = [5 * 1000, 30 * 1000, 60 * 1000, 300 * 1000]; // in miliseconds
@@ -16,8 +13,8 @@ class PlatFormTimeService {
16
13
  this.backoffFailCount = 0;
17
14
  this.serverTimeOffset = 0;
18
15
  this.lastPlatformTimeSyncedAt = 0;
19
- this.logger = RocosLogger_1.RocosLogger.getInstance('PlatformTimeService');
20
- if (window === null || window === void 0 ? void 0 : window.localStorage) {
16
+ this.logger = RocosLogger.getInstance('PlatformTimeService');
17
+ if (window?.localStorage) {
21
18
  this.lastPlatformTimeSyncedAt = Number(window.localStorage.getItem(KEY_GR_LAST_PLATFORM_TIME_SYNCED_AT)) || 0;
22
19
  this.serverTimeOffset = Number(window.localStorage.getItem(KEY_GR_PLATFORM_TIME_OFFSET)) || 0;
23
20
  }
@@ -101,7 +98,7 @@ class PlatFormTimeService {
101
98
  }, delay);
102
99
  }
103
100
  isReliableServerTime(platformTimeMeasurements) {
104
- const stdDeviation = standardDeviation_1.standardDeviation(
101
+ const stdDeviation = standardDeviation(
105
102
  // get the standardDeviation of the client waiting time
106
103
  platformTimeMeasurements.map((x) => x.clientTimeStampEnd - x.clientTimeStampStart));
107
104
  this.logger.debug('standard deviation', stdDeviation);
@@ -117,7 +114,7 @@ class PlatFormTimeService {
117
114
  calculateOffset(platformTimeMeasurements) {
118
115
  // Timestamp when Received the Response - Time Request Duration / 2 - Timestamp within the Response .
119
116
  let totalServerTimeOffset = 0;
120
- const measurementsWithValues = platformTimeMeasurements.filter((x) => !!(x === null || x === void 0 ? void 0 : x.serverTime));
117
+ const measurementsWithValues = platformTimeMeasurements.filter((x) => !!x?.serverTime);
121
118
  measurementsWithValues.forEach((x) => {
122
119
  // eslint-disable-next-line operator-linebreak
123
120
  totalServerTimeOffset +=
@@ -132,7 +129,7 @@ class PlatFormTimeService {
132
129
  this.isSyncing = false;
133
130
  this.serverTimeOffset = timeOffset;
134
131
  this.lastPlatformTimeSyncedAt = Date.now();
135
- if (window === null || window === void 0 ? void 0 : window.localStorage) {
132
+ if (window?.localStorage) {
136
133
  window.localStorage.setItem(KEY_GR_PLATFORM_TIME_OFFSET, String(this.serverTimeOffset));
137
134
  window.localStorage.setItem(KEY_GR_LAST_PLATFORM_TIME_SYNCED_AT, String(this.lastPlatformTimeSyncedAt));
138
135
  }
@@ -157,4 +154,3 @@ class PlatFormTimeService {
157
154
  return this.timeSyncerService.getServerTime();
158
155
  }
159
156
  }
160
- exports.PlatFormTimeService = PlatFormTimeService;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,180 @@
1
+ import { PlatFormTimeService } from "./PlatformTimeService";
2
+ import { TimeSyncerService } from "./TimeSyncerService";
3
+ import { standardDeviation } from "../helpers";
4
+ // Subclass PlatformTimeService so that we can test the protected methods
5
+ class PlatformtimeServicePublic extends PlatFormTimeService {
6
+ constructor(timeSyncerService) {
7
+ super(timeSyncerService);
8
+ }
9
+ isReliableServerTime(platformTimeMeasurement) {
10
+ return super.isReliableServerTime(platformTimeMeasurement);
11
+ }
12
+ calculateOffset(platformTimeMeasurement) {
13
+ return super.calculateOffset(platformTimeMeasurement);
14
+ }
15
+ removeLongestAndShortest(platformTimeMeasurement) {
16
+ return super.removeLongestAndShortest(platformTimeMeasurement);
17
+ }
18
+ static getInstance(timeSyncerService) {
19
+ const instance = super.getInstance(timeSyncerService);
20
+ return instance;
21
+ }
22
+ }
23
+ describe('platformTimeService', () => {
24
+ it('should calculate standard deviation correctly', () => {
25
+ let numbers = [10, 12, 23, 23, 16, 23, 21, 16];
26
+ let stdDev = standardDeviation(numbers);
27
+ expect(Math.abs(stdDev - 4.8989794855664)).toBeLessThan(0.000001);
28
+ numbers = [100, 12, 23, 23, 116, 23, 21, 162];
29
+ stdDev = standardDeviation(numbers);
30
+ expect(Math.abs(stdDev - 53.702886328394)).toBeLessThan(0.000001);
31
+ });
32
+ it('should be able to tell reliable server time response', () => {
33
+ jest.useFakeTimers();
34
+ const p = PlatformtimeServicePublic.getInstance(new TimeSyncerService({}));
35
+ const mock = {
36
+ clientTimeStampEnd: 100,
37
+ clientTimeStampStart: 20,
38
+ serverTime: {
39
+ now: 0,
40
+ duration: 0,
41
+ },
42
+ };
43
+ const mocks = [];
44
+ mocks.push(mock);
45
+ let isReliableServerTime = p.isReliableServerTime(mocks);
46
+ expect(isReliableServerTime).toBeTruthy();
47
+ for (let i = 0; i < 4; i++) {
48
+ mocks.push({ ...mock });
49
+ isReliableServerTime = p.isReliableServerTime(mocks);
50
+ expect(isReliableServerTime).toBeTruthy();
51
+ }
52
+ });
53
+ it('should be able to tell unreliable server time response', () => {
54
+ jest.useFakeTimers();
55
+ const p = PlatformtimeServicePublic.getInstance(new TimeSyncerService({}));
56
+ const mock = {
57
+ clientTimeStampEnd: 100,
58
+ clientTimeStampStart: 0,
59
+ serverTime: {
60
+ now: 0,
61
+ duration: 0,
62
+ },
63
+ };
64
+ const mocks = [];
65
+ let isReliableServerTime = false;
66
+ for (let i = 0; i < 5; i++) {
67
+ const mockClone = { ...mock };
68
+ mockClone.clientTimeStampEnd += i * 60;
69
+ mocks.push(mockClone);
70
+ }
71
+ isReliableServerTime = p.isReliableServerTime(mocks);
72
+ expect(isReliableServerTime).toBeTruthy();
73
+ for (let i = 0; i < 5; i++) {
74
+ const mockClone = { ...mock };
75
+ mockClone.clientTimeStampEnd += i * 70;
76
+ mocks.push(mockClone);
77
+ }
78
+ isReliableServerTime = p.isReliableServerTime(mocks);
79
+ expect(isReliableServerTime).toBeTruthy();
80
+ for (let i = 0; i < 5; i++) {
81
+ const mockClone = { ...mock };
82
+ mockClone.clientTimeStampEnd += i * 80;
83
+ mocks.push(mockClone);
84
+ }
85
+ isReliableServerTime = p.isReliableServerTime(mocks);
86
+ // std dev = 113.13708498985
87
+ expect(isReliableServerTime).toBeFalsy();
88
+ for (let i = 0; i < 5; i++) {
89
+ const mockClone = { ...mock };
90
+ mockClone.clientTimeStampEnd += i * 100;
91
+ mocks.push(mockClone);
92
+ }
93
+ isReliableServerTime = p.isReliableServerTime(mocks);
94
+ expect(isReliableServerTime).toBeFalsy();
95
+ });
96
+ it('should be able to remove shortest and longest correctly', () => {
97
+ jest.useFakeTimers();
98
+ const p = PlatformtimeServicePublic.getInstance(new TimeSyncerService({}));
99
+ const mock = {
100
+ clientTimeStampEnd: 100,
101
+ clientTimeStampStart: 0,
102
+ serverTime: {
103
+ now: 0,
104
+ duration: 0,
105
+ },
106
+ };
107
+ const mocks = [];
108
+ let mockClone = { ...mock };
109
+ mockClone.clientTimeStampEnd = 100;
110
+ mocks.push(mockClone);
111
+ mockClone = { ...mock };
112
+ mockClone.clientTimeStampEnd = 200;
113
+ mocks.push(mockClone);
114
+ mockClone = { ...mock };
115
+ mockClone.clientTimeStampEnd = 500;
116
+ mocks.push(mockClone);
117
+ mockClone = { ...mock };
118
+ mockClone.clientTimeStampEnd = 400;
119
+ mocks.push(mockClone);
120
+ mockClone = { ...mock };
121
+ mockClone.clientTimeStampEnd = 300;
122
+ mocks.push(mockClone);
123
+ const platformTimeMeasurement = p.removeLongestAndShortest(mocks);
124
+ platformTimeMeasurement.forEach((p) => {
125
+ expect(p.clientTimeStampEnd).not.toEqual(100);
126
+ expect(p.clientTimeStampEnd).not.toEqual(500);
127
+ });
128
+ });
129
+ it('should be able to calculate the offset correctly', () => {
130
+ jest.useFakeTimers();
131
+ const p = PlatformtimeServicePublic.getInstance(new TimeSyncerService({}));
132
+ const mock = {
133
+ clientTimeStampEnd: 100,
134
+ clientTimeStampStart: 0,
135
+ serverTime: {
136
+ now: 0,
137
+ duration: 0,
138
+ },
139
+ };
140
+ const mocks = [];
141
+ let mockClone = { ...mock };
142
+ mockClone.clientTimeStampEnd = 200;
143
+ mocks.push(mockClone);
144
+ mockClone = { ...mock };
145
+ mockClone.clientTimeStampEnd = 500;
146
+ mocks.push(mockClone);
147
+ mockClone = { ...mock };
148
+ mockClone.clientTimeStampEnd = 400;
149
+ mocks.push(mockClone);
150
+ const offset = p.calculateOffset(mocks);
151
+ // (200-(200)/2 + 500 - (500)/2 + 400 - (400)/2)/3 = 183.333333333, round to 183
152
+ expect(offset).toEqual(183);
153
+ });
154
+ it('should be able to filter where service time is not provided', () => {
155
+ jest.useFakeTimers();
156
+ const p = PlatformtimeServicePublic.getInstance(new TimeSyncerService({}));
157
+ const mock = {
158
+ clientTimeStampEnd: 100,
159
+ clientTimeStampStart: 0,
160
+ serverTime: {
161
+ now: 0,
162
+ duration: 0,
163
+ },
164
+ };
165
+ const mocks = [];
166
+ let mockClone = { ...mock };
167
+ mockClone.clientTimeStampEnd = 200;
168
+ mockClone.serverTime = undefined;
169
+ mocks.push(mockClone);
170
+ mockClone = { ...mock };
171
+ mockClone.clientTimeStampEnd = 500;
172
+ mocks.push(mockClone);
173
+ mockClone = { ...mock };
174
+ mockClone.clientTimeStampEnd = 400;
175
+ mocks.push(mockClone);
176
+ const offset = p.calculateOffset(mocks);
177
+ // (500 - (500)/2 + 400 - (400)/2)/2 = 225
178
+ expect(offset).toEqual(225);
179
+ });
180
+ });