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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/IRocosSDK.js +5 -1
  2. package/README.md +0 -18
  3. package/RocosSDK.js +95 -93
  4. package/api/StreamRegister.d.ts +1 -1
  5. package/api/StreamRegister.js +12 -23
  6. package/api/atoms/StreamHeartbeat.js +7 -3
  7. package/api/streams/caller/CallerStream.d.ts +6 -6
  8. package/api/streams/caller/CallerStream.js +49 -41
  9. package/api/streams/caller/CallerStreamAbstract.d.ts +11 -6
  10. package/api/streams/caller/CallerStreamAbstract.js +67 -55
  11. package/api/streams/caller/CallerStreamNode.d.ts +6 -6
  12. package/api/streams/caller/CallerStreamNode.js +61 -48
  13. package/api/streams/command/CommandStream.d.ts +4 -2
  14. package/api/streams/command/CommandStream.js +30 -28
  15. package/api/streams/command/CommandStreamAbstract.d.ts +8 -4
  16. package/api/streams/command/CommandStreamAbstract.js +42 -33
  17. package/api/streams/command/CommandStreamNode.d.ts +4 -2
  18. package/api/streams/command/CommandStreamNode.js +40 -16
  19. package/api/streams/control/ControlStream.d.ts +6 -4
  20. package/api/streams/control/ControlStream.js +36 -30
  21. package/api/streams/control/ControlStreamAbstract.d.ts +9 -6
  22. package/api/streams/control/ControlStreamAbstract.js +54 -57
  23. package/api/streams/control/ControlStreamNode.d.ts +5 -3
  24. package/api/streams/control/ControlStreamNode.js +44 -19
  25. package/api/streams/fileAccessor/FileAccessorStream.d.ts +4 -2
  26. package/api/streams/fileAccessor/FileAccessorStream.js +57 -42
  27. package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +9 -4
  28. package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +48 -28
  29. package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +3 -1
  30. package/api/streams/fileAccessor/FileAccessorStreamNode.js +53 -23
  31. package/api/streams/search/SearchStream.d.ts +5 -2
  32. package/api/streams/search/SearchStream.js +74 -50
  33. package/api/streams/search/SearchStreamAbstract.d.ts +9 -4
  34. package/api/streams/search/SearchStreamAbstract.js +35 -33
  35. package/api/streams/search/SearchStreamNode.d.ts +5 -2
  36. package/api/streams/search/SearchStreamNode.js +48 -23
  37. package/api/streams/telemetry/TelemetryStream.d.ts +4 -4
  38. package/api/streams/telemetry/TelemetryStream.js +78 -49
  39. package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +11 -8
  40. package/api/streams/telemetry/TelemetryStreamAbstract.js +145 -126
  41. package/api/streams/telemetry/TelemetryStreamNode.d.ts +5 -5
  42. package/api/streams/telemetry/TelemetryStreamNode.js +64 -44
  43. package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +10 -5
  44. package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +20 -37
  45. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +13 -10
  46. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +37 -37
  47. package/constants/api.d.ts +1 -6
  48. package/constants/api.js +126 -126
  49. package/constants/grpc.js +8 -5
  50. package/constants/identifier.js +9 -6
  51. package/constants/timezones.d.ts +1 -1
  52. package/constants/timezones.js +4 -1
  53. package/demo/angular/.editorconfig +16 -0
  54. package/demo/angular/.eslintignore +4 -0
  55. package/demo/angular/.eslintrc.json +50 -0
  56. package/demo/angular/README.md +36 -0
  57. package/demo/angular/angular.json +132 -0
  58. package/demo/angular/karma.conf.js +44 -0
  59. package/demo/angular/package.json +41 -0
  60. package/demo/angular/src/app/app.component.css +0 -0
  61. package/demo/angular/src/app/app.component.html +9 -0
  62. package/demo/angular/src/app/app.component.ts +10 -0
  63. package/demo/angular/src/app/app.module.ts +38 -0
  64. package/demo/angular/src/app/components/assets/assets.component.css +0 -0
  65. package/demo/angular/src/app/components/assets/assets.component.html +29 -0
  66. package/demo/angular/src/app/components/assets/assets.component.ts +107 -0
  67. package/demo/angular/src/app/components/auth/auth.component.css +0 -0
  68. package/demo/angular/src/app/components/auth/auth.component.html +27 -0
  69. package/demo/angular/src/app/components/auth/auth.component.ts +33 -0
  70. package/demo/angular/src/app/components/caller/caller.component.css +0 -0
  71. package/demo/angular/src/app/components/caller/caller.component.html +22 -0
  72. package/demo/angular/src/app/components/caller/caller.component.ts +61 -0
  73. package/demo/angular/src/app/components/command/command.component.css +0 -0
  74. package/demo/angular/src/app/components/command/command.component.html +22 -0
  75. package/demo/angular/src/app/components/command/command.component.ts +60 -0
  76. package/demo/angular/src/app/components/integrations/integrations.component.ts +43 -0
  77. package/demo/angular/src/app/components/robots/robots.component.css +0 -0
  78. package/demo/angular/src/app/components/robots/robots.component.html +13 -0
  79. package/demo/angular/src/app/components/robots/robots.component.ts +26 -0
  80. package/demo/angular/src/app/components/sdk/sdk.component.css +0 -0
  81. package/demo/angular/src/app/components/sdk/sdk.component.html +43 -0
  82. package/demo/angular/src/app/components/sdk/sdk.component.ts +50 -0
  83. package/demo/angular/src/app/components/subscription/subscription.component.css +0 -0
  84. package/demo/angular/src/app/components/subscription/subscription.component.html +6 -0
  85. package/demo/angular/src/app/components/subscription/subscription.component.ts +40 -0
  86. package/demo/angular/src/app/components/telemetry/telemetry.component.css +0 -0
  87. package/demo/angular/src/app/components/telemetry/telemetry.component.html +19 -0
  88. package/demo/angular/src/app/components/telemetry/telemetry.component.ts +61 -0
  89. package/demo/angular/src/app/components/token/token.component.css +0 -0
  90. package/demo/angular/src/app/components/token/token.component.html +10 -0
  91. package/demo/angular/src/app/components/token/token.component.ts +18 -0
  92. package/demo/angular/src/app/components/video/p2pvideo/index.ts +646 -0
  93. package/demo/angular/src/app/components/video/video-source.ts +315 -0
  94. package/demo/angular/src/app/components/video/video.component.css +6 -0
  95. package/demo/angular/src/app/components/video/video.component.html +54 -0
  96. package/demo/angular/src/app/components/video/video.component.ts +151 -0
  97. package/demo/angular/src/app/services/sdk.service.ts +193 -0
  98. package/demo/angular/src/assets/.gitkeep +0 -0
  99. package/demo/angular/src/assets/HKGrotesk-Bold.otf +0 -0
  100. package/demo/angular/src/assets/HKGrotesk-Regular.otf +0 -0
  101. package/demo/angular/src/assets/logo.svg +16 -0
  102. package/demo/angular/src/environments/environment.prod.ts +3 -0
  103. package/demo/angular/src/environments/environment.ts +16 -0
  104. package/demo/angular/src/favicon.ico +0 -0
  105. package/demo/angular/src/index.html +15 -0
  106. package/demo/angular/src/main.ts +7 -0
  107. package/demo/angular/src/polyfills.ts +53 -0
  108. package/demo/angular/src/styles.css +198 -0
  109. package/demo/angular/tsconfig.app.json +15 -0
  110. package/demo/angular/tsconfig.json +39 -0
  111. package/demo/html/README.md +8 -0
  112. package/demo/html/assets/HKGrotesk-Bold.otf +0 -0
  113. package/demo/html/assets/HKGrotesk-Regular.otf +0 -0
  114. package/demo/html/assets/logo.svg +16 -0
  115. package/demo/html/favicon.ico +0 -0
  116. package/demo/html/index.html +416 -0
  117. package/demo/html/rocos-js-sdk.js +3 -0
  118. package/demo/html/rocos-js-sdk.js.LICENSE.txt +8 -0
  119. package/demo/html/rocos-js-sdk.js.map +1 -0
  120. package/demo/html/styles.css +190 -0
  121. package/demo/node/README.md +17 -0
  122. package/demo/node/index.js +134 -0
  123. package/demo/node/package.json +8 -0
  124. package/demo/react/.env +1 -0
  125. package/demo/react/.env.dist +1 -0
  126. package/demo/react/.eslintrc.json +46 -0
  127. package/demo/react/README.md +65 -0
  128. package/demo/react/package.json +60 -0
  129. package/demo/react/public/favicon.ico +0 -0
  130. package/demo/react/public/index.html +43 -0
  131. package/demo/react/public/logo192.png +0 -0
  132. package/demo/react/public/logo512.png +0 -0
  133. package/demo/react/public/manifest.json +25 -0
  134. package/demo/react/public/robots.txt +3 -0
  135. package/demo/react/src/App.css +190 -0
  136. package/demo/react/src/App.tsx +31 -0
  137. package/demo/react/src/actions/index.ts +8 -0
  138. package/demo/react/src/actions/sdkActions.ts +62 -0
  139. package/demo/react/src/assets/HKGrotesk-Bold.otf +0 -0
  140. package/demo/react/src/assets/HKGrotesk-Regular.otf +0 -0
  141. package/demo/react/src/assets/logo.svg +16 -0
  142. package/demo/react/src/components/AuthForm.tsx +76 -0
  143. package/demo/react/src/components/CallerBox.tsx +53 -0
  144. package/demo/react/src/components/CallerForm.tsx +98 -0
  145. package/demo/react/src/components/CommandBox.tsx +47 -0
  146. package/demo/react/src/components/CommandForm.tsx +98 -0
  147. package/demo/react/src/components/RobotsForm.tsx +51 -0
  148. package/demo/react/src/components/SubscriptionBox.tsx +55 -0
  149. package/demo/react/src/components/TelemetryForm.tsx +98 -0
  150. package/demo/react/src/components/TokenForm.tsx +39 -0
  151. package/demo/react/src/config.json +14 -0
  152. package/demo/react/src/controllers/RocosSDKController.ts +48 -0
  153. package/demo/react/src/helpers/deepEqual.ts +27 -0
  154. package/demo/react/src/hooks/useInput.ts +29 -0
  155. package/demo/react/src/index.css +11 -0
  156. package/demo/react/src/index.tsx +26 -0
  157. package/demo/react/src/react-app-env.d.ts +1 -0
  158. package/demo/react/src/reducers/sdkReducer.ts +133 -0
  159. package/demo/react/src/reportWebVitals.ts +15 -0
  160. package/demo/react/src/selectors/sdkSelector.ts +11 -0
  161. package/demo/react/src/setupTests.ts +5 -0
  162. package/demo/react/src/store.ts +14 -0
  163. package/demo/react/tsconfig.json +26 -0
  164. package/demo/sdk-sizer/dist/sdk-sizer/3rdpartylicenses.txt +975 -0
  165. package/demo/sdk-sizer/dist/sdk-sizer/favicon.ico +0 -0
  166. package/demo/sdk-sizer/dist/sdk-sizer/index.html +12 -0
  167. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js +2 -0
  168. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js.map +1 -0
  169. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js +2 -0
  170. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js.map +1 -0
  171. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js +2 -0
  172. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js.map +1 -0
  173. package/demo/sdk-sizer/dist/sdk-sizer/stats.json +1 -0
  174. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css +2 -0
  175. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css.map +1 -0
  176. package/grpc/file-accessor/filagree_grpc_pb.d.ts +41 -0
  177. package/grpc/file-accessor/filagree_grpc_pb.js +121 -0
  178. package/grpc/file-accessor/filagree_pb.d.ts +339 -0
  179. package/grpc/file-accessor/filagree_pb.js +2261 -0
  180. package/grpc/file-accessor/filagree_pb_service.d.ts +115 -0
  181. package/grpc/file-accessor/filagree_pb_service.js +257 -0
  182. package/grpc/rambo/rambo.v1_grpc_pb.d.ts +39 -0
  183. package/grpc/rambo/rambo.v1_grpc_pb.js +73 -0
  184. package/grpc/rambo/rambo.v1_pb.d.ts +365 -0
  185. package/grpc/rambo/rambo.v1_pb.js +2469 -0
  186. package/grpc/rambo/rambo.v1_pb_service.d.ts +76 -0
  187. package/grpc/rambo/rambo.v1_pb_service.js +138 -0
  188. package/grpc/rambo/uri.v1_grpc_pb.d.ts +1 -0
  189. package/grpc/rambo/uri.v1_grpc_pb.js +1 -0
  190. package/grpc/rambo/uri.v1_pb.d.ts +80 -0
  191. package/grpc/rambo/uri.v1_pb.js +563 -0
  192. package/grpc/rambo/uri.v1_pb_service.d.ts +3 -0
  193. package/grpc/rambo/uri.v1_pb_service.js +3 -0
  194. package/grpc/robot-control/conker_grpc_pb.d.ts +46 -0
  195. package/grpc/robot-control/conker_grpc_pb.js +143 -0
  196. package/grpc/robot-control/conker_pb.d.ts +168 -0
  197. package/grpc/robot-control/conker_pb.js +1287 -0
  198. package/grpc/robot-control/conker_pb_service.d.ts +126 -0
  199. package/grpc/robot-control/conker_pb_service.js +301 -0
  200. package/grpc/serviette/common.v1_grpc_pb.d.ts +1 -0
  201. package/grpc/serviette/common.v1_grpc_pb.js +1 -0
  202. package/grpc/serviette/common.v1_pb.d.ts +8 -0
  203. package/grpc/serviette/common.v1_pb.js +45 -0
  204. package/grpc/serviette/common.v1_pb_service.d.ts +3 -0
  205. package/grpc/serviette/common.v1_pb_service.js +3 -0
  206. package/grpc/serviette/serviette.v1_grpc_pb.d.ts +137 -0
  207. package/grpc/serviette/serviette.v1_grpc_pb.js +331 -0
  208. package/grpc/serviette/serviette.v1_pb.d.ts +884 -0
  209. package/grpc/serviette/serviette.v1_pb.js +6363 -0
  210. package/grpc/serviette/serviette.v1_pb_service.d.ts +278 -0
  211. package/grpc/serviette/serviette.v1_pb_service.js +699 -0
  212. package/grpc/serviette/uri.v1_grpc_pb.d.ts +1 -0
  213. package/grpc/serviette/uri.v1_grpc_pb.js +1 -0
  214. package/grpc/serviette/uri.v1_pb.d.ts +102 -0
  215. package/grpc/serviette/uri.v1_pb.js +741 -0
  216. package/grpc/serviette/uri.v1_pb_service.d.ts +3 -0
  217. package/grpc/serviette/uri.v1_pb_service.js +3 -0
  218. package/grpc/slowlane/slowlane_grpc_pb.d.ts +38 -0
  219. package/grpc/slowlane/slowlane_grpc_pb.js +132 -0
  220. package/grpc/slowlane/slowlane_pb.d.ts +373 -0
  221. package/grpc/slowlane/slowlane_pb.js +2908 -0
  222. package/grpc/slowlane/slowlane_pb_service.d.ts +112 -0
  223. package/grpc/slowlane/slowlane_pb_service.js +189 -0
  224. package/grpc/teletubby/teletubby_grpc_pb.d.ts +73 -0
  225. package/grpc/teletubby/teletubby_grpc_pb.js +231 -0
  226. package/grpc/teletubby/teletubby_pb.d.ts +647 -0
  227. package/grpc/teletubby/teletubby_pb.js +4786 -0
  228. package/grpc/teletubby/teletubby_pb_service.d.ts +193 -0
  229. package/grpc/teletubby/teletubby_pb_service.js +436 -0
  230. package/grpc/video/pigeon_grpc_pb.d.ts +59 -0
  231. package/grpc/video/pigeon_grpc_pb.js +180 -0
  232. package/grpc/video/pigeon_pb.d.ts +237 -0
  233. package/grpc/video/pigeon_pb.js +1775 -0
  234. package/grpc/video/pigeon_pb_service.d.ts +152 -0
  235. package/grpc/video/pigeon_pb_service.js +292 -0
  236. package/helpers/arrayRemove.js +6 -2
  237. package/helpers/arrayUnique.js +6 -2
  238. package/helpers/average.js +7 -2
  239. package/helpers/cleanObject.js +19 -17
  240. package/helpers/enviroment.js +11 -4
  241. package/helpers/flattenCallsignsLookup.d.ts +1 -1
  242. package/helpers/flattenCallsignsLookup.js +5 -1
  243. package/helpers/flattenObject.js +5 -1
  244. package/helpers/formatServiceUrl.js +5 -1
  245. package/helpers/generateUUID.js +7 -3
  246. package/helpers/getSubscriptionsDifference.d.ts +3 -3
  247. package/helpers/getSubscriptionsDifference.js +10 -6
  248. package/helpers/getUniqueConfigKey.js +6 -1
  249. package/helpers/getUniqueId.js +7 -3
  250. package/helpers/getUnixTimeMs.js +5 -1
  251. package/helpers/index.d.ts +1 -1
  252. package/helpers/index.js +15 -3
  253. package/helpers/nanosecondToMillisecond.d.ts +1 -1
  254. package/helpers/nanosecondToMillisecond.js +6 -5
  255. package/helpers/randomString.js +5 -1
  256. package/helpers/standardDeviation.js +8 -4
  257. package/helpers/stringToUint8Array.js +7 -3
  258. package/helpers/uint8ArrayToString.js +8 -3
  259. package/index.js +19 -7
  260. package/logger/RocosLogger.js +44 -18
  261. package/models/ExportDataQuery.js +5 -1
  262. package/models/ExternalProject.js +5 -1
  263. package/models/IBaseService.d.ts +0 -1
  264. package/models/IBaseService.js +2 -1
  265. package/models/IConfigGroup.js +2 -1
  266. package/models/IDebugLevel.d.ts +1 -1
  267. package/models/IDebugLevel.js +2 -1
  268. package/models/IExportDataQuery.js +2 -1
  269. package/models/IFunctionConfig.js +2 -1
  270. package/models/IInvitation.d.ts +1 -1
  271. package/models/IInvitation.js +2 -1
  272. package/models/IInvitationExists.js +2 -1
  273. package/models/IOperation.js +2 -1
  274. package/models/IPersonalAccessToken.js +2 -1
  275. package/models/IProject.js +2 -1
  276. package/models/IProjectApplication.js +2 -1
  277. package/models/IRobot.d.ts +0 -1
  278. package/models/IRobot.js +2 -1
  279. package/models/IRobotConfig.js +2 -1
  280. package/models/IRobotPlugin.js +2 -1
  281. package/models/IRobotTemplate.js +2 -1
  282. package/models/IRocosSDKConfig.d.ts +9 -3
  283. package/models/IRocosSDKConfig.js +2 -1
  284. package/models/ISignupParams.d.ts +8 -0
  285. package/models/ISignupParams.js +2 -0
  286. package/models/ISource.js +2 -1
  287. package/models/IStream.js +2 -1
  288. package/models/IStreamConfig.js +2 -1
  289. package/models/IStreamOptions.js +2 -1
  290. package/models/IStreamSource.js +2 -1
  291. package/models/ISubscriberStatus.js +2 -1
  292. package/models/ITelemetryStreamConfig.js +2 -1
  293. package/models/IToken.d.ts +3 -7
  294. package/models/IToken.js +2 -1
  295. package/models/IWidget.js +2 -1
  296. package/models/IWidgetLineGroup.js +2 -1
  297. package/models/ResponseLevelEnum.d.ts +0 -4
  298. package/models/ResponseLevelEnum.js +5 -6
  299. package/models/Robot.d.ts +0 -1
  300. package/models/Robot.js +5 -1
  301. package/models/RobotConfig.js +5 -1
  302. package/models/RobotPlugin.js +5 -1
  303. package/models/RobotTemplate.js +14 -9
  304. package/models/RocosError.js +6 -2
  305. package/models/ServiceEnum.js +5 -2
  306. package/models/Stream.js +8 -4
  307. package/models/StreamOptions.js +5 -1
  308. package/models/StreamSource.js +7 -3
  309. package/models/SubscriberStatusEnum.js +5 -2
  310. package/models/Token.d.ts +4 -36
  311. package/models/Token.js +11 -74
  312. package/models/Widget.js +8 -4
  313. package/models/WidgetLineGroup.js +5 -1
  314. package/models/asset-storage/AssetModelItem.js +2 -1
  315. package/models/caller/IRocosCallerMessageChunk.d.ts +2 -3
  316. package/models/caller/IRocosCallerMessageChunk.js +2 -1
  317. package/models/caller/IRocosCallerMessageChunks.d.ts +3 -2
  318. package/models/caller/IRocosCallerMessageChunks.js +2 -1
  319. package/models/caller/IRocosCallerMessageHeartbeat.d.ts +2 -3
  320. package/models/caller/IRocosCallerMessageHeartbeat.js +2 -1
  321. package/models/caller/IRocosCallerMessageResponse.d.ts +2 -3
  322. package/models/caller/IRocosCallerMessageResponse.js +2 -1
  323. package/models/caller/IRocosCallerMessageResponseAck.d.ts +2 -16
  324. package/models/caller/IRocosCallerMessageResponseAck.js +2 -13
  325. package/models/caller/IRocosCallerMessageResponseResult.d.ts +2 -15
  326. package/models/caller/IRocosCallerMessageResponseResult.js +2 -12
  327. package/models/caller/IRocosCallerMessageResponseUid.d.ts +2 -10
  328. package/models/caller/IRocosCallerMessageResponseUid.js +2 -7
  329. package/models/caller/IRocosCallerMessageResponses.d.ts +3 -2
  330. package/models/caller/IRocosCallerMessageResponses.js +2 -1
  331. package/models/caller/RocosCallerResultStatus.d.ts +1 -11
  332. package/models/caller/RocosCallerResultStatus.js +5 -12
  333. package/models/callsigns/CallsignsEnums.d.ts +3 -3
  334. package/models/callsigns/CallsignsEnums.js +14 -11
  335. package/models/callsigns/CallsignsLookup.js +15 -10
  336. package/models/callsigns/CallsignsQuery.js +5 -1
  337. package/models/callsigns/CallsignsQueryPredicate.js +5 -1
  338. package/models/command/IRocosCommandMessageHeartbeat.d.ts +2 -1
  339. package/models/command/IRocosCommandMessageHeartbeat.js +2 -1
  340. package/models/command/IRocosCommandMessageResponse.d.ts +2 -55
  341. package/models/command/IRocosCommandMessageResponse.js +2 -29
  342. package/models/command/RocosCommandResultStatus.d.ts +1 -11
  343. package/models/command/RocosCommandResultStatus.js +5 -12
  344. package/models/file/FileEnums.d.ts +4 -4
  345. package/models/file/FileEnums.js +12 -9
  346. package/models/index.d.ts +31 -5
  347. package/models/index.js +113 -75
  348. package/models/integrations/Overlay.js +2 -1
  349. package/models/integrations/Plan.js +2 -1
  350. package/models/maps/Map.d.ts +0 -1
  351. package/models/maps/Map.js +2 -1
  352. package/models/message/IRocosCallerMessage.js +2 -1
  353. package/models/message/IRocosChangeMessage.js +2 -1
  354. package/models/message/IRocosCommandMessage.js +2 -1
  355. package/models/message/IRocosControlMessage.js +2 -1
  356. package/models/message/IRocosOpResultMessage.d.ts +2 -2
  357. package/models/message/IRocosOpResultMessage.js +2 -1
  358. package/models/message/IRocosSearchMessage.js +2 -1
  359. package/models/message/IRocosSearchRowMessage.js +2 -1
  360. package/models/message/IRocosSearchStatusMessage.js +2 -1
  361. package/models/message/IRocosTelemetryMessage.d.ts +7 -12
  362. package/models/message/IRocosTelemetryMessage.js +2 -1
  363. package/models/message/IStreamStatusMessage.js +2 -1
  364. package/models/message/RocosCallerMessage.d.ts +4 -2
  365. package/models/message/RocosCallerMessage.js +15 -24
  366. package/models/message/RocosCommandMessage.d.ts +3 -2
  367. package/models/message/RocosCommandMessage.js +8 -5
  368. package/models/message/RocosControlMessage.d.ts +1 -1
  369. package/models/message/RocosControlMessage.js +10 -6
  370. package/models/message/RocosOpResultMessage.d.ts +2 -3
  371. package/models/message/RocosOpResultMessage.js +10 -6
  372. package/models/message/RocosSearchMessage.d.ts +1 -1
  373. package/models/message/RocosSearchMessage.js +9 -5
  374. package/models/message/RocosSearchRowMessage.d.ts +1 -1
  375. package/models/message/RocosSearchRowMessage.js +12 -8
  376. package/models/message/RocosTelemetryMessage.d.ts +23 -9
  377. package/models/message/RocosTelemetryMessage.js +93 -51
  378. package/models/params/ICallerParams.d.ts +1 -2
  379. package/models/params/ICallerParams.js +2 -1
  380. package/models/params/ICommandParams.js +2 -1
  381. package/models/params/IControlParams.d.ts +1 -1
  382. package/models/params/IControlParams.js +2 -1
  383. package/models/params/IFileAccessorParams.js +2 -1
  384. package/models/params/ISearchParams.js +2 -1
  385. package/models/params/ITelemetryParams.d.ts +1 -1
  386. package/models/params/ITelemetryParams.js +2 -1
  387. package/models/params/IWebRTCSignallingParams.js +2 -1
  388. package/models/projects/ProjectUser.js +2 -1
  389. package/models/schedule/IScheduleAction.d.ts +1 -1
  390. package/models/schedule/IScheduleAction.js +5 -2
  391. package/models/schedule/IScheduleInfo.js +2 -1
  392. package/models/schedule/IScheduleJob.js +2 -1
  393. package/models/search/SearchQueryFilter.js +5 -1
  394. package/models/search/SearchStreamQuery.js +5 -1
  395. package/models/stream/IBaseStream.js +2 -1
  396. package/models/stream/ICallerStream.js +2 -1
  397. package/models/stream/ICommandStream.js +2 -1
  398. package/models/stream/IControlStream.js +2 -1
  399. package/models/stream/IFileAccessorStream.d.ts +2 -1
  400. package/models/stream/IFileAccessorStream.js +2 -1
  401. package/models/stream/ISearchStream.js +2 -1
  402. package/models/stream/ITelemetryStream.js +2 -1
  403. package/models/stream/IWebRTCSignallingStream.d.ts +16 -51
  404. package/models/stream/IWebRTCSignallingStream.js +7 -1
  405. package/models/types.d.ts +5 -5
  406. package/models/types.js +2 -1
  407. package/node/RocosSDKNode.js +80 -75
  408. package/node/index.js +19 -7
  409. package/package.json +9 -6
  410. package/services/AssetStorageService.d.ts +0 -7
  411. package/services/AssetStorageService.js +24 -29
  412. package/services/AuthService.d.ts +27 -59
  413. package/services/AuthService.js +86 -167
  414. package/services/BaseServiceAbstract.d.ts +13 -11
  415. package/services/BaseServiceAbstract.js +19 -17
  416. package/services/CallerService.d.ts +17 -5
  417. package/services/CallerService.js +65 -22
  418. package/services/CallerServiceNode.js +8 -4
  419. package/services/CommandService.d.ts +17 -5
  420. package/services/CommandService.js +62 -19
  421. package/services/CommandServiceNode.js +8 -4
  422. package/services/ConfigGroupService.js +21 -17
  423. package/services/ControlService.d.ts +17 -5
  424. package/services/ControlService.js +65 -22
  425. package/services/ControlServiceNode.js +8 -4
  426. package/services/DashboardService.js +24 -20
  427. package/services/EventService.js +17 -13
  428. package/services/FileAccessorService.d.ts +18 -4
  429. package/services/FileAccessorService.js +62 -14
  430. package/services/FileAccessorServiceNode.js +8 -4
  431. package/services/FunctionService.js +21 -17
  432. package/services/IntegrationService.js +19 -14
  433. package/services/MapService.d.ts +23 -36
  434. package/services/MapService.js +40 -70
  435. package/services/PlatformTimeService.js +12 -8
  436. package/services/ProfileService.js +40 -36
  437. package/services/ProjectService.js +27 -23
  438. package/services/RobotService.d.ts +6 -2
  439. package/services/RobotService.js +55 -48
  440. package/services/ScheduleService.js +14 -10
  441. package/services/SearchService.d.ts +17 -4
  442. package/services/SearchService.js +59 -24
  443. package/services/SearchServiceNode.js +8 -4
  444. package/services/SpotProvisioningService.d.ts +1 -1
  445. package/services/SpotProvisioningService.js +16 -16
  446. package/services/SpotProvisioningServiceNode.d.ts +1 -1
  447. package/services/SpotProvisioningServiceNode.js +16 -16
  448. package/services/StreamService.js +30 -26
  449. package/services/TelemetryService.d.ts +17 -14
  450. package/services/TelemetryService.js +93 -91
  451. package/services/TelemetryServiceNode.js +8 -4
  452. package/services/TimeSyncerService.js +13 -9
  453. package/services/UserService.js +41 -37
  454. package/services/WebRTCSignallingService.d.ts +4 -4
  455. package/services/WebRTCSignallingService.js +27 -24
  456. package/services/WorkflowService.js +20 -16
  457. package/services/index.js +38 -26
  458. package/store/RocosStore.js +15 -9
  459. package/utils/axisangle.d.ts +18 -0
  460. package/utils/axisangle.js +48 -0
  461. package/utils/eulerangles.d.ts +22 -0
  462. package/utils/eulerangles.js +133 -0
  463. package/utils/helperfunctions.d.ts +5 -0
  464. package/utils/helperfunctions.js +50 -0
  465. package/utils/localtransform.d.ts +17 -0
  466. package/utils/localtransform.js +50 -0
  467. package/utils/localtransformtree.d.ts +17 -0
  468. package/utils/localtransformtree.js +88 -0
  469. package/utils/misc.d.ts +17 -0
  470. package/utils/misc.js +23 -0
  471. package/utils/positionvector.d.ts +13 -0
  472. package/utils/positionvector.js +79 -0
  473. package/utils/quaternion.d.ts +20 -0
  474. package/utils/quaternion.js +62 -0
  475. package/utils/rotationmatrix.d.ts +23 -0
  476. package/utils/rotationmatrix.js +262 -0
  477. package/utils/transformationmatrix.d.ts +12 -0
  478. package/utils/transformationmatrix.js +123 -0
  479. package/utils/vector3.d.ts +11 -0
  480. package/utils/vector3.js +61 -0
  481. package/constants/auth.d.ts +0 -2
  482. package/constants/auth.js +0 -2
  483. package/grpc/conker_pb.client.d.ts +0 -78
  484. package/grpc/conker_pb.client.js +0 -55
  485. package/grpc/conker_pb.d.ts +0 -141
  486. package/grpc/conker_pb.grpc-client.d.ts +0 -81
  487. package/grpc/conker_pb.grpc-client.js +0 -58
  488. package/grpc/conker_pb.js +0 -104
  489. package/grpc/filagree_pb.client.d.ts +0 -68
  490. package/grpc/filagree_pb.client.js +0 -48
  491. package/grpc/filagree_pb.d.ts +0 -404
  492. package/grpc/filagree_pb.grpc-client.d.ts +0 -69
  493. package/grpc/filagree_pb.grpc-client.js +0 -51
  494. package/grpc/filagree_pb.js +0 -329
  495. package/grpc/google/protobuf/descriptor_pb.d.ts +0 -1798
  496. package/grpc/google/protobuf/descriptor_pb.js +0 -2378
  497. package/grpc/google/protobuf/empty_pb.d.ts +0 -23
  498. package/grpc/google/protobuf/empty_pb.js +0 -47
  499. package/grpc/pigeon_pb.client.d.ts +0 -96
  500. package/grpc/pigeon_pb.client.js +0 -72
  501. package/grpc/pigeon_pb.d.ts +0 -207
  502. package/grpc/pigeon_pb.grpc-client.d.ts +0 -98
  503. package/grpc/pigeon_pb.grpc-client.js +0 -68
  504. package/grpc/pigeon_pb.js +0 -144
  505. package/grpc/rambo.uri.v1_pb.d.ts +0 -73
  506. package/grpc/rambo.uri.v1_pb.js +0 -48
  507. package/grpc/rambo.v1_pb.client.d.ts +0 -66
  508. package/grpc/rambo.v1_pb.client.js +0 -48
  509. package/grpc/rambo.v1_pb.d.ts +0 -392
  510. package/grpc/rambo.v1_pb.grpc-client.d.ts +0 -56
  511. package/grpc/rambo.v1_pb.grpc-client.js +0 -44
  512. package/grpc/rambo.v1_pb.js +0 -272
  513. package/grpc/serviette.uri.v1_pb.d.ts +0 -89
  514. package/grpc/serviette.uri.v1_pb.js +0 -62
  515. package/grpc/serviette.v1_pb.client.d.ts +0 -225
  516. package/grpc/serviette.v1_pb.client.js +0 -174
  517. package/grpc/serviette.v1_pb.d.ts +0 -827
  518. package/grpc/serviette.v1_pb.grpc-client.d.ts +0 -215
  519. package/grpc/serviette.v1_pb.grpc-client.js +0 -162
  520. package/grpc/serviette.v1_pb.js +0 -553
  521. package/grpc/slowlane_pb.client.d.ts +0 -61
  522. package/grpc/slowlane_pb.client.js +0 -41
  523. package/grpc/slowlane_pb.d.ts +0 -303
  524. package/grpc/slowlane_pb.grpc-client.d.ts +0 -64
  525. package/grpc/slowlane_pb.grpc-client.js +0 -44
  526. package/grpc/slowlane_pb.js +0 -185
  527. package/grpc/teletubby_pb.client.d.ts +0 -145
  528. package/grpc/teletubby_pb.client.js +0 -104
  529. package/grpc/teletubby_pb.d.ts +0 -634
  530. package/grpc/teletubby_pb.grpc-client.d.ts +0 -152
  531. package/grpc/teletubby_pb.grpc-client.js +0 -100
  532. package/grpc/teletubby_pb.js +0 -1264
  533. package/helpers/cleanObject.spec.d.ts +0 -1
  534. package/helpers/cleanObject.spec.js +0 -53
  535. package/helpers/flattenObject.spec.d.ts +0 -1
  536. package/helpers/flattenObject.spec.js +0 -29
  537. package/helpers/flattenOneOf.d.ts +0 -67
  538. package/helpers/flattenOneOf.js +0 -29
  539. package/helpers/flattenOneOf.spec.d.ts +0 -1
  540. package/helpers/flattenOneOf.spec.js +0 -157
  541. package/helpers/formatServiceUrl.spec.d.ts +0 -1
  542. package/helpers/formatServiceUrl.spec.js +0 -16
  543. package/helpers/standardDeviation.spec.d.ts +0 -1
  544. package/helpers/standardDeviation.spec.js +0 -11
  545. package/models/CallsignStatus.d.ts +0 -6
  546. package/models/CallsignStatus.js +0 -7
  547. package/models/IRobotSettings.d.ts +0 -28
  548. package/models/IRobotSettings.js +0 -1
  549. package/models/Token.spec.d.ts +0 -1
  550. package/models/Token.spec.js +0 -108
  551. package/models/caller/IRocosCallerMessageResponseReturn.d.ts +0 -8
  552. package/models/caller/IRocosCallerMessageResponseReturn.js +0 -1
  553. package/models/caller/RocosResponseLevel.d.ts +0 -6
  554. package/models/caller/RocosResponseLevel.js +0 -7
  555. package/models/caller/index.d.ts +0 -10
  556. package/models/caller/index.js +0 -10
  557. package/models/command/index.d.ts +0 -4
  558. package/models/command/index.js +0 -4
  559. package/models/message/index.d.ts +0 -17
  560. package/models/message/index.js +0 -17
  561. package/services/AuthService.spec.d.ts +0 -1
  562. package/services/AuthService.spec.js +0 -163
  563. package/services/BaseStreamService.d.ts +0 -18
  564. package/services/BaseStreamService.js +0 -47
  565. package/services/PlatformTimeService.spec.d.ts +0 -1
  566. package/services/PlatformTimeService.spec.js +0 -180
  567. package/services/TelemetryService.spec.d.ts +0 -1
  568. package/services/TelemetryService.spec.js +0 -37
@@ -1,24 +1,23 @@
1
- import { IBaseService, IRocosSDKConfig, RocosError, Token } from '../models';
1
+ import { RocosError } from '../models/RocosError';
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';
3
7
  export declare class AuthService extends BaseServiceAbstract implements IBaseService {
4
8
  protected config: IRocosSDKConfig;
5
9
  private token?;
6
- private tokenRefreshTimeoutId?;
7
10
  constructor(config: IRocosSDKConfig);
8
11
  getStatus(): boolean;
9
- teardown(): void;
10
12
  protected getError(e: RocosError): RocosError;
11
13
  /**
12
14
  * Set the Auth token
13
15
  * @param value - Token value
16
+ * @param expiresIn - Token expiry time
14
17
  */
15
- setToken(value: string | Token): void;
18
+ setToken(value: string, expiresIn: number): void;
16
19
  /**
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
20
+ * Cleat auto token
22
21
  */
23
22
  clearToken(): void;
24
23
  /**
@@ -26,68 +25,37 @@ export declare class AuthService extends BaseServiceAbstract implements IBaseSer
26
25
  */
27
26
  getAppToken(): Promise<Token>;
28
27
  /**
29
- * Get new auth token for a user
30
- * @desc This only works for user auth tokens, not appId auth tokens
28
+ * Get the authentication token for logged in username and password
31
29
  */
32
- getNewUserToken(): Promise<Token>;
30
+ getUserToken(): Promise<Token>;
33
31
  /**
34
- * Get new auth token for a user.
35
- *
36
- * Uses the OTP flow to exchange an external token for a user token.
37
- *
32
+ * Get new auth token for a user
38
33
  * @desc This only works for user auth tokens, not appId auth tokens
39
34
  */
40
- private getNewUserTokenFromExternalToken;
35
+ getNewUserToken(): Promise<Token>;
41
36
  /**
42
37
  * 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.
45
38
  */
46
39
  getToken(): Promise<Token>;
47
40
  /**
48
- * Refresh the authentication token
49
- *
50
- * This only works for user auth tokens, not appId auth tokens.
41
+ * Login with email and password.
51
42
  *
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.
56
- */
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
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)
66
47
  */
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;
48
+ login(email: string, password: string, invitationCode?: string): Promise<any>;
78
49
  /**
79
- * Stop the token refresh checker
80
- * @see startTokenRefreshChecker
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}
81
53
  */
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
54
+ signup(params: ISignupParams): Promise<any>;
55
+ /**
56
+ * Reset users password.
57
+ * @deprecated SDK can only be configured with appId and appKey or an existing token
58
+ * @param model - Reset payload
88
59
  */
89
- isTokenRefreshCheckerRunning(): boolean;
90
- /** Checks if the token is valid for use with the API */
91
- isTokenValid(token: Token): boolean;
92
- private isTokenIssuedByApp;
60
+ resetPassword(model: any): Promise<any>;
93
61
  }
@@ -1,48 +1,39 @@
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 {
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 {
9
12
  constructor(config) {
10
13
  super(config);
11
14
  this.config = config;
12
15
  this.config = config;
13
- this.logger = RocosLogger.getInstance(`AuthService(${this.config.url})`);
14
- if (this.config.token) {
15
- this.setToken(this.config.token);
16
- }
16
+ this.logger = RocosLogger_1.RocosLogger.getInstance(`AuthService(${this.config.url})`);
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
- }
27
21
  getError(e) {
28
- return new RocosError(e, errorCodes.AUTH_ERROR, e?.statusCode);
22
+ return new RocosError_1.RocosError(e, RocosError_1.errorCodes.AUTH_ERROR, e === null || e === void 0 ? void 0 : e.statusCode);
29
23
  }
24
+ /**
25
+ * Set the Auth token
26
+ * @param value - Token value
27
+ * @param expiresIn - Token expiry time
28
+ */
30
29
  setToken(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
- }
30
+ this.token = new Token_1.Token({ value, expiresIn });
40
31
  this.config.token = this.token.value;
41
32
  // output a message for token change
42
- RocosStore.getChangeSubject().next({ type: 'token', url: this.config.url, data: this.token.value });
33
+ RocosStore_1.RocosStore.getChangeSubject().next({ type: 'token', url: this.config.url, data: this.token.value });
43
34
  }
44
35
  /**
45
- * Clear token
36
+ * Cleat auto token
46
37
  */
47
38
  clearToken() {
48
39
  this.token = undefined;
@@ -53,183 +44,111 @@ export class AuthService extends BaseServiceAbstract {
53
44
  */
54
45
  async getAppToken() {
55
46
  if (!('appId' in this.config) || !this.config.appId || !('appKey' in this.config) || !this.config.appKey) {
56
- throw new RocosError('Can not get app token, missing appId and appKey', errorCodes.AUTH_ERROR);
47
+ throw new RocosError_1.RocosError('Can not get app token, missing appId and appKey', RocosError_1.errorCodes.AUTH_ERROR);
57
48
  }
58
- const res = await this.callPost(formatServiceUrl(API_APPLICATION_AUTH_URL, { url: this.config.url }, this.config.insecure), {
49
+ const res = await this.callPost(formatServiceUrl_1.formatServiceUrl(api_1.API_APPLICATION_AUTH_URL, { url: this.config.url }, this.config.insecure), {
59
50
  applicationId: this.config.appId,
60
51
  secret: this.config.appKey,
61
52
  }, 'Failed to get users auth token.', { public: true });
62
- return new Token(res.token);
53
+ return new Token_1.Token({ value: res.token, expiresIn: res.expiresIn });
63
54
  }
64
55
  /**
65
- * Get new auth token for a user
66
- * @desc This only works for user auth tokens, not appId auth tokens
56
+ * Get the authentication token for logged in username and password
67
57
  */
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);
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);
71
61
  }
72
- const token = new Token(this.config.token, this.config.refreshToken);
73
- if (token?.isExpired()) {
74
- throw new RocosError('Token expired', errorCodes.AUTH_ERROR);
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 });
75
66
  }
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();
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);
79
72
  }
80
- return this.refreshToken(token);
81
73
  }
82
74
  /**
83
- * Get new auth token for a user.
84
- *
85
- * Uses the OTP flow to exchange an external token for a user token.
86
- *
75
+ * Get new auth token for a user
87
76
  * @desc This only works for user auth tokens, not appId auth tokens
88
77
  */
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);
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);
92
81
  }
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);
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 });
97
84
  }
98
85
  /**
99
86
  * 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.
102
87
  */
103
88
  async getToken() {
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
- }
89
+ if (this.token && !this.token.isExpired()) {
111
90
  return this.token;
112
91
  }
113
- let token;
114
92
  try {
115
93
  if ('appId' in this.config && 'appKey' in this.config) {
116
- token = await this.getAppToken();
94
+ this.token = await this.getAppToken();
95
+ }
96
+ else if ('email' in this.config && 'password' in this.config) {
97
+ this.token = await this.getUserToken();
117
98
  }
118
99
  else if ('token' in this.config) {
119
- token = await this.getNewUserToken();
100
+ this.token = await this.getNewUserToken();
101
+ }
102
+ else {
103
+ throw new Error('Config invalid');
120
104
  }
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;
121
109
  }
122
110
  catch (e) {
123
111
  const message = 'Failed to get auth token.';
124
112
  this.logger.error(message, e);
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);
113
+ e.message = message;
114
+ throw new RocosError_1.RocosError(e, RocosError_1.errorCodes.AUTH_ERROR);
137
115
  }
138
- this.setToken(token);
139
- return token;
140
116
  }
141
117
  /**
142
- * Refresh the authentication token
143
- *
144
- * This only works for user auth tokens, not appId auth tokens.
118
+ * Login with email and password.
145
119
  *
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.
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)
150
124
  */
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);
158
- }
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
167
- */
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();
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 });
210
132
  }
211
133
  /**
212
- * Stop the token refresh checker
213
- * @see startTokenRefreshChecker
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}
214
137
  */
215
- stopTokenRefreshChecker() {
216
- clearTimeout(this.tokenRefreshTimeoutId);
217
- this.tokenRefreshTimeoutId = undefined;
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 });
218
141
  }
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
142
+ /**
143
+ * Reset users password.
144
+ * @deprecated SDK can only be configured with appId and appKey or an existing token
145
+ * @param model - Reset payload
224
146
  */
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;
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 });
234
152
  }
235
153
  }
154
+ exports.AuthService = AuthService;
@@ -1,7 +1,9 @@
1
- import { IRocosSDKConfig, RocosError } from '../models';
1
+ import { IRocosSDKConfig } from '../models/IRocosSDKConfig';
2
2
  import { Logger } from 'loglevel';
3
- type QueryParams = Record<string, string | number | boolean> | URLSearchParams;
4
- type ResponseType = 'json' | 'blob' | 'stream' | 'text' | 'raw';
3
+ import { RocosError } from '../models/RocosError';
4
+ declare type QueryParams = Record<string, string | number | boolean> | URLSearchParams;
5
+ declare type ResponseType = 'json' | 'blob' | 'stream' | 'text' | 'raw';
6
+ declare type Payload = unknown;
5
7
  interface RequestConfig {
6
8
  /**
7
9
  * Additional headers to send with the request.
@@ -19,18 +21,18 @@ interface RequestConfig {
19
21
  export declare abstract class BaseServiceAbstract {
20
22
  protected config: IRocosSDKConfig;
21
23
  protected logger: Logger;
22
- protected constructor(config: IRocosSDKConfig);
24
+ constructor(config: IRocosSDKConfig);
23
25
  protected abstract getError(e: Error): RocosError;
24
- protected callPost<Response = unknown, Payload = unknown>(url: string, payload: Payload, errorMessage: string, config?: RequestConfig): Promise<Response>;
25
- protected callPut<Response = unknown, Payload = unknown>(url: string, payload: Payload, errorMessage: string, config?: RequestConfig): Promise<Response>;
26
- protected callDelete<Response = unknown, Payload = unknown>(url: string, errorMessage: string, payload?: Payload): Promise<Response>;
27
- protected callGet<Response = unknown>(url: string, errorMessage: string, params?: QueryParams, config?: RequestConfig): Promise<Response>;
28
- protected call<Response = unknown, Payload = unknown>(url: string, method: 'GET' | 'POST' | 'PUT' | 'DELETE', options: {
26
+ protected callPost<T = unknown>(url: string, payload: Payload, errorMessage: string, config?: RequestConfig): Promise<T>;
27
+ protected callPut<T = unknown>(url: string, payload: Payload, errorMessage: string, config?: RequestConfig): Promise<T>;
28
+ protected callDelete<T = unknown>(url: string, errorMessage: string, payload?: unknown): Promise<T>;
29
+ protected callGet<T = unknown>(url: string, errorMessage: string, params?: QueryParams, config?: RequestConfig): Promise<T>;
30
+ protected call<T = unknown>(url: string, method: 'GET' | 'POST' | 'PUT' | 'DELETE', options: {
29
31
  errorMessage: string;
30
32
  config?: RequestConfig;
31
- payload?: Payload;
33
+ payload?: unknown;
32
34
  params?: QueryParams;
33
- }): Promise<Response>;
35
+ }): Promise<T>;
34
36
  private fetchOrThrow;
35
37
  }
36
38
  export {};
@@ -1,5 +1,8 @@
1
- import { RocosError } from '../models';
2
- import { RocosStore } from '../store/RocosStore';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseServiceAbstract = void 0;
4
+ const RocosError_1 = require("../models/RocosError");
5
+ const RocosStore_1 = require("../store/RocosStore");
3
6
  class HttpError extends Error {
4
7
  constructor(response) {
5
8
  super(response.statusText);
@@ -7,7 +10,7 @@ class HttpError extends Error {
7
10
  this.name = 'HttpError';
8
11
  }
9
12
  }
10
- export class BaseServiceAbstract {
13
+ class BaseServiceAbstract {
11
14
  constructor(config) {
12
15
  this.config = config;
13
16
  }
@@ -24,25 +27,23 @@ export class BaseServiceAbstract {
24
27
  return this.call(url, 'GET', { errorMessage, params, config });
25
28
  }
26
29
  async call(url, method, options) {
30
+ var _a;
27
31
  const { errorMessage, config, payload, params } = options;
28
32
  try {
29
33
  // change all params to string
30
- const stringParams = Object.entries(params ?? {}).reduce((acc, [key, value]) => {
34
+ const stringParams = Object.entries(params || {}).reduce((acc, [key, value]) => {
31
35
  acc[key] = value.toString();
32
36
  return acc;
33
37
  }, {});
34
38
  const formattedUrl = params ? `${url}?${new URLSearchParams(stringParams)}` : url;
35
39
  const defaultHeaders = {};
36
- if (!config?.public) {
37
- const token = await RocosStore.getSDKInstance(this.config).getAuthService().getToken();
38
- defaultHeaders.Authorization = token.bearer;
40
+ if (!(config === null || config === void 0 ? void 0 : config.public)) {
41
+ const token = await RocosStore_1.RocosStore.getSDKInstance(this.config).getAuthService().getToken();
42
+ defaultHeaders.Authorization = `Bearer ${token.value}`;
39
43
  }
40
44
  const requestConfig = {
41
45
  method,
42
- headers: {
43
- ...defaultHeaders,
44
- ...config?.headers,
45
- },
46
+ headers: Object.assign(Object.assign({}, defaultHeaders), config === null || config === void 0 ? void 0 : config.headers),
46
47
  };
47
48
  // must check if FormData exists for node support
48
49
  if (typeof FormData !== 'undefined' && payload instanceof FormData) {
@@ -50,19 +51,19 @@ export class BaseServiceAbstract {
50
51
  }
51
52
  else if (payload) {
52
53
  requestConfig.body = JSON.stringify(payload);
53
- requestConfig.headers = { ...requestConfig.headers, 'Content-Type': 'application/json' };
54
+ requestConfig.headers = Object.assign(Object.assign({}, requestConfig.headers), { 'Content-Type': 'application/json' });
54
55
  }
55
- return this.fetchOrThrow(formattedUrl, requestConfig, config?.responseType);
56
+ return this.fetchOrThrow(formattedUrl, requestConfig, config === null || config === void 0 ? void 0 : config.responseType);
56
57
  }
57
58
  catch (e) {
58
59
  const message = errorMessage;
59
60
  this.logger.error(message, e);
60
- let httpError = new RocosError(message);
61
+ let httpError = new RocosError_1.RocosError(message);
61
62
  if (e instanceof HttpError) {
62
63
  httpError = this.getError(e);
63
- httpError.statusCode = e?.response?.status;
64
+ httpError.statusCode = (_a = e === null || e === void 0 ? void 0 : e.response) === null || _a === void 0 ? void 0 : _a.status;
64
65
  }
65
- RocosStore.getChangeSubject().next({ type: 'http-error', url: this.config.url, data: httpError });
66
+ RocosStore_1.RocosStore.getChangeSubject().next({ type: 'http-error', url: this.config.url, data: httpError });
66
67
  throw httpError;
67
68
  }
68
69
  }
@@ -86,7 +87,7 @@ export class BaseServiceAbstract {
86
87
  case 'json':
87
88
  default: {
88
89
  const textRes = await res.text();
89
- if (!textRes?.trim())
90
+ if (!(textRes === null || textRes === void 0 ? void 0 : textRes.trim()))
90
91
  return undefined;
91
92
  try {
92
93
  return JSON.parse(textRes);
@@ -99,3 +100,4 @@ export class BaseServiceAbstract {
99
100
  }
100
101
  }
101
102
  }
103
+ exports.BaseServiceAbstract = BaseServiceAbstract;
@@ -1,10 +1,22 @@
1
- import { ICallerInvokeParams, ICallerParams, ICallerStream, IRocosCallerMessage, IRocosSDKConfig, IStreamConfig } from '../models';
2
- import { Observable } from 'rxjs';
3
- import { BaseStreamService } from './BaseStreamService';
4
- export declare class CallerService extends BaseStreamService<ICallerStream> {
1
+ import { ICallerInvokeParams, ICallerParams } from '../models/params/ICallerParams';
2
+ import { Observable, Subject } from 'rxjs';
3
+ import { IBaseService } from '../models/IBaseService';
4
+ import { ICallerStream } from '../models/stream/ICallerStream';
5
+ import { IRocosCallerMessage } from '../models/message/IRocosCallerMessage';
6
+ import { IRocosSDKConfig } from '../models/IRocosSDKConfig';
7
+ import { IStreamConfig } from '../models/IStreamConfig';
8
+ import { ISubscriberStatus } from '../models/ISubscriberStatus';
9
+ import { SubscriberStatusEnum } from '../models/SubscriberStatusEnum';
10
+ export declare class CallerService implements IBaseService, ISubscriberStatus {
11
+ private config;
12
+ private logger;
13
+ private status;
14
+ status$: Subject<SubscriberStatusEnum>;
5
15
  constructor(config: IRocosSDKConfig);
16
+ getStatus(): boolean;
6
17
  invokeRequest(params: ICallerInvokeParams): Observable<IRocosCallerMessage>;
7
18
  cancelRequest(params: ICallerParams): Observable<IRocosCallerMessage>;
8
- protected createStream(): Promise<ICallerStream>;
19
+ private createStream;
20
+ private initStream;
9
21
  protected getStream(config: IStreamConfig): ICallerStream;
10
22
  }