@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,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AssetStorageService = void 0;
4
- const api_1 = require("../constants/api");
5
- const RocosError_1 = require("../models/RocosError");
6
- const BaseServiceAbstract_1 = require("./BaseServiceAbstract");
7
- const RocosLogger_1 = require("../logger/RocosLogger");
8
- const formatServiceUrl_1 = require("../helpers/formatServiceUrl");
9
- class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
1
+ import { API_PROJECT_ASSET_PATH_URL, API_PROJECT_ASSET_PROFILES_SYNC_DEFINITION_PATH_URL, API_PROJECT_ASSET_ROBOTS_SYNC_DEFINITION_PATH_URL, API_PROJECT_ASSET_URL, API_PROJECT_FLOW_ASSET_PATH_URL, API_PROJECT_MAPPED_ASSETS_PATH_URL, API_PROJECT_MISSION_ASSETS_PATH_URL, API_PROJECT_MISSION_ASSET_PATH_URL, API_PROJECT_ROBOT_ASSET_PATH_URL, } from '../constants/api';
2
+ import { RocosError, errorCodes } from '../models/RocosError';
3
+ import { BaseServiceAbstract } from './BaseServiceAbstract';
4
+ import { RocosLogger } from '../logger/RocosLogger';
5
+ import { formatServiceUrl } from '../helpers/formatServiceUrl';
6
+ export class AssetStorageService extends BaseServiceAbstract {
10
7
  constructor(config) {
11
8
  super(config);
12
- this.logger = RocosLogger_1.RocosLogger.getInstance(`AssetStorageService(${this.config.url})`);
9
+ this.logger = RocosLogger.getInstance(`AssetStorageService(${this.config.url})`);
13
10
  }
14
11
  getError(e) {
15
- return new RocosError_1.RocosError(e, RocosError_1.errorCodes.ASSET_STORAGE_SERVICE_ERROR);
12
+ return new RocosError(e, errorCodes.ASSET_STORAGE_SERVICE_ERROR);
16
13
  }
17
14
  getStatus() {
18
15
  return true;
@@ -28,7 +25,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
28
25
  async create(projectId, filePath, file) {
29
26
  const formData = new FormData();
30
27
  formData.append('file', file);
31
- return this.callPut(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), formData, `Failed to create asset for ${projectId}, filePath ${filePath}.`);
28
+ return this.callPut(formatServiceUrl(API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), formData, `Failed to create asset for ${projectId}, filePath ${filePath}.`);
32
29
  }
33
30
  /**
34
31
  * Update a project asset
@@ -41,7 +38,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
41
38
  async update(projectId, filePath, file) {
42
39
  const formData = new FormData();
43
40
  formData.append('file', file);
44
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), formData, `Failed to update asset for ${projectId}, filePath ${filePath}.`);
41
+ return this.callPost(formatServiceUrl(API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), formData, `Failed to update asset for ${projectId}, filePath ${filePath}.`);
45
42
  }
46
43
  /**
47
44
  * Delete a project asset
@@ -51,7 +48,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
51
48
  */
52
49
  // TODO: map the response object
53
50
  async delete(projectId, filePath) {
54
- return this.callDelete(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), `Failed to delete asset for ${projectId}, filePath ${filePath}.`);
51
+ return this.callDelete(formatServiceUrl(API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), `Failed to delete asset for ${projectId}, filePath ${filePath}.`);
55
52
  }
56
53
  /**
57
54
  * Lost assets for a project or project file path
@@ -63,10 +60,10 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
63
60
  async list(projectId, filePath) {
64
61
  let url = '';
65
62
  if (filePath) {
66
- url = formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure);
63
+ url = formatServiceUrl(API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure);
67
64
  }
68
65
  else {
69
- url = formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_URL, { url: this.config.url, projectId }, this.config.insecure);
66
+ url = formatServiceUrl(API_PROJECT_ASSET_URL, { url: this.config.url, projectId }, this.config.insecure);
70
67
  }
71
68
  return this.callGet(url, `Failed to get asset list for ${projectId}, filePath ${filePath}.`);
72
69
  }
@@ -78,7 +75,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
78
75
  */
79
76
  // TODO: map the response object
80
77
  async getAsset(projectId, filePath) {
81
- return this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), `Failed to get asset for ${projectId}, filePath ${filePath}.`, undefined, {
78
+ return this.callGet(formatServiceUrl(API_PROJECT_ASSET_PATH_URL, { url: this.config.url, projectId, filePath }, this.config.insecure), `Failed to get asset for ${projectId}, filePath ${filePath}.`, undefined, {
82
79
  responseType: 'blob',
83
80
  });
84
81
  }
@@ -91,7 +88,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
91
88
  * @param signedURL
92
89
  */
93
90
  async listRobotAssets(projectId, callsign, parent = '/', signedURL = false) {
94
- return this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ROBOT_ASSET_PATH_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), `Failed to get asset for ${projectId}, callsign ${callsign}.`, { parent, signedURL });
91
+ return this.callGet(formatServiceUrl(API_PROJECT_ROBOT_ASSET_PATH_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), `Failed to get asset for ${projectId}, callsign ${callsign}.`, { parent, signedURL });
95
92
  }
96
93
  /**
97
94
  * List assets for a flow
@@ -103,7 +100,40 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
103
100
  * @param signedURL
104
101
  */
105
102
  async listFlowAssets(projectId, flowId, flowInstance, parent = '/', signedURL = false) {
106
- return this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_FLOW_ASSET_PATH_URL, { url: this.config.url, projectId, flowId, flowInstance }, this.config.insecure), `Failed to get asset for ${projectId}, flow ${flowId}, flow instance ${flowInstance}.`, { parent, signedURL });
103
+ return this.callGet(formatServiceUrl(API_PROJECT_FLOW_ASSET_PATH_URL, { url: this.config.url, projectId, flowId, flowInstance }, this.config.insecure), `Failed to get asset for ${projectId}, flow ${flowId}, flow instance ${flowInstance}.`, { parent, signedURL });
104
+ }
105
+ /**
106
+ * List assets for a mission
107
+ *
108
+ * @param projectId
109
+ * @param assetIdList
110
+ */
111
+ async listMissionAssets(projectId, assetIdList) {
112
+ const searchParams = new URLSearchParams();
113
+ assetIdList.forEach((assetId) => searchParams.append('assetID', assetId));
114
+ return this.callGet(formatServiceUrl(API_PROJECT_MISSION_ASSETS_PATH_URL, { url: this.config.url, projectId }, this.config.insecure), `Failed to get asset for ${projectId}, assetIdList ${assetIdList}.`, searchParams);
115
+ }
116
+ /**
117
+ * Get a single asset for a mission
118
+ *
119
+ * @param projectId
120
+ * @param assetId
121
+ */
122
+ async getMissionAsset(projectId, assetId) {
123
+ return this.callGet(formatServiceUrl(API_PROJECT_MISSION_ASSET_PATH_URL, { url: this.config.url, projectId, assetId }, this.config.insecure), `Failed to get asset for ${projectId}, dataUUID ${assetId}.`, undefined);
124
+ }
125
+ /**
126
+ * Lists mapped assets
127
+ *
128
+ * @param projectId
129
+ * @param start Start date for the query (optional)
130
+ * @param end End date for the query (optional)
131
+ */
132
+ async listMappedAssets(projectId, start, end) {
133
+ return this.callGet(formatServiceUrl(API_PROJECT_MAPPED_ASSETS_PATH_URL, { url: this.config.url, projectId }, this.config.insecure), `Failed to list mapped assets for ${projectId}.`, {
134
+ start: start?.toISOString() ?? '',
135
+ end: end?.toISOString() ?? '',
136
+ });
107
137
  }
108
138
  /**
109
139
  * Set Robot Sync Definitions
@@ -117,7 +147,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
117
147
  'content-type': 'application/json',
118
148
  },
119
149
  };
120
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_ROBOTS_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), definition, `Failed to update asset for ${projectId}, callsign ${callsign}.`, httpOptions);
150
+ return this.callPost(formatServiceUrl(API_PROJECT_ASSET_ROBOTS_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), definition, `Failed to update asset for ${projectId}, callsign ${callsign}.`, httpOptions);
121
151
  }
122
152
  /**
123
153
  * Get Robot Sync Definitions
@@ -125,7 +155,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
125
155
  * @param callsign
126
156
  */
127
157
  getRobotSyncDefinitions(projectId, callsign) {
128
- return this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_ROBOTS_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), `Failed to get asset for ${projectId}, callsign ${callsign}.`, undefined);
158
+ return this.callGet(formatServiceUrl(API_PROJECT_ASSET_ROBOTS_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), `Failed to get asset for ${projectId}, callsign ${callsign}.`, undefined);
129
159
  }
130
160
  /**
131
161
  * Set Profile Sync Definitions
@@ -139,7 +169,7 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
139
169
  'content-type': 'application/json',
140
170
  },
141
171
  };
142
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PROFILES_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), definition, `Failed to update sync-definition for ${projectId}, callsign ${profileId}.`, httpOptions);
172
+ return this.callPost(formatServiceUrl(API_PROJECT_ASSET_PROFILES_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), definition, `Failed to update sync-definition for ${projectId}, callsign ${profileId}.`, httpOptions);
143
173
  }
144
174
  /**
145
175
  * Get Profile Sync Definitions
@@ -147,7 +177,6 @@ class AssetStorageService extends BaseServiceAbstract_1.BaseServiceAbstract {
147
177
  * @param profileId
148
178
  */
149
179
  getProfileSyncDefinition(projectId, profileId) {
150
- return this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_PROJECT_ASSET_PROFILES_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), `Failed to get sync-definition for ${projectId}, callsign ${profileId}.`, undefined);
180
+ return this.callGet(formatServiceUrl(API_PROJECT_ASSET_PROFILES_SYNC_DEFINITION_PATH_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), `Failed to get sync-definition for ${projectId}, callsign ${profileId}.`, undefined);
151
181
  }
152
182
  }
153
- exports.AssetStorageService = AssetStorageService;
@@ -1,61 +1,93 @@
1
- import { RocosError } from '../models/RocosError';
1
+ import { IBaseService, IRocosSDKConfig, RocosError, Token } from '../models';
2
2
  import { BaseServiceAbstract } from './BaseServiceAbstract';
3
- import { IBaseService } from '../models/IBaseService';
4
- import { IRocosSDKConfig } from '../models/IRocosSDKConfig';
5
- import { ISignupParams } from '../models/ISignupParams';
6
- import { Token } from '../models/Token';
7
3
  export declare class AuthService extends BaseServiceAbstract implements IBaseService {
8
4
  protected config: IRocosSDKConfig;
9
5
  private token?;
6
+ private tokenRefreshTimeoutId?;
10
7
  constructor(config: IRocosSDKConfig);
11
8
  getStatus(): boolean;
9
+ teardown(): void;
12
10
  protected getError(e: RocosError): RocosError;
13
11
  /**
14
12
  * Set the Auth token
15
13
  * @param value - Token value
16
- * @param expiresIn - Token expiry time
17
14
  */
18
- setToken(value: string, expiresIn: number): void;
15
+ setToken(value: string | Token): void;
19
16
  /**
20
- * Cleat auto token
17
+ * @deprecated `expiresIn` is now derived from the token. Use `setToken(value: string | Token)` instead
18
+ */
19
+ setToken(value: string | Token, expiresIn: number): void;
20
+ /**
21
+ * Clear token
21
22
  */
22
23
  clearToken(): void;
23
24
  /**
24
25
  * Get the authentication token for application Id and application Key.
25
26
  */
26
27
  getAppToken(): Promise<Token>;
27
- /**
28
- * Get the authentication token for logged in username and password
29
- */
30
- getUserToken(): Promise<Token>;
31
28
  /**
32
29
  * Get new auth token for a user
33
30
  * @desc This only works for user auth tokens, not appId auth tokens
34
31
  */
35
32
  getNewUserToken(): Promise<Token>;
33
+ /**
34
+ * Get new auth token for a user.
35
+ *
36
+ * Uses the OTP flow to exchange an external token for a user token.
37
+ *
38
+ * @desc This only works for user auth tokens, not appId auth tokens
39
+ */
40
+ private getNewUserTokenFromExternalToken;
36
41
  /**
37
42
  * Get the authentication token
43
+ *
44
+ * This will return the current token if it is not expired, otherwise it will get a new token based on your config.
38
45
  */
39
46
  getToken(): Promise<Token>;
40
47
  /**
41
- * Login with email and password.
48
+ * Refresh the authentication token
49
+ *
50
+ * This only works for user auth tokens, not appId auth tokens.
42
51
  *
43
- * @deprecated SDK can only be configured with appId and appKey or an existing token
44
- * @param email - Email address
45
- * @param password - Password
46
- * @param invitationCode - Invitation Code (Optional)
52
+ * The new token is not automatically set as the current token. Use `setToken` to set the new token.
53
+ *
54
+ * @see setToken
55
+ * @param token the token to refresh. If not provided, the current token will be used.
47
56
  */
48
- login(email: string, password: string, invitationCode?: string): Promise<any>;
49
- /**
50
- * Sign up
51
- * @deprecated SDK can only be configured with appId and appKey or an existing token
52
- * @param params = Signup payload {@link ISignupParams}
57
+ refreshToken(token?: Token): Promise<Token>;
58
+ /** Refresh the token if it is expired or will expire in the next `minutes` minutes
59
+ *
60
+ * This only works for user auth tokens, not appId auth tokens.
61
+ *
62
+ * If you want to refresh the token regardless of the expiry time, use `refreshToken`.
63
+ *
64
+ * @param minutes the number of minutes before the token expires to refresh the token
65
+ * @see refreshToken
53
66
  */
54
- signup(params: ISignupParams): Promise<any>;
67
+ refreshTokenIfExpired(minutes: number): Promise<void>;
68
+ /** Start a 5-minute loop to check if the token needs to be refreshed
69
+ *
70
+ * This is useful when you are using GRPC services (i.e. telemetry) which does not automatically refresh the token.
71
+ * It is not required when using REST services as the token is refreshed automatically.
72
+ *
73
+ * The loop will stop when `stopTokenRefreshChecker` is called.
74
+ *
75
+ * @see stopTokenRefreshChecker
76
+ */
77
+ startTokenRefreshChecker(): void;
55
78
  /**
56
- * Reset users password.
57
- * @deprecated SDK can only be configured with appId and appKey or an existing token
58
- * @param model - Reset payload
79
+ * Stop the token refresh checker
80
+ * @see startTokenRefreshChecker
81
+ */
82
+ stopTokenRefreshChecker(): void;
83
+ /** Check if the token refresh checker is running
84
+ *
85
+ * @see startTokenRefreshChecker
86
+ * @see stopTokenRefreshChecker
87
+ * @returns true if the token refresh checker is running
59
88
  */
60
- resetPassword(model: any): Promise<any>;
89
+ isTokenRefreshCheckerRunning(): boolean;
90
+ /** Checks if the token is valid for use with the API */
91
+ isTokenValid(token: Token): boolean;
92
+ private isTokenIssuedByApp;
61
93
  }
@@ -1,39 +1,48 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthService = void 0;
4
- const api_1 = require("../constants/api");
5
- const RocosError_1 = require("../models/RocosError");
6
- const BaseServiceAbstract_1 = require("./BaseServiceAbstract");
7
- const RocosLogger_1 = require("../logger/RocosLogger");
8
- const RocosStore_1 = require("../store/RocosStore");
9
- const Token_1 = require("../models/Token");
10
- const formatServiceUrl_1 = require("../helpers/formatServiceUrl");
11
- class AuthService extends BaseServiceAbstract_1.BaseServiceAbstract {
1
+ import { API_APPLICATION_AUTH_URL, API_OTP_AUTH_URL, API_OTP_URL, API_USER_TOKEN_URL } from '../constants/api';
2
+ import { RocosError, Token, errorCodes } from '../models';
3
+ import { BaseServiceAbstract } from './BaseServiceAbstract';
4
+ import { RocosLogger } from '../logger/RocosLogger';
5
+ import { RocosStore } from '../store/RocosStore';
6
+ import { formatServiceUrl } from '../helpers/formatServiceUrl';
7
+ import { issuer } from '../constants/auth';
8
+ export class AuthService extends BaseServiceAbstract {
12
9
  constructor(config) {
13
10
  super(config);
14
11
  this.config = config;
15
12
  this.config = config;
16
- this.logger = RocosLogger_1.RocosLogger.getInstance(`AuthService(${this.config.url})`);
13
+ this.logger = RocosLogger.getInstance(`AuthService(${this.config.url})`);
14
+ if (this.config.token) {
15
+ this.setToken(this.config.token);
16
+ }
17
17
  }
18
18
  getStatus() {
19
19
  return true;
20
20
  }
21
+ teardown() {
22
+ if (this.isTokenRefreshCheckerRunning()) {
23
+ this.logger.debug('Stopping token refresh checker');
24
+ this.stopTokenRefreshChecker();
25
+ }
26
+ }
21
27
  getError(e) {
22
- return new RocosError_1.RocosError(e, RocosError_1.errorCodes.AUTH_ERROR, e === null || e === void 0 ? void 0 : e.statusCode);
28
+ return new RocosError(e, errorCodes.AUTH_ERROR, e?.statusCode);
23
29
  }
24
- /**
25
- * Set the Auth token
26
- * @param value - Token value
27
- * @param expiresIn - Token expiry time
28
- */
29
30
  setToken(value, expiresIn) {
30
- this.token = new Token_1.Token({ value, expiresIn });
31
+ if (expiresIn !== undefined) {
32
+ this.logger.warn('setToken(value, expiresIn) is deprecated. Use setToken(value) instead');
33
+ }
34
+ if (typeof value === 'string') {
35
+ this.token = new Token(value);
36
+ }
37
+ else {
38
+ this.token = value;
39
+ }
31
40
  this.config.token = this.token.value;
32
41
  // output a message for token change
33
- RocosStore_1.RocosStore.getChangeSubject().next({ type: 'token', url: this.config.url, data: this.token.value });
42
+ RocosStore.getChangeSubject().next({ type: 'token', url: this.config.url, data: this.token.value });
34
43
  }
35
44
  /**
36
- * Cleat auto token
45
+ * Clear token
37
46
  */
38
47
  clearToken() {
39
48
  this.token = undefined;
@@ -44,111 +53,183 @@ class AuthService extends BaseServiceAbstract_1.BaseServiceAbstract {
44
53
  */
45
54
  async getAppToken() {
46
55
  if (!('appId' in this.config) || !this.config.appId || !('appKey' in this.config) || !this.config.appKey) {
47
- throw new RocosError_1.RocosError('Can not get app token, missing appId and appKey', RocosError_1.errorCodes.AUTH_ERROR);
56
+ throw new RocosError('Can not get app token, missing appId and appKey', errorCodes.AUTH_ERROR);
48
57
  }
49
- const res = await this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_APPLICATION_AUTH_URL, { url: this.config.url }, this.config.insecure), {
58
+ const res = await this.callPost(formatServiceUrl(API_APPLICATION_AUTH_URL, { url: this.config.url }, this.config.insecure), {
50
59
  applicationId: this.config.appId,
51
60
  secret: this.config.appKey,
52
61
  }, 'Failed to get users auth token.', { public: true });
53
- return new Token_1.Token({ value: res.token, expiresIn: res.expiresIn });
62
+ return new Token(res.token);
54
63
  }
55
64
  /**
56
- * Get the authentication token for logged in username and password
65
+ * Get new auth token for a user
66
+ * @desc This only works for user auth tokens, not appId auth tokens
57
67
  */
58
- async getUserToken() {
59
- if (!('email' in this.config) || !this.config.email || !('password' in this.config) || !this.config.password) {
60
- throw new RocosError_1.RocosError('Can not get user token, missing email and password', RocosError_1.errorCodes.AUTH_ERROR);
68
+ async getNewUserToken() {
69
+ if (!('token' in this.config) || !this.config.token) {
70
+ throw new RocosError('Can not get new app token, missing token', errorCodes.AUTH_ERROR);
61
71
  }
62
- try {
63
- // TODO: there is no token expiry returned on user token
64
- const { token, expiresIn } = await this.login(this.config.email, this.config.password, this.config.invitationCode);
65
- return new Token_1.Token({ value: token, expiresIn });
72
+ const token = new Token(this.config.token, this.config.refreshToken);
73
+ if (token?.isExpired()) {
74
+ throw new RocosError('Token expired', errorCodes.AUTH_ERROR);
66
75
  }
67
- catch (e) {
68
- const message = 'Failed to get users auth token.';
69
- this.logger.error(message, e);
70
- e.message = message;
71
- throw new RocosError_1.RocosError(e, RocosError_1.errorCodes.AUTH_ERROR);
76
+ if (!this.isTokenIssuedByApp(token)) {
77
+ this.logger.info('Token is not issued by app. Getting new token from DD token.');
78
+ return this.getNewUserTokenFromExternalToken();
72
79
  }
80
+ return this.refreshToken(token);
73
81
  }
74
82
  /**
75
- * Get new auth token for a user
83
+ * Get new auth token for a user.
84
+ *
85
+ * Uses the OTP flow to exchange an external token for a user token.
86
+ *
76
87
  * @desc This only works for user auth tokens, not appId auth tokens
77
88
  */
78
- async getNewUserToken() {
79
- if (!('token' in this.config)) {
80
- throw new RocosError_1.RocosError('Can not get new app token, missing token', RocosError_1.errorCodes.AUTH_ERROR);
89
+ async getNewUserTokenFromExternalToken() {
90
+ if (!('token' in this.config) || !this.config.token) {
91
+ throw new RocosError('Can not get new token, missing token', errorCodes.AUTH_ERROR);
81
92
  }
82
- const res = await this.callGet(formatServiceUrl_1.formatServiceUrl(api_1.API_USER_TOKEN_URL, { url: this.config.url }, this.config.insecure), 'Failed to get users auth token.', undefined, { public: true, headers: { Authorization: `Bearer ${this.config.token}` } });
83
- return new Token_1.Token({ value: res.token });
93
+ const ddToken = new Token(this.config.token);
94
+ const { otp } = await this.callPost(formatServiceUrl(API_OTP_URL, { url: this.config.url }, this.config.insecure), undefined, 'Failed to get one time password.', { public: true, headers: { Authorization: ddToken.bearer } });
95
+ const { token, refreshToken } = await this.callPost(formatServiceUrl(API_OTP_AUTH_URL, { url: this.config.url }, this.config.insecure), { otp }, 'Failed to get users auth token.', { public: true });
96
+ return new Token(token, refreshToken);
84
97
  }
85
98
  /**
86
99
  * Get the authentication token
100
+ *
101
+ * This will return the current token if it is not expired, otherwise it will get a new token based on your config.
87
102
  */
88
103
  async getToken() {
89
- if (this.token && !this.token.isExpired()) {
104
+ if (this.token && this.isTokenValid(this.token)) {
105
+ if (this.token.isExpiredIn(15, 'minutes')) {
106
+ this.logger.info('Token expires within 15 minutes. Refreshing.');
107
+ const newToken = await this.refreshToken();
108
+ this.setToken(newToken);
109
+ return newToken;
110
+ }
90
111
  return this.token;
91
112
  }
113
+ let token;
92
114
  try {
93
115
  if ('appId' in this.config && 'appKey' in this.config) {
94
- this.token = await this.getAppToken();
95
- }
96
- else if ('email' in this.config && 'password' in this.config) {
97
- this.token = await this.getUserToken();
116
+ token = await this.getAppToken();
98
117
  }
99
118
  else if ('token' in this.config) {
100
- this.token = await this.getNewUserToken();
101
- }
102
- else {
103
- throw new Error('Config invalid');
119
+ token = await this.getNewUserToken();
104
120
  }
105
- this.config.token = this.token.value;
106
- // output a message for token change
107
- RocosStore_1.RocosStore.getChangeSubject().next({ type: 'token', url: this.config.url, data: this.token.value });
108
- return this.token;
109
121
  }
110
122
  catch (e) {
111
123
  const message = 'Failed to get auth token.';
112
124
  this.logger.error(message, e);
113
- e.message = message;
114
- throw new RocosError_1.RocosError(e, RocosError_1.errorCodes.AUTH_ERROR);
125
+ if (e instanceof Error) {
126
+ e.message = message;
127
+ throw new RocosError(e, errorCodes.AUTH_ERROR);
128
+ }
129
+ else {
130
+ throw new RocosError(message, errorCodes.AUTH_ERROR);
131
+ }
132
+ }
133
+ if (!token) {
134
+ const message = 'Failed to get auth token. Config invalid.';
135
+ this.logger.error(message);
136
+ throw new RocosError(message, errorCodes.AUTH_ERROR);
115
137
  }
138
+ this.setToken(token);
139
+ return token;
116
140
  }
117
141
  /**
118
- * Login with email and password.
142
+ * Refresh the authentication token
143
+ *
144
+ * This only works for user auth tokens, not appId auth tokens.
119
145
  *
120
- * @deprecated SDK can only be configured with appId and appKey or an existing token
121
- * @param email - Email address
122
- * @param password - Password
123
- * @param invitationCode - Invitation Code (Optional)
146
+ * The new token is not automatically set as the current token. Use `setToken` to set the new token.
147
+ *
148
+ * @see setToken
149
+ * @param token the token to refresh. If not provided, the current token will be used.
124
150
  */
125
- // TODO: map the response object
126
- async login(email, password, invitationCode) {
127
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_USER_AUTH_URL, { url: this.config.url }, this.config.insecure), {
128
- email,
129
- password,
130
- invitationCode,
131
- }, 'Failed to login user.', { public: true });
151
+ async refreshToken(token) {
152
+ const tokenToRefresh = token ?? this.token;
153
+ if (!tokenToRefresh) {
154
+ throw new RocosError('No token to refresh', errorCodes.AUTH_ERROR);
155
+ }
156
+ const res = await this.callGet(formatServiceUrl(API_USER_TOKEN_URL, { url: this.config.url }, this.config.insecure), 'Failed to get users auth token.', undefined, { public: true, headers: { Authorization: tokenToRefresh.bearer } });
157
+ return new Token(res.token, res.refreshToken);
132
158
  }
133
- /**
134
- * Sign up
135
- * @deprecated SDK can only be configured with appId and appKey or an existing token
136
- * @param params = Signup payload {@link ISignupParams}
159
+ /** Refresh the token if it is expired or will expire in the next `minutes` minutes
160
+ *
161
+ * This only works for user auth tokens, not appId auth tokens.
162
+ *
163
+ * If you want to refresh the token regardless of the expiry time, use `refreshToken`.
164
+ *
165
+ * @param minutes the number of minutes before the token expires to refresh the token
166
+ * @see refreshToken
137
167
  */
138
- // TODO: map the response object
139
- async signup(params) {
140
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_USER_URL, { url: this.config.url }, this.config.insecure), params, 'Failed to sign up user.', { public: true });
168
+ async refreshTokenIfExpired(minutes) {
169
+ if (this.token?.isExpiredIn(minutes, 'minutes')) {
170
+ this.logger.info('Token expires in 15 minutes. Refreshing.');
171
+ const newToken = await this.refreshToken();
172
+ this.setToken(newToken);
173
+ }
174
+ }
175
+ /** Start a 5-minute loop to check if the token needs to be refreshed
176
+ *
177
+ * This is useful when you are using GRPC services (i.e. telemetry) which does not automatically refresh the token.
178
+ * It is not required when using REST services as the token is refreshed automatically.
179
+ *
180
+ * The loop will stop when `stopTokenRefreshChecker` is called.
181
+ *
182
+ * @see stopTokenRefreshChecker
183
+ */
184
+ startTokenRefreshChecker() {
185
+ const maxInterval = 1000 * 60 * 10; // 10 minutes
186
+ const minInterval = 1000 * 60; // 1 minute
187
+ const threshold = 1000 * 60 * 15; // 15 minutes
188
+ if (this.isTokenRefreshCheckerRunning())
189
+ return;
190
+ if (!this.token)
191
+ throw new RocosError('No token to refresh', errorCodes.AUTH_ERROR);
192
+ if (!this.isTokenValid(this.token))
193
+ throw new RocosError('Token is not valid', errorCodes.AUTH_ERROR);
194
+ const loop = () => {
195
+ this.logger.debug('Checking scheduled token refresh');
196
+ this.refreshTokenIfExpired(15)
197
+ .catch((e) => {
198
+ this.logger.error('Failed to refresh token', e);
199
+ })
200
+ .finally(() => {
201
+ if (!this.token?.expires)
202
+ return;
203
+ // schedule next check
204
+ const timeTillThreshold = this.token.expires.getTime() - Date.now() - threshold;
205
+ const interval = Math.max(minInterval, Math.min(maxInterval, timeTillThreshold));
206
+ this.tokenRefreshTimeoutId = setTimeout(() => loop(), interval);
207
+ });
208
+ };
209
+ loop();
141
210
  }
142
211
  /**
143
- * Reset users password.
144
- * @deprecated SDK can only be configured with appId and appKey or an existing token
145
- * @param model - Reset payload
212
+ * Stop the token refresh checker
213
+ * @see startTokenRefreshChecker
146
214
  */
147
- // TODO: map the request model
148
- // TODO: map the response object
149
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
150
- async resetPassword(model) {
151
- return this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_USER_PASSWORD_RESET_URL, { url: this.config.url }, this.config.insecure), model, 'Failed to reset password.', { public: true });
215
+ stopTokenRefreshChecker() {
216
+ clearTimeout(this.tokenRefreshTimeoutId);
217
+ this.tokenRefreshTimeoutId = undefined;
218
+ }
219
+ /** Check if the token refresh checker is running
220
+ *
221
+ * @see startTokenRefreshChecker
222
+ * @see stopTokenRefreshChecker
223
+ * @returns true if the token refresh checker is running
224
+ */
225
+ isTokenRefreshCheckerRunning() {
226
+ return this.tokenRefreshTimeoutId !== undefined;
227
+ }
228
+ /** Checks if the token is valid for use with the API */
229
+ isTokenValid(token) {
230
+ return !token.isExpired() && this.isTokenIssuedByApp(token);
231
+ }
232
+ isTokenIssuedByApp(token) {
233
+ return token.issuer === issuer;
152
234
  }
153
235
  }
154
- exports.AuthService = AuthService;
@@ -0,0 +1 @@
1
+ export {};