@dronedeploy/rocos-js-sdk 3.0.1-alpha.9 → 3.0.2

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 (373) hide show
  1. package/README.md +59 -29
  2. package/cjs/IRocosSDK.d.ts +4 -3
  3. package/cjs/RocosSDK.d.ts +19 -7
  4. package/cjs/RocosSDK.js +31 -10
  5. package/cjs/api/streams/caller/CallerStream.js +5 -2
  6. package/cjs/api/streams/caller/CallerStreamNode.js +2 -1
  7. package/cjs/api/streams/command/CommandStream.js +5 -2
  8. package/cjs/api/streams/command/CommandStreamNode.js +2 -1
  9. package/cjs/api/streams/control/ControlStream.js +5 -2
  10. package/cjs/api/streams/control/ControlStreamAbstract.d.ts +1 -1
  11. package/cjs/api/streams/control/ControlStreamNode.js +2 -1
  12. package/cjs/api/streams/fileAccessor/FileAccessorStream.js +4 -1
  13. package/cjs/api/streams/fileAccessor/FileAccessorStreamNode.js +3 -1
  14. package/cjs/api/streams/search/SearchStream.js +5 -2
  15. package/cjs/api/streams/search/SearchStreamNode.js +2 -1
  16. package/cjs/api/streams/telemetry/TelemetryStream.js +4 -1
  17. package/cjs/api/streams/telemetry/TelemetryStreamAbstract.d.ts +1 -1
  18. package/cjs/api/streams/telemetry/TelemetryStreamNode.js +2 -1
  19. package/cjs/api/streams/webRTCSignalling/WebRTCSignallingStream.js +5 -2
  20. package/cjs/constants/api.d.ts +31 -15
  21. package/cjs/constants/api.js +35 -18
  22. package/cjs/helpers/cleanObject.js +4 -1
  23. package/cjs/helpers/getUniqueConfigKey.d.ts +6 -2
  24. package/cjs/helpers/getUniqueConfigKey.js +7 -2
  25. package/cjs/helpers/index.d.ts +1 -0
  26. package/cjs/helpers/index.js +1 -0
  27. package/cjs/helpers/kscript/Context.d.ts +34 -0
  28. package/cjs/helpers/kscript/Context.js +52 -0
  29. package/cjs/helpers/kscript/index.d.ts +1 -0
  30. package/cjs/helpers/kscript/index.js +27 -0
  31. package/cjs/helpers/kscript/kscript.d.ts +6 -0
  32. package/cjs/helpers/kscript/kscript.js +115 -0
  33. package/cjs/helpers/kscript/nodes/Identifier.d.ts +12 -0
  34. package/cjs/helpers/kscript/nodes/Identifier.js +20 -0
  35. package/cjs/helpers/kscript/nodes/Literal.d.ts +11 -0
  36. package/cjs/helpers/kscript/nodes/Literal.js +22 -0
  37. package/cjs/helpers/kscript/nodes/Node.d.ts +9 -0
  38. package/cjs/helpers/kscript/nodes/Node.js +15 -0
  39. package/cjs/helpers/kscript/nodes/Program.d.ts +11 -0
  40. package/cjs/helpers/kscript/nodes/Program.js +24 -0
  41. package/cjs/helpers/kscript/nodes/TemplateLiteral.d.ts +23 -0
  42. package/cjs/helpers/kscript/nodes/TemplateLiteral.js +35 -0
  43. package/cjs/helpers/kscript/nodes/expressions/ArrayExpression.d.ts +7 -0
  44. package/cjs/helpers/kscript/nodes/expressions/ArrayExpression.js +31 -0
  45. package/cjs/helpers/kscript/nodes/expressions/ArrowFunctionExpression.d.ts +14 -0
  46. package/cjs/helpers/kscript/nodes/expressions/ArrowFunctionExpression.js +40 -0
  47. package/cjs/helpers/kscript/nodes/expressions/BinaryExpression.d.ts +16 -0
  48. package/cjs/helpers/kscript/nodes/expressions/BinaryExpression.js +104 -0
  49. package/cjs/helpers/kscript/nodes/expressions/CallExpression.d.ts +8 -0
  50. package/cjs/helpers/kscript/nodes/expressions/CallExpression.js +38 -0
  51. package/cjs/helpers/kscript/nodes/expressions/ChainExpression.d.ts +16 -0
  52. package/cjs/helpers/kscript/nodes/expressions/ChainExpression.js +25 -0
  53. package/cjs/helpers/kscript/nodes/expressions/ConditionalExpression.d.ts +14 -0
  54. package/cjs/helpers/kscript/nodes/expressions/ConditionalExpression.js +30 -0
  55. package/cjs/helpers/kscript/nodes/expressions/ExpressionStatement.d.ts +7 -0
  56. package/cjs/helpers/kscript/nodes/expressions/ExpressionStatement.js +18 -0
  57. package/cjs/helpers/kscript/nodes/expressions/LogicalExpression.d.ts +10 -0
  58. package/cjs/helpers/kscript/nodes/expressions/LogicalExpression.js +47 -0
  59. package/cjs/helpers/kscript/nodes/expressions/MemberExpression.d.ts +44 -0
  60. package/cjs/helpers/kscript/nodes/expressions/MemberExpression.js +98 -0
  61. package/cjs/helpers/kscript/nodes/expressions/ObjectExpression.d.ts +11 -0
  62. package/cjs/helpers/kscript/nodes/expressions/ObjectExpression.js +59 -0
  63. package/cjs/helpers/kscript/nodes/expressions/UnaryExpression.d.ts +12 -0
  64. package/cjs/helpers/kscript/nodes/expressions/UnaryExpression.js +44 -0
  65. package/cjs/helpers/kscript/nodes/expressions/index.d.ts +11 -0
  66. package/cjs/helpers/kscript/nodes/expressions/index.js +28 -0
  67. package/cjs/helpers/kscript/nodes/index.d.ts +4 -0
  68. package/cjs/helpers/kscript/nodes/index.js +10 -0
  69. package/cjs/helpers/kscript/nodes/nodeTypes.d.ts +33 -0
  70. package/cjs/helpers/kscript/nodes/nodeTypes.js +29 -0
  71. package/cjs/helpers/kscript/utils.d.ts +4 -0
  72. package/cjs/helpers/kscript/utils.js +15 -0
  73. package/cjs/helpers/websandbox/connection.d.ts +2 -1
  74. package/cjs/helpers/websandbox/connection.js +6 -5
  75. package/cjs/helpers/websandbox/frame/frame.js +4 -1
  76. package/cjs/helpers/websandbox/frame/frame.source.js +1 -1
  77. package/cjs/helpers/websandbox/frame/worker/manager.d.ts +8 -4
  78. package/cjs/helpers/websandbox/frame/worker/manager.js +32 -14
  79. package/cjs/helpers/websandbox/frame/worker/worker.source.js +1 -1
  80. package/cjs/helpers/websandbox/sandbox.d.ts +1 -1
  81. package/cjs/helpers/websandbox/sandbox.js +7 -7
  82. package/cjs/models/IConnectedCallsign.d.ts +10 -0
  83. package/cjs/models/IConnectedCallsign.js +8 -0
  84. package/cjs/models/RocosError.d.ts +3 -0
  85. package/cjs/models/RocosError.js +3 -0
  86. package/cjs/models/ServiceEnum.d.ts +20 -17
  87. package/cjs/models/ServiceEnum.js +20 -17
  88. package/cjs/models/TelemetryStatus.d.ts +12 -0
  89. package/cjs/models/TelemetryStatus.js +17 -0
  90. package/cjs/models/Token.d.ts +2 -2
  91. package/cjs/models/Token.js +5 -5
  92. package/cjs/models/asset-storage/{AssetModelItem.d.ts → AssetItem.d.ts} +2 -0
  93. package/cjs/models/device-credentials/DeviceCredentials.d.ts +61 -0
  94. package/cjs/models/device-credentials/DeviceCredentials.js +2 -0
  95. package/cjs/models/graph/Position.d.ts +6 -0
  96. package/cjs/models/graph/Position.js +2 -0
  97. package/cjs/models/graph/Quaternion.d.ts +6 -0
  98. package/cjs/models/graph/Quaternion.js +2 -0
  99. package/cjs/models/graph/Vector3.d.ts +5 -0
  100. package/cjs/models/graph/Vector3.js +2 -0
  101. package/cjs/models/graph/index.d.ts +3 -0
  102. package/cjs/models/graph/index.js +19 -0
  103. package/cjs/models/index.d.ts +9 -2
  104. package/cjs/models/index.js +9 -2
  105. package/cjs/models/integrations/Location.d.ts +24 -0
  106. package/cjs/models/integrations/Location.js +2 -0
  107. package/cjs/models/integrations/PaginatedResults.d.ts +4 -0
  108. package/cjs/models/integrations/PaginatedResults.js +2 -0
  109. package/cjs/models/maps/Panorama.d.ts +12 -21
  110. package/cjs/models/projects/ExternalProject.d.ts +10 -0
  111. package/cjs/models/projects/ExternalProject.js +2 -0
  112. package/cjs/models/projects/NewProjectRequest.d.ts +8 -0
  113. package/cjs/models/projects/NewProjectRequest.js +2 -0
  114. package/cjs/models/target/Target.d.ts +30 -0
  115. package/cjs/models/target/Target.js +15 -0
  116. package/cjs/node/RocosSDKNode.d.ts +1 -5
  117. package/cjs/node/RocosSDKNode.js +9 -9
  118. package/cjs/services/AssetStorageService.d.ts +9 -1
  119. package/cjs/services/AssetStorageService.js +12 -1
  120. package/cjs/services/AuthService.d.ts +12 -1
  121. package/cjs/services/AuthService.js +25 -1
  122. package/cjs/services/DeviceCredentialsService.d.ts +15 -0
  123. package/cjs/services/DeviceCredentialsService.js +56 -0
  124. package/cjs/services/EnvironmentService.d.ts +34 -0
  125. package/cjs/services/EnvironmentService.js +56 -0
  126. package/cjs/services/EvaluatorService.js +1 -1
  127. package/cjs/services/IntegrationService.d.ts +7 -1
  128. package/cjs/services/IntegrationService.js +8 -0
  129. package/cjs/services/MapService.d.ts +18 -8
  130. package/cjs/services/MapService.js +37 -19
  131. package/cjs/services/ProfileService.d.ts +24 -0
  132. package/cjs/services/ProfileService.js +34 -0
  133. package/cjs/services/ProjectService.d.ts +7 -2
  134. package/cjs/services/ProjectService.js +7 -3
  135. package/cjs/services/RTPWebRTCService.d.ts +6 -1
  136. package/cjs/services/RTPWebRTCService.js +10 -2
  137. package/cjs/services/RobotService.d.ts +3 -1
  138. package/cjs/services/RobotService.js +6 -0
  139. package/cjs/services/SpotProvisioningService.d.ts +1 -1
  140. package/cjs/services/SpotProvisioningServiceNode.d.ts +1 -1
  141. package/cjs/services/TargetService.d.ts +17 -0
  142. package/cjs/services/TargetService.js +66 -0
  143. package/cjs/services/TelemetryService.d.ts +10 -1
  144. package/cjs/services/TelemetryService.js +27 -5
  145. package/cjs/services/WorkflowService.d.ts +18 -8
  146. package/cjs/services/WorkflowService.js +37 -11
  147. package/cjs/services/index.d.ts +11 -9
  148. package/cjs/services/index.js +11 -9
  149. package/cjs/store/RocosStore.d.ts +1 -2
  150. package/esm/IRocosSDK.d.ts +4 -3
  151. package/esm/RocosSDK.d.ts +19 -7
  152. package/esm/RocosSDK.js +32 -11
  153. package/esm/api/streams/caller/CallerStream.js +5 -2
  154. package/esm/api/streams/caller/CallerStreamNode.js +2 -1
  155. package/esm/api/streams/command/CommandStream.js +5 -2
  156. package/esm/api/streams/command/CommandStreamNode.js +2 -1
  157. package/esm/api/streams/control/ControlStream.js +5 -2
  158. package/esm/api/streams/control/ControlStreamAbstract.d.ts +1 -1
  159. package/esm/api/streams/control/ControlStreamNode.js +2 -1
  160. package/esm/api/streams/fileAccessor/FileAccessorStream.js +4 -1
  161. package/esm/api/streams/fileAccessor/FileAccessorStreamNode.js +3 -1
  162. package/esm/api/streams/search/SearchStream.js +5 -2
  163. package/esm/api/streams/search/SearchStreamNode.js +2 -1
  164. package/esm/api/streams/telemetry/TelemetryStream.js +4 -1
  165. package/esm/api/streams/telemetry/TelemetryStreamAbstract.d.ts +1 -1
  166. package/esm/api/streams/telemetry/TelemetryStreamNode.js +2 -1
  167. package/esm/api/streams/webRTCSignalling/WebRTCSignallingStream.js +5 -2
  168. package/esm/constants/api.d.ts +31 -15
  169. package/esm/constants/api.js +31 -15
  170. package/esm/helpers/cleanObject.js +4 -1
  171. package/esm/helpers/getUniqueConfigKey.d.ts +6 -2
  172. package/esm/helpers/getUniqueConfigKey.js +7 -2
  173. package/esm/helpers/index.d.ts +1 -0
  174. package/esm/helpers/index.js +1 -0
  175. package/esm/helpers/kscript/Context.d.ts +34 -0
  176. package/esm/helpers/kscript/Context.js +49 -0
  177. package/esm/helpers/kscript/index.d.ts +1 -0
  178. package/esm/helpers/kscript/index.js +1 -0
  179. package/esm/helpers/kscript/kscript.d.ts +6 -0
  180. package/esm/helpers/kscript/kscript.js +107 -0
  181. package/esm/helpers/kscript/nodes/Identifier.d.ts +12 -0
  182. package/esm/helpers/kscript/nodes/Identifier.js +14 -0
  183. package/esm/helpers/kscript/nodes/Literal.d.ts +11 -0
  184. package/esm/helpers/kscript/nodes/Literal.js +16 -0
  185. package/esm/helpers/kscript/nodes/Node.d.ts +9 -0
  186. package/esm/helpers/kscript/nodes/Node.js +12 -0
  187. package/esm/helpers/kscript/nodes/Program.d.ts +11 -0
  188. package/esm/helpers/kscript/nodes/Program.js +18 -0
  189. package/esm/helpers/kscript/nodes/TemplateLiteral.d.ts +23 -0
  190. package/esm/helpers/kscript/nodes/TemplateLiteral.js +29 -0
  191. package/esm/helpers/kscript/nodes/expressions/ArrayExpression.d.ts +7 -0
  192. package/esm/helpers/kscript/nodes/expressions/ArrayExpression.js +25 -0
  193. package/esm/helpers/kscript/nodes/expressions/ArrowFunctionExpression.d.ts +14 -0
  194. package/esm/helpers/kscript/nodes/expressions/ArrowFunctionExpression.js +34 -0
  195. package/esm/helpers/kscript/nodes/expressions/BinaryExpression.d.ts +16 -0
  196. package/esm/helpers/kscript/nodes/expressions/BinaryExpression.js +98 -0
  197. package/esm/helpers/kscript/nodes/expressions/CallExpression.d.ts +8 -0
  198. package/esm/helpers/kscript/nodes/expressions/CallExpression.js +32 -0
  199. package/esm/helpers/kscript/nodes/expressions/ChainExpression.d.ts +16 -0
  200. package/esm/helpers/kscript/nodes/expressions/ChainExpression.js +19 -0
  201. package/esm/helpers/kscript/nodes/expressions/ConditionalExpression.d.ts +14 -0
  202. package/esm/helpers/kscript/nodes/expressions/ConditionalExpression.js +24 -0
  203. package/esm/helpers/kscript/nodes/expressions/ExpressionStatement.d.ts +7 -0
  204. package/esm/helpers/kscript/nodes/expressions/ExpressionStatement.js +12 -0
  205. package/esm/helpers/kscript/nodes/expressions/LogicalExpression.d.ts +10 -0
  206. package/esm/helpers/kscript/nodes/expressions/LogicalExpression.js +41 -0
  207. package/esm/helpers/kscript/nodes/expressions/MemberExpression.d.ts +44 -0
  208. package/esm/helpers/kscript/nodes/expressions/MemberExpression.js +92 -0
  209. package/esm/helpers/kscript/nodes/expressions/ObjectExpression.d.ts +11 -0
  210. package/esm/helpers/kscript/nodes/expressions/ObjectExpression.js +53 -0
  211. package/esm/helpers/kscript/nodes/expressions/UnaryExpression.d.ts +12 -0
  212. package/esm/helpers/kscript/nodes/expressions/UnaryExpression.js +38 -0
  213. package/esm/helpers/kscript/nodes/expressions/index.d.ts +11 -0
  214. package/esm/helpers/kscript/nodes/expressions/index.js +11 -0
  215. package/esm/helpers/kscript/nodes/index.d.ts +4 -0
  216. package/esm/helpers/kscript/nodes/index.js +3 -0
  217. package/esm/helpers/kscript/nodes/nodeTypes.d.ts +33 -0
  218. package/esm/helpers/kscript/nodes/nodeTypes.js +24 -0
  219. package/esm/helpers/kscript/utils.d.ts +4 -0
  220. package/esm/helpers/kscript/utils.js +11 -0
  221. package/esm/helpers/websandbox/connection.d.ts +2 -1
  222. package/esm/helpers/websandbox/connection.js +6 -5
  223. package/esm/helpers/websandbox/frame/frame.js +4 -1
  224. package/esm/helpers/websandbox/frame/frame.source.js +1 -1
  225. package/esm/helpers/websandbox/frame/worker/manager.d.ts +8 -4
  226. package/esm/helpers/websandbox/frame/worker/manager.js +32 -14
  227. package/esm/helpers/websandbox/frame/worker/worker.source.js +1 -1
  228. package/esm/helpers/websandbox/sandbox.d.ts +1 -1
  229. package/esm/helpers/websandbox/sandbox.js +7 -7
  230. package/esm/models/IConnectedCallsign.d.ts +10 -0
  231. package/esm/models/IConnectedCallsign.js +5 -0
  232. package/esm/models/RocosError.d.ts +3 -0
  233. package/esm/models/RocosError.js +3 -0
  234. package/esm/models/ServiceEnum.d.ts +20 -17
  235. package/esm/models/ServiceEnum.js +20 -17
  236. package/esm/models/TelemetryStatus.d.ts +12 -0
  237. package/esm/models/TelemetryStatus.js +14 -0
  238. package/esm/models/Token.d.ts +2 -2
  239. package/esm/models/Token.js +5 -5
  240. package/esm/models/asset-storage/{AssetModelItem.d.ts → AssetItem.d.ts} +2 -0
  241. package/esm/models/device-credentials/DeviceCredentials.d.ts +61 -0
  242. package/esm/models/graph/Position.d.ts +6 -0
  243. package/esm/models/graph/Quaternion.d.ts +6 -0
  244. package/esm/models/graph/Vector3.d.ts +5 -0
  245. package/esm/models/graph/index.d.ts +3 -0
  246. package/esm/models/graph/index.js +3 -0
  247. package/esm/models/index.d.ts +9 -2
  248. package/esm/models/index.js +9 -2
  249. package/esm/models/integrations/Location.d.ts +24 -0
  250. package/esm/models/integrations/PaginatedResults.d.ts +4 -0
  251. package/esm/models/maps/Panorama.d.ts +12 -21
  252. package/esm/models/projects/ExternalProject.d.ts +10 -0
  253. package/esm/models/projects/NewProjectRequest.d.ts +8 -0
  254. package/esm/models/target/Target.d.ts +30 -0
  255. package/esm/models/target/Target.js +9 -0
  256. package/esm/node/RocosSDKNode.d.ts +1 -5
  257. package/esm/node/RocosSDKNode.js +10 -10
  258. package/esm/services/AssetStorageService.d.ts +9 -1
  259. package/esm/services/AssetStorageService.js +13 -2
  260. package/esm/services/AuthService.d.ts +12 -1
  261. package/esm/services/AuthService.js +25 -1
  262. package/esm/services/BaseServiceAbstract.js +1 -1
  263. package/esm/services/DeviceCredentialsService.d.ts +15 -0
  264. package/esm/services/DeviceCredentialsService.js +52 -0
  265. package/esm/services/EnvironmentService.d.ts +34 -0
  266. package/esm/services/EnvironmentService.js +52 -0
  267. package/esm/services/EvaluatorService.js +1 -1
  268. package/esm/services/IntegrationService.d.ts +7 -1
  269. package/esm/services/IntegrationService.js +10 -2
  270. package/esm/services/MapService.d.ts +18 -8
  271. package/esm/services/MapService.js +38 -20
  272. package/esm/services/ProfileService.d.ts +24 -0
  273. package/esm/services/ProfileService.js +35 -1
  274. package/esm/services/ProjectService.d.ts +7 -2
  275. package/esm/services/ProjectService.js +9 -5
  276. package/esm/services/RTPWebRTCService.d.ts +6 -1
  277. package/esm/services/RTPWebRTCService.js +10 -2
  278. package/esm/services/RobotService.d.ts +3 -1
  279. package/esm/services/RobotService.js +8 -2
  280. package/esm/services/SpotProvisioningService.d.ts +1 -1
  281. package/esm/services/SpotProvisioningServiceNode.d.ts +1 -1
  282. package/esm/services/TargetService.d.ts +17 -0
  283. package/esm/services/TargetService.js +62 -0
  284. package/esm/services/TelemetryService.d.ts +10 -1
  285. package/esm/services/TelemetryService.js +28 -6
  286. package/esm/services/WorkflowService.d.ts +18 -8
  287. package/esm/services/WorkflowService.js +38 -12
  288. package/esm/services/index.d.ts +11 -9
  289. package/esm/services/index.js +11 -9
  290. package/esm/store/RocosStore.d.ts +1 -2
  291. package/package.json +2 -2
  292. package/cjs/helpers/cleanObject.spec.js +0 -55
  293. package/cjs/helpers/flattenObject.spec.js +0 -31
  294. package/cjs/helpers/flattenOneOf.spec.js +0 -159
  295. package/cjs/helpers/formatServiceUrl.spec.js +0 -18
  296. package/cjs/helpers/getSha256Hex.spec.js +0 -19
  297. package/cjs/helpers/getSha256HexNode.spec.js +0 -10
  298. package/cjs/helpers/getURLSearchParams.spec.js +0 -21
  299. package/cjs/helpers/nanosecondToMillisecond.spec.js +0 -22
  300. package/cjs/helpers/splitRobotTopic.spec.js +0 -53
  301. package/cjs/helpers/standardDeviation.spec.d.ts +0 -1
  302. package/cjs/helpers/standardDeviation.spec.js +0 -13
  303. package/cjs/helpers/websandbox/frame/worker/manager.spec.d.ts +0 -4
  304. package/cjs/helpers/websandbox/frame/worker/manager.spec.js +0 -132
  305. package/cjs/models/CallsignStatus.d.ts +0 -6
  306. package/cjs/models/CallsignStatus.js +0 -10
  307. package/cjs/models/ExternalProject.d.ts +0 -6
  308. package/cjs/models/ExternalProject.js +0 -6
  309. package/cjs/models/Token.spec.d.ts +0 -1
  310. package/cjs/models/Token.spec.js +0 -110
  311. package/cjs/services/AuthService.spec.d.ts +0 -1
  312. package/cjs/services/AuthService.spec.js +0 -165
  313. package/cjs/services/CallerService.spec.d.ts +0 -1
  314. package/cjs/services/CallerService.spec.js +0 -229
  315. package/cjs/services/FunctionService.d.ts +0 -68
  316. package/cjs/services/FunctionService.js +0 -103
  317. package/cjs/services/PlatformTimeService.spec.d.ts +0 -1
  318. package/cjs/services/PlatformTimeService.spec.js +0 -182
  319. package/cjs/services/RTPWebRTCService.spec.d.ts +0 -4
  320. package/cjs/services/RTPWebRTCService.spec.js +0 -171
  321. package/cjs/services/TelemetryService.spec.d.ts +0 -1
  322. package/cjs/services/TelemetryService.spec.js +0 -39
  323. package/esm/helpers/cleanObject.spec.d.ts +0 -1
  324. package/esm/helpers/cleanObject.spec.js +0 -53
  325. package/esm/helpers/flattenObject.spec.d.ts +0 -1
  326. package/esm/helpers/flattenObject.spec.js +0 -29
  327. package/esm/helpers/flattenOneOf.spec.d.ts +0 -1
  328. package/esm/helpers/flattenOneOf.spec.js +0 -157
  329. package/esm/helpers/formatServiceUrl.spec.d.ts +0 -1
  330. package/esm/helpers/formatServiceUrl.spec.js +0 -16
  331. package/esm/helpers/getSha256Hex.spec.d.ts +0 -1
  332. package/esm/helpers/getSha256Hex.spec.js +0 -14
  333. package/esm/helpers/getSha256HexNode.spec.d.ts +0 -1
  334. package/esm/helpers/getSha256HexNode.spec.js +0 -8
  335. package/esm/helpers/getURLSearchParams.spec.d.ts +0 -1
  336. package/esm/helpers/getURLSearchParams.spec.js +0 -19
  337. package/esm/helpers/nanosecondToMillisecond.spec.d.ts +0 -1
  338. package/esm/helpers/nanosecondToMillisecond.spec.js +0 -20
  339. package/esm/helpers/splitRobotTopic.spec.d.ts +0 -1
  340. package/esm/helpers/splitRobotTopic.spec.js +0 -51
  341. package/esm/helpers/standardDeviation.spec.d.ts +0 -1
  342. package/esm/helpers/standardDeviation.spec.js +0 -11
  343. package/esm/helpers/websandbox/frame/worker/manager.spec.d.ts +0 -4
  344. package/esm/helpers/websandbox/frame/worker/manager.spec.js +0 -127
  345. package/esm/models/CallsignStatus.d.ts +0 -6
  346. package/esm/models/CallsignStatus.js +0 -7
  347. package/esm/models/ExternalProject.d.ts +0 -6
  348. package/esm/models/ExternalProject.js +0 -2
  349. package/esm/models/Token.spec.d.ts +0 -1
  350. package/esm/models/Token.spec.js +0 -108
  351. package/esm/models/asset-storage/AssetModelItem.js +0 -1
  352. package/esm/services/AuthService.spec.d.ts +0 -1
  353. package/esm/services/AuthService.spec.js +0 -163
  354. package/esm/services/CallerService.spec.d.ts +0 -1
  355. package/esm/services/CallerService.spec.js +0 -227
  356. package/esm/services/FunctionService.d.ts +0 -68
  357. package/esm/services/FunctionService.js +0 -99
  358. package/esm/services/PlatformTimeService.spec.d.ts +0 -1
  359. package/esm/services/PlatformTimeService.spec.js +0 -180
  360. package/esm/services/RTPWebRTCService.spec.d.ts +0 -4
  361. package/esm/services/RTPWebRTCService.spec.js +0 -169
  362. package/esm/services/TelemetryService.spec.d.ts +0 -1
  363. package/esm/services/TelemetryService.spec.js +0 -37
  364. /package/cjs/models/asset-storage/{AssetModelItem.js → AssetItem.js} +0 -0
  365. /package/{cjs/helpers/cleanObject.spec.d.ts → esm/models/asset-storage/AssetItem.js} +0 -0
  366. /package/{cjs/helpers/flattenObject.spec.d.ts → esm/models/device-credentials/DeviceCredentials.js} +0 -0
  367. /package/{cjs/helpers/flattenOneOf.spec.d.ts → esm/models/graph/Position.js} +0 -0
  368. /package/{cjs/helpers/formatServiceUrl.spec.d.ts → esm/models/graph/Quaternion.js} +0 -0
  369. /package/{cjs/helpers/getSha256Hex.spec.d.ts → esm/models/graph/Vector3.js} +0 -0
  370. /package/{cjs/helpers/getSha256HexNode.spec.d.ts → esm/models/integrations/Location.js} +0 -0
  371. /package/{cjs/helpers/getURLSearchParams.spec.d.ts → esm/models/integrations/PaginatedResults.js} +0 -0
  372. /package/{cjs/helpers/nanosecondToMillisecond.spec.d.ts → esm/models/projects/ExternalProject.js} +0 -0
  373. /package/{cjs/helpers/splitRobotTopic.spec.d.ts → esm/models/projects/NewProjectRequest.js} +0 -0
@@ -0,0 +1,53 @@
1
+ import Node from '../Node';
2
+ import { construct } from '../../utils';
3
+ export default class ObjectExpressionNode extends Node {
4
+ constructor(node, context) {
5
+ super(node, context, 'ObjectExpression');
6
+ }
7
+ run() {
8
+ const object = {};
9
+ for (const property of this.node.properties) {
10
+ if (property.type === 'SpreadElement') {
11
+ this.spreadProperty(property, object);
12
+ continue;
13
+ }
14
+ this.addProperty(property, object);
15
+ }
16
+ return object;
17
+ }
18
+ addProperty(property, object) {
19
+ if (property.kind !== 'init')
20
+ throw new Error('Only init properties are supported');
21
+ const key = this.getKey(property);
22
+ object[key] = construct(property.value, this.context).run();
23
+ }
24
+ spreadProperty(property, object) {
25
+ const value = construct(property.argument, this.context).run();
26
+ if (!(typeof value === 'object' && value !== null)) {
27
+ throw new Error('Spread argument must be an object');
28
+ }
29
+ Object.assign(object, value);
30
+ }
31
+ getKey(property) {
32
+ let key;
33
+ if (property.computed) {
34
+ key = construct(property.key, this.context).run();
35
+ }
36
+ else {
37
+ key = this.getStaticKey(property.key);
38
+ }
39
+ if (key === null || key === undefined)
40
+ throw new Error('Key cannot be null or undefined');
41
+ if (typeof key !== 'string' && typeof key !== 'number' && typeof key !== 'symbol') {
42
+ throw new Error(`Unsupported key type: ${typeof key}`);
43
+ }
44
+ return key;
45
+ }
46
+ getStaticKey(key) {
47
+ if (key.type === 'Identifier')
48
+ return key.name;
49
+ if (key.type === 'Literal')
50
+ return key.value;
51
+ throw new Error('Only identifier and literal keys are supported');
52
+ }
53
+ }
@@ -0,0 +1,12 @@
1
+ import { AnyNode, UnaryExpression } from 'acorn';
2
+ import Context from '../../Context';
3
+ import Node from '../Node';
4
+ /** A unary expression is an expression that consists of a single operand and an operator
5
+ *
6
+ * e.g. `+1`, `-2`, `!true`, `typeof x`
7
+ */
8
+ export default class UnaryExpressionNode extends Node<UnaryExpression> {
9
+ constructor(node: AnyNode, context: Context);
10
+ run(): unknown;
11
+ private arithmetic;
12
+ }
@@ -0,0 +1,38 @@
1
+ import Node from '../Node';
2
+ import { construct } from '../../utils';
3
+ /** A unary expression is an expression that consists of a single operand and an operator
4
+ *
5
+ * e.g. `+1`, `-2`, `!true`, `typeof x`
6
+ */
7
+ export default class UnaryExpressionNode extends Node {
8
+ constructor(node, context) {
9
+ super(node, context, 'UnaryExpression');
10
+ }
11
+ run() {
12
+ const argument = construct(this.node.argument, this.context).run();
13
+ switch (this.node.operator) {
14
+ case '+':
15
+ case '-':
16
+ return this.arithmetic(this.node.operator, argument);
17
+ case '!':
18
+ return !argument;
19
+ case 'typeof':
20
+ return typeof argument;
21
+ default:
22
+ throw new Error(`Unsupported operator: ${this.node.operator}`);
23
+ }
24
+ }
25
+ arithmetic(operator, argument) {
26
+ if (typeof argument !== 'number') {
27
+ throw new Error('Unary arithmetic operators are only supported for numbers');
28
+ }
29
+ switch (operator) {
30
+ case '+':
31
+ return +argument;
32
+ case '-':
33
+ return -argument;
34
+ default:
35
+ throw new Error(`Unsupported operator: ${operator}`);
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,11 @@
1
+ export { default as ExpressionStatement } from './ExpressionStatement';
2
+ export { default as ArrayExpression } from './ArrayExpression';
3
+ export { default as ObjectExpression } from './ObjectExpression';
4
+ export { default as BinaryExpression } from './BinaryExpression';
5
+ export { default as UnaryExpression } from './UnaryExpression';
6
+ export { default as LogicalExpression } from './LogicalExpression';
7
+ export { default as ConditionalExpression } from './ConditionalExpression';
8
+ export { default as CallExpression } from './CallExpression';
9
+ export { default as ArrowFunctionExpression } from './ArrowFunctionExpression';
10
+ export { default as MemberExpression } from './MemberExpression';
11
+ export { default as ChainExpression } from './ChainExpression';
@@ -0,0 +1,11 @@
1
+ export { default as ExpressionStatement } from './ExpressionStatement';
2
+ export { default as ArrayExpression } from './ArrayExpression';
3
+ export { default as ObjectExpression } from './ObjectExpression';
4
+ export { default as BinaryExpression } from './BinaryExpression';
5
+ export { default as UnaryExpression } from './UnaryExpression';
6
+ export { default as LogicalExpression } from './LogicalExpression';
7
+ export { default as ConditionalExpression } from './ConditionalExpression';
8
+ export { default as CallExpression } from './CallExpression';
9
+ export { default as ArrowFunctionExpression } from './ArrowFunctionExpression';
10
+ export { default as MemberExpression } from './MemberExpression';
11
+ export { default as ChainExpression } from './ChainExpression';
@@ -0,0 +1,4 @@
1
+ import { NodeType, default as nodes } from './nodeTypes';
2
+ import Context from '../Context';
3
+ import Node from './Node';
4
+ export { type Node, type NodeType, nodes, Context };
@@ -0,0 +1,3 @@
1
+ import { default as nodes } from './nodeTypes';
2
+ import Context from '../Context';
3
+ export { nodes, Context };
@@ -0,0 +1,33 @@
1
+ import { ArrayExpression, ArrowFunctionExpression, BinaryExpression, CallExpression, ChainExpression, ConditionalExpression, ExpressionStatement, LogicalExpression, MemberExpression, ObjectExpression, UnaryExpression } from './expressions';
2
+ import { AnyNode } from 'acorn';
3
+ import type Context from '../Context';
4
+ import Identifier from './Identifier';
5
+ import Literal from './Literal';
6
+ import Node from './Node';
7
+ import Program from './Program';
8
+ import TemplateLiteral from './TemplateLiteral';
9
+ type NodeConstructor = {
10
+ new (node: AnyNode, scope: Context): Node<AnyNode>;
11
+ };
12
+ export type NodeMap = Map<AnyNode['type'], NodeConstructor>;
13
+ declare const nodes: {
14
+ readonly Program: typeof Program;
15
+ readonly Literal: typeof Literal;
16
+ readonly ExpressionStatement: typeof ExpressionStatement;
17
+ readonly ArrayExpression: typeof ArrayExpression;
18
+ readonly ObjectExpression: typeof ObjectExpression;
19
+ readonly Identifier: typeof Identifier;
20
+ readonly BinaryExpression: typeof BinaryExpression;
21
+ readonly UnaryExpression: typeof UnaryExpression;
22
+ readonly LogicalExpression: typeof LogicalExpression;
23
+ readonly ConditionalExpression: typeof ConditionalExpression;
24
+ readonly IfStatement: typeof ConditionalExpression;
25
+ readonly TemplateLiteral: typeof TemplateLiteral;
26
+ readonly ArrowFunctionExpression: typeof ArrowFunctionExpression;
27
+ readonly CallExpression: typeof CallExpression;
28
+ readonly MemberExpression: typeof MemberExpression;
29
+ readonly ChainExpression: typeof ChainExpression;
30
+ };
31
+ export type NodeType = keyof typeof nodes;
32
+ declare const _default: NodeMap;
33
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { ArrayExpression, ArrowFunctionExpression, BinaryExpression, CallExpression, ChainExpression, ConditionalExpression, ExpressionStatement, LogicalExpression, MemberExpression, ObjectExpression, UnaryExpression, } from './expressions';
2
+ import Identifier from './Identifier';
3
+ import Literal from './Literal';
4
+ import Program from './Program';
5
+ import TemplateLiteral from './TemplateLiteral';
6
+ const nodes = {
7
+ Program,
8
+ Literal,
9
+ ExpressionStatement,
10
+ ArrayExpression,
11
+ ObjectExpression,
12
+ Identifier,
13
+ BinaryExpression,
14
+ UnaryExpression,
15
+ LogicalExpression,
16
+ ConditionalExpression,
17
+ IfStatement: ConditionalExpression,
18
+ TemplateLiteral,
19
+ ArrowFunctionExpression,
20
+ CallExpression,
21
+ MemberExpression,
22
+ ChainExpression,
23
+ };
24
+ export default new Map(Object.entries(nodes));
@@ -0,0 +1,4 @@
1
+ import { Node } from './nodes';
2
+ import { AnyNode } from 'acorn';
3
+ import Context from './Context';
4
+ export declare function construct(node: AnyNode, context: Context): Node<AnyNode>;
@@ -0,0 +1,11 @@
1
+ import { nodes } from './nodes';
2
+ export function construct(node, context) {
3
+ if (!context.isNodeAllowed(node.type)) {
4
+ throw new Error(`Blacklisted Operation: ${node.type}`);
5
+ }
6
+ const nodeClass = nodes.get(node.type);
7
+ if (!nodeClass) {
8
+ throw new Error(`Unknown node type: ${node.type}`);
9
+ }
10
+ return Reflect.construct(nodeClass, [node, context]);
11
+ }
@@ -39,6 +39,8 @@ export default class Connection<Local extends APIDeclaration<Local>, Remote exte
39
39
  * @param args - arguments to pass to remote method
40
40
  */
41
41
  callRemoteMethod<Method extends keyof Remote>(name: Method, ...args: Parameters<Remote[Method]>): Promise<ReturnType<Remote[Method]>>;
42
+ /** Log a message if debug mode is enabled */
43
+ log(...args: unknown[]): void;
42
44
  private onMessageListener;
43
45
  private callLocalMethod;
44
46
  /** Respond to remote call
@@ -62,6 +64,5 @@ export default class Connection<Local extends APIDeclaration<Local>, Remote exte
62
64
  */
63
65
  private popCallback;
64
66
  private postMessage;
65
- private log;
66
67
  }
67
68
  export {};
@@ -43,6 +43,12 @@ export default class Connection {
43
43
  });
44
44
  });
45
45
  }
46
+ /** Log a message if debug mode is enabled */
47
+ log(...args) {
48
+ if (this.options.debugMode) {
49
+ console.debug(`[${this.name}]`, ...args);
50
+ }
51
+ }
46
52
  onMessageListener(e) {
47
53
  this.log('Received message', e);
48
54
  const { data } = e;
@@ -125,9 +131,4 @@ export default class Connection {
125
131
  this.log('sending message', { data, targetOrigin });
126
132
  this.postMessageInternal(data, targetOrigin);
127
133
  }
128
- log(...args) {
129
- if (this.options.debugMode) {
130
- console.debug(`[${this.name}]`, ...args);
131
- }
132
- }
133
134
  }
@@ -12,7 +12,10 @@ class Frame {
12
12
  debugMode: isDebugMode,
13
13
  });
14
14
  void this.connection.callRemoteMethod('iframeInitialised');
15
- this.workerManager = new WorkerManager();
15
+ // use roughly half the number of logical cores available clamped between 1 and 6
16
+ const workers = Math.min(Math.max(Math.ceil(navigator.hardwareConcurrency / 2), 1), 6);
17
+ this.connection.log(`Creating ${workers} workers`);
18
+ this.workerManager = new WorkerManager(workers);
16
19
  }
17
20
  async runCode(task) {
18
21
  return this.workerManager.execute(task);
@@ -1,5 +1,5 @@
1
1
  // Auto-generated file
2
2
  /* eslint-disable */
3
3
  import __WORKER_SOURCE__ from './worker/worker.source';
4
- const source = `(()=>{"use strict";var e={880:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.RESPONSE="response",e.MESSAGE="message"}(s||(s={}));const r={allowedSenderOrigin:void 0,debugMode:!1};t.default=class{constructor(e,t,s,i,o={}){this.callbacks=new Map,this.serviceMethods=new Map,this.name=e,this.options={...r,...o},this.log("Created connection w/ allowedOrigin:",this.options.allowedSenderOrigin),this.serviceMethods=new Map(Object.entries(s));const[n]=crypto.getRandomValues(new Uint32Array(1));this.incrementalID=n,this.postMessageInternal=t,i((e=>this.onMessageListener(e)))}callRemoteMethod(e,...t){return this.log("Calling Remote Method",{name:e,args:t}),new Promise(((r,i)=>{const o=this.registerCallback(r,i);this.postMessage({callId:o,type:s.MESSAGE,methodName:e,arguments:t})}))}onMessageListener(e){this.log("Received message",e);const{data:t}=e,{allowedSenderOrigin:r}=this.options;switch(r&&e.origin!==r&&console.warn(\`Received message from invalid origin: \${e.origin}\`),t.type){case s.RESPONSE:return void this.popCallback(t.callId,t.success,t.result);case s.MESSAGE:this.callLocalMethod(t.methodName,t.arguments).then((e=>this.responseOtherSide(t.callId,e))).catch((e=>this.responseOtherSide(t.callId,e,!1)))}}async callLocalMethod(e,t){this.log("calling local method",e,t);const s=this.serviceMethods.get(e);if(!s)throw new Error(\`service method \${e} not found\`);return s(...t)}responseOtherSide(e,t,r=!0){this.log("responding to remote call",{id:e,result:t,success:r});const i=t=>{this.postMessage({callId:e,type:s.RESPONSE,success:r,result:t})};try{i(t)}catch(e){e instanceof DOMException&&i(JSON.parse(JSON.stringify(t)))}}registerCallback(e,t){const s=(++this.incrementalID).toString();return this.log("registering callback for id",s),this.callbacks.set(s,{success:e,failure:t}),s}popCallback(e,t,s){this.log("calling callback for id",e,{success:t,result:s});const r=this.callbacks.get(e);t?r?.success(s):r?.failure(s),this.callbacks.delete(e)}postMessage(e,t="*"){this.log("sending message",{data:e,targetOrigin:t}),this.postMessageInternal(e,t)}log(...e){this.options.debugMode&&console.debug(\`[\${this.name}]\`,...e)}}},306:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(s(880)),o=r(s(54)),n=new class{constructor(){const e=!!window?.debugMode;this.connection=new i.default("FRAME",window.parent.postMessage.bind(window.parent),{startTask:this.runCode.bind(this)},(e=>{window.addEventListener("message",e)}),{debugMode:e}),this.connection.callRemoteMethod("iframeInitialised"),this.workerManager=new o.default}async runCode(e){return this.workerManager.execute(e)}};t.default=n},54:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(s(420));t.default=i.default},420:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(){this.messageListeners=new Map,this.worker=this.createWorker()}async execute(e){const t={...e,contextVariable:e.contextVariable??"ctx"},s=this.runTask(t),r=new Promise(((t,s)=>{const r=AbortSignal.timeout(e.timeout);r.addEventListener("abort",(()=>{s(r.reason)}))}));return Promise.race([s,r]).catch((e=>{throw"TimeoutError"===e.name&&this.terminate(),e})).finally((()=>{this.removeMessageListener(e.id)}))}terminate(){for(const e of this.messageListeners.values())this.worker.removeEventListener("message",e);this.worker.terminate(),this.worker=this.createWorker()}runTask(e){return new Promise(((t,s)=>{const r=r=>{const{data:i}=r;i.id===e.id&&(i.success?t(i.result):s(i.result))};this.messageListeners.set(e.id,r),this.worker.addEventListener("message",r),this.worker.postMessage(e)}))}createWorker(){const e=URL.createObjectURL(new Blob(["${__WORKER_SOURCE__.replace(/(['`"$])/g, '\\$1')}"],{type:"application/javascript"}));return new Worker(e)}removeMessageListener(e){const t=this.messageListeners.get(e);t&&this.worker.removeEventListener("message",t)}}}},t={};!function s(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,s),o.exports}(306)})();`;
4
+ const source = `(()=>{"use strict";var e;!function(e){e.RESPONSE="response",e.MESSAGE="message"}(e||(e={}));const s={allowedSenderOrigin:void 0,debugMode:!1};class t{constructor(e,t,r,n,o={}){this.callbacks=new Map,this.serviceMethods=new Map,this.name=e,this.options={...s,...o},this.log("Created connection w/ allowedOrigin:",this.options.allowedSenderOrigin),this.serviceMethods=new Map(Object.entries(r));const[i]=crypto.getRandomValues(new Uint32Array(1));this.incrementalID=i,this.postMessageInternal=t,n((e=>this.onMessageListener(e)))}callRemoteMethod(s,...t){return this.log("Calling Remote Method",{name:s,args:t}),new Promise(((r,n)=>{const o=this.registerCallback(r,n);this.postMessage({callId:o,type:e.MESSAGE,methodName:s,arguments:t})}))}log(...e){this.options.debugMode&&console.debug(\`[\${this.name}]\`,...e)}onMessageListener(s){this.log("Received message",s);const{data:t}=s,{allowedSenderOrigin:r}=this.options;switch(r&&s.origin!==r&&console.warn(\`Received message from invalid origin: \${s.origin}\`),t.type){case e.RESPONSE:return void this.popCallback(t.callId,t.success,t.result);case e.MESSAGE:this.callLocalMethod(t.methodName,t.arguments).then((e=>this.responseOtherSide(t.callId,e))).catch((e=>this.responseOtherSide(t.callId,e,!1)))}}async callLocalMethod(e,s){this.log("calling local method",e,s);const t=this.serviceMethods.get(e);if(!t)throw new Error(\`service method \${e} not found\`);return t(...s)}responseOtherSide(s,t,r=!0){this.log("responding to remote call",{id:s,result:t,success:r});const n=t=>{this.postMessage({callId:s,type:e.RESPONSE,success:r,result:t})};try{n(t)}catch(e){e instanceof DOMException&&n(JSON.parse(JSON.stringify(t)))}}registerCallback(e,s){const t=(++this.incrementalID).toString();return this.log("registering callback for id",t),this.callbacks.set(t,{success:e,failure:s}),t}popCallback(e,s,t){this.log("calling callback for id",e,{success:s,result:t});const r=this.callbacks.get(e);s?r?.success(t):r?.failure(t),this.callbacks.delete(e)}postMessage(e,s="*"){this.log("sending message",{data:e,targetOrigin:s}),this.postMessageInternal(e,s)}}new class{constructor(){const e=!!window?.debugMode;this.connection=new t("FRAME",window.parent.postMessage.bind(window.parent),{startTask:this.runCode.bind(this)},(e=>{window.addEventListener("message",e)}),{debugMode:e}),this.connection.callRemoteMethod("iframeInitialised");const s=Math.max(Math.ceil(navigator.hardwareConcurrency/2),1);this.connection.log(\`Creating \${s} workers\`),this.workerManager=new class{constructor(e=1){this.messageListeners=new Map,this.requestedWorkers=e,this.workers=Array.from({length:e},(()=>this.createWorker())),this.nextWorkerGenerator=this.nextWorker()}async execute(e){const s=this.nextWorkerGenerator.next().value,t={...e,contextVariable:e.contextVariable??"ctx"},r=this.runTask(s,t),n=new Promise(((s,t)=>{const r=AbortSignal.timeout(e.timeout);r.addEventListener("abort",(()=>{t(r.reason)}))}));return Promise.race([r,n]).catch((e=>{if("TimeoutError"===e.name)throw this.terminate(s),new DOMException("soft timeout reached","TimeoutError");throw e})).finally((()=>{this.removeMessageListener(e.id)}))}terminate(e){for(const s of this.messageListeners.values())e.removeEventListener("message",s);e.terminate(),this.rebuildWorkers()}runTask(e,s){return new Promise(((t,r)=>{const n=e=>{const{data:n}=e;n.id===s.id&&(n.success?t(n.result):r(n.result))};this.messageListeners.set(s.id,n),e.addEventListener("message",n),e.postMessage(s)}))}createWorker(){const e=URL.createObjectURL(new Blob(["${__WORKER_SOURCE__.replace(/(['`"$])/g, '\\$1')}"],{type:"application/javascript"}));return new Worker(e)}rebuildWorkers(){const e=this.requestedWorkers-this.workers.length;if(e<0)throw new Error("Cannot have less than 0 workers");if(e<=0)return;const s=Array.from({length:e},(()=>this.createWorker()));this.workers.push(...s)}*nextWorker(){let e=0;for(;;)e=(e+1)%this.workers.length,yield this.workers[e]}removeMessageListener(e){const s=this.messageListeners.get(e);s&&(this.workers.forEach((e=>e.removeEventListener("message",s))),this.messageListeners.delete(e))}}(s)}async runCode(e){return this.workerManager.execute(e)}}})();`;
5
5
  export default source;
@@ -1,11 +1,15 @@
1
1
  import { Task } from '../../types';
2
2
  export default class Manager {
3
- private worker;
4
- private messageListeners;
5
- constructor();
3
+ private readonly requestedWorkers;
4
+ private readonly workers;
5
+ private nextWorkerIndex;
6
+ private readonly messageListeners;
7
+ constructor(workers?: number);
6
8
  execute(task: Task): Promise<unknown>;
7
- terminate(): void;
9
+ private terminate;
8
10
  private runTask;
9
11
  private createWorker;
12
+ private rebuildWorkers;
13
+ private getWorker;
10
14
  private removeMessageListener;
11
15
  }
@@ -1,16 +1,19 @@
1
1
  // this token (__WORKER_SOURCE__) is replaced by webpack with the source of the worker
2
2
  const WORKER_SOURCE = '__WORKER_SOURCE__';
3
3
  export default class Manager {
4
- constructor() {
4
+ constructor(workers = 1) {
5
+ this.nextWorkerIndex = 0;
5
6
  this.messageListeners = new Map();
6
- this.worker = this.createWorker();
7
+ this.requestedWorkers = workers;
8
+ this.workers = Array.from({ length: workers }, () => this.createWorker());
7
9
  }
8
10
  async execute(task) {
11
+ const worker = this.getWorker();
9
12
  const workerTask = {
10
13
  ...task,
11
14
  contextVariable: task.contextVariable ?? 'ctx',
12
15
  };
13
- const result = this.runTask(workerTask);
16
+ const result = this.runTask(worker, workerTask);
14
17
  const timeout = new Promise((_, reject) => {
15
18
  const signal = AbortSignal.timeout(task.timeout);
16
19
  signal.addEventListener('abort', () => {
@@ -20,7 +23,8 @@ export default class Manager {
20
23
  return Promise.race([result, timeout])
21
24
  .catch((e) => {
22
25
  if (e.name === 'TimeoutError') {
23
- this.terminate();
26
+ this.terminate(worker);
27
+ throw new DOMException('soft timeout reached', 'TimeoutError');
24
28
  }
25
29
  throw e;
26
30
  })
@@ -28,14 +32,14 @@ export default class Manager {
28
32
  this.removeMessageListener(task.id);
29
33
  });
30
34
  }
31
- terminate() {
35
+ terminate(worker) {
32
36
  for (const listener of this.messageListeners.values()) {
33
- this.worker.removeEventListener('message', listener);
37
+ worker.removeEventListener('message', listener);
34
38
  }
35
- this.worker.terminate();
36
- this.worker = this.createWorker();
39
+ worker.terminate();
40
+ this.rebuildWorkers();
37
41
  }
38
- runTask(task) {
42
+ runTask(worker, task) {
39
43
  return new Promise((resolve, reject) => {
40
44
  const listener = (event) => {
41
45
  const { data } = event;
@@ -49,19 +53,33 @@ export default class Manager {
49
53
  }
50
54
  };
51
55
  this.messageListeners.set(task.id, listener);
52
- this.worker.addEventListener('message', listener);
53
- this.worker.postMessage(task);
56
+ worker.addEventListener('message', listener);
57
+ worker.postMessage(task);
54
58
  });
55
59
  }
56
60
  createWorker() {
57
61
  const blob = URL.createObjectURL(new Blob([WORKER_SOURCE], { type: 'application/javascript' }));
58
62
  return new Worker(blob);
59
63
  }
64
+ rebuildWorkers() {
65
+ const needed = this.requestedWorkers - this.workers.length;
66
+ if (needed < 0)
67
+ throw new Error('Cannot have less than 0 workers');
68
+ if (needed <= 0)
69
+ return;
70
+ const newWorkers = Array.from({ length: needed }, () => this.createWorker());
71
+ this.workers.push(...newWorkers);
72
+ }
73
+ getWorker() {
74
+ const worker = this.workers[this.nextWorkerIndex];
75
+ this.nextWorkerIndex = (this.nextWorkerIndex + 1) % this.workers.length;
76
+ return worker;
77
+ }
60
78
  removeMessageListener(id) {
61
79
  const listener = this.messageListeners.get(id);
62
- if (!listener) {
80
+ if (!listener)
63
81
  return;
64
- }
65
- this.worker.removeEventListener('message', listener);
82
+ this.workers.forEach((worker) => worker.removeEventListener('message', listener));
83
+ this.messageListeners.delete(id);
66
84
  }
67
85
  }
@@ -1,4 +1,4 @@
1
1
  // Auto-generated file
2
2
  /* eslint-disable */
3
- const source = `(()=>{"use strict";(()=>{const e=["TEMPORARY","PERSISTENT","console","self","onmessage","postMessage","global","allowed","Array","Boolean","Date","Function","Number","Object","RegExp","String","Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","isFinite","isNaN","parseFloat","parseInt","Infinity","JSON","Math","NaN","undefined"];[...Object.getOwnPropertyNames(self),...Object.getOwnPropertyNames(self.__proto__)].forEach((r=>{e.includes(r)||Object.defineProperty(self,r,{get:()=>{throw new Error(\`Security Exception: cannot access \${r}\`)},set:()=>{throw new Error(\`Security Exception: cannot set \${r}\`)},configurable:!1})})),onmessage=e=>{let r,t=!0;try{r=Function(e.data.contextVariable,\`"use strict";return (\${e.data.code});\`)(e.data.context)}catch(e){r=e,t=!1}const o={id:e.data.id,result:r,success:t};postMessage(o)}})()})();`;
3
+ const source = `(()=>{"use strict";const e=["TEMPORARY","PERSISTENT","console","self","onmessage","postMessage","global","allowed","Array","Boolean","Date","Function","Number","Object","RegExp","String","Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","isFinite","isNaN","parseFloat","parseInt","Infinity","JSON","Math","NaN","undefined"];[...Object.getOwnPropertyNames(self),...Object.getOwnPropertyNames(self.__proto__)].forEach((r=>{e.includes(r)||Object.defineProperty(self,r,{get:()=>{throw new Error(\`Security Exception: cannot access \${r}\`)},set:()=>{throw new Error(\`Security Exception: cannot set \${r}\`)},configurable:!1})})),onmessage=e=>{let r,t=!0;try{r=Function(e.data.contextVariable,\`"use strict";return (\${e.data.code});\`)(e.data.context)}catch(e){r=e,t=!1}const o={id:e.data.id,result:r,success:t};postMessage(o)}})();`;
4
4
  export default source;
@@ -44,7 +44,7 @@ export default class WebSandbox {
44
44
  *
45
45
  * This will remove the iframe from the DOM and remove the message listener.
46
46
  */
47
- destroy(): void;
47
+ destroy(reason?: unknown): void;
48
48
  private initialise;
49
49
  private validateOptions;
50
50
  private destroyAndRebuild;
@@ -29,8 +29,8 @@ export default class WebSandbox {
29
29
  this.initialised = this.initialise();
30
30
  this.frameAbortController = new AbortController();
31
31
  if (options.abortSignal) {
32
- this.promisifyAbortSignal(options.abortSignal).catch(() => {
33
- void this.destroyAndRebuild(this.frame.id);
32
+ this.promisifyAbortSignal(options.abortSignal).catch((reason) => {
33
+ void this.destroyAndRebuild(this.frame.id, reason);
34
34
  });
35
35
  }
36
36
  }
@@ -45,8 +45,8 @@ export default class WebSandbox {
45
45
  *
46
46
  * This will remove the iframe from the DOM and remove the message listener.
47
47
  */
48
- destroy() {
49
- this.frameAbortController.abort();
48
+ destroy(reason) {
49
+ this.frameAbortController.abort(reason);
50
50
  this.frame.remove();
51
51
  this.removeMessageListener();
52
52
  }
@@ -79,11 +79,11 @@ export default class WebSandbox {
79
79
  throw new Error('maximum timeout must be less than or equal to 5000ms');
80
80
  }
81
81
  }
82
- async destroyAndRebuild(frameId) {
82
+ async destroyAndRebuild(frameId, reason) {
83
83
  if (this.frame.id !== frameId) {
84
84
  return;
85
85
  }
86
- this.destroy();
86
+ this.destroy(reason);
87
87
  this.frame = this.createFrame();
88
88
  this.frameAbortController = new AbortController();
89
89
  await this.initialise();
@@ -117,7 +117,7 @@ export default class WebSandbox {
117
117
  const signals = [task, timeout, frameAbortedSignal, userAbortedSignal].filter((i) => i !== null);
118
118
  return Promise.race(signals).catch(async (e) => {
119
119
  if (e.name === 'TimeoutError') {
120
- await this.destroyAndRebuild(frameId);
120
+ await this.destroyAndRebuild(frameId, 'task timed out');
121
121
  }
122
122
  throw e;
123
123
  });
@@ -0,0 +1,10 @@
1
+ export declare enum ConnectionStatus {
2
+ CONNECTED = "CONNECTED",
3
+ DISCONNECTED = "DISCONNECTED"
4
+ }
5
+ export interface IConnectedCallsign {
6
+ status: ConnectionStatus;
7
+ details: {
8
+ duration: number;
9
+ };
10
+ }
@@ -0,0 +1,5 @@
1
+ export var ConnectionStatus;
2
+ (function (ConnectionStatus) {
3
+ ConnectionStatus["CONNECTED"] = "CONNECTED";
4
+ ConnectionStatus["DISCONNECTED"] = "DISCONNECTED";
5
+ })(ConnectionStatus || (ConnectionStatus = {}));
@@ -24,6 +24,9 @@ export declare const errorCodes: {
24
24
  MAPS_SERVICE_ERROR: string;
25
25
  EVALUATOR_SERVICE_ERROR: string;
26
26
  WEBRTC_SERVICE_ERROR: string;
27
+ DEVICE_CREDENTIALS_SERVICE_ERROR: string;
28
+ TARGET_SERVICE_ERROR: string;
29
+ ENVIRONMENT_SERVICE_ERROR: string;
27
30
  };
28
31
  export declare class RocosError extends Error {
29
32
  code?: string;
@@ -24,6 +24,9 @@ export const errorCodes = {
24
24
  MAPS_SERVICE_ERROR: 'MAPS_SERVICE_ERROR',
25
25
  EVALUATOR_SERVICE_ERROR: 'EVALUATOR_SERVICE_ERROR',
26
26
  WEBRTC_SERVICE_ERROR: 'WEBRTC_SERVICE_ERROR',
27
+ DEVICE_CREDENTIALS_SERVICE_ERROR: 'DEVICE_CREDENTIALS_SERVICE_ERROR',
28
+ TARGET_SERVICE_ERROR: 'TARGET_SERVICE_ERROR',
29
+ ENVIRONMENT_SERVICE_ERROR: 'ENVIRONMENT_SERVICE_ERROR',
27
30
  };
28
31
  export class RocosError extends Error {
29
32
  constructor(err, code, statusCode) {
@@ -1,28 +1,31 @@
1
1
  export declare enum ServiceEnum {
2
+ ASSET_STORAGE = "asset_storage",
2
3
  AUTH = "auth",
3
- TELEMETRY = "telemetry",
4
- ROBOT = "robot",
5
- EVENT = "event",
6
- PROJECT = "project",
7
4
  CALLER = "caller",
8
5
  COMMAND = "command",
9
- CONTROL = "control",
10
- SEARCH = "search",
11
6
  CONFIG_GROUP = "config_group",
7
+ CONTROL = "control",
12
8
  DASHBOARD = "dashboard",
9
+ DEVICE_CREDENTIALS = "device_credentials",
10
+ ENVIRONMENT = "environment",
11
+ EVENT = "event",
12
+ EVALUATOR = "evaluator",
13
+ FILE_ACCESSOR = "file_accessor",
13
14
  FUNCTION = "function",
14
- STREAM = "stream",
15
- USER = "user",
16
- TIME_SYNCER = "time_syncer",
17
- WORKFLOW = "workflow",
18
- ASSET_STORAGE = "asset_storage",
15
+ INTEGRATION = "integration",
16
+ MAP = "map",
17
+ PROJECT = "project",
19
18
  PROFILE = "profile",
20
- WEBRTC_SIGNALLING = "webrtc_signalling",
21
- FILE_ACCESSOR = "file_accessor",
19
+ ROBOT = "robot",
20
+ RTP_WEBRTC = "rtp_webrtc",
22
21
  SCHEDULE = "schedule",
22
+ SEARCH = "search",
23
23
  SPOT_PROVISIONER = "spot_provisioner",
24
- INTEGRATION = "integration",
25
- MAP = "map",
26
- EVALUATOR = "evaluator",
27
- RTP_WEBRTC = "rtp_webrtc"
24
+ STREAM = "stream",
25
+ TARGET = "target",
26
+ TELEMETRY = "telemetry",
27
+ TIME_SYNCER = "time_syncer",
28
+ USER = "user",
29
+ WEBRTC_SIGNALLING = "webrtc_signalling",
30
+ WORKFLOW = "workflow"
28
31
  }
@@ -1,29 +1,32 @@
1
1
  export var ServiceEnum;
2
2
  (function (ServiceEnum) {
3
+ ServiceEnum["ASSET_STORAGE"] = "asset_storage";
3
4
  ServiceEnum["AUTH"] = "auth";
4
- ServiceEnum["TELEMETRY"] = "telemetry";
5
- ServiceEnum["ROBOT"] = "robot";
6
- ServiceEnum["EVENT"] = "event";
7
- ServiceEnum["PROJECT"] = "project";
8
5
  ServiceEnum["CALLER"] = "caller";
9
6
  ServiceEnum["COMMAND"] = "command";
10
- ServiceEnum["CONTROL"] = "control";
11
- ServiceEnum["SEARCH"] = "search";
12
7
  ServiceEnum["CONFIG_GROUP"] = "config_group";
8
+ ServiceEnum["CONTROL"] = "control";
13
9
  ServiceEnum["DASHBOARD"] = "dashboard";
14
- ServiceEnum["FUNCTION"] = "function";
15
- ServiceEnum["STREAM"] = "stream";
16
- ServiceEnum["USER"] = "user";
17
- ServiceEnum["TIME_SYNCER"] = "time_syncer";
18
- ServiceEnum["WORKFLOW"] = "workflow";
19
- ServiceEnum["ASSET_STORAGE"] = "asset_storage";
20
- ServiceEnum["PROFILE"] = "profile";
21
- ServiceEnum["WEBRTC_SIGNALLING"] = "webrtc_signalling";
10
+ ServiceEnum["DEVICE_CREDENTIALS"] = "device_credentials";
11
+ ServiceEnum["ENVIRONMENT"] = "environment";
12
+ ServiceEnum["EVENT"] = "event";
13
+ ServiceEnum["EVALUATOR"] = "evaluator";
22
14
  ServiceEnum["FILE_ACCESSOR"] = "file_accessor";
23
- ServiceEnum["SCHEDULE"] = "schedule";
24
- ServiceEnum["SPOT_PROVISIONER"] = "spot_provisioner";
15
+ ServiceEnum["FUNCTION"] = "function";
25
16
  ServiceEnum["INTEGRATION"] = "integration";
26
17
  ServiceEnum["MAP"] = "map";
27
- ServiceEnum["EVALUATOR"] = "evaluator";
18
+ ServiceEnum["PROJECT"] = "project";
19
+ ServiceEnum["PROFILE"] = "profile";
20
+ ServiceEnum["ROBOT"] = "robot";
28
21
  ServiceEnum["RTP_WEBRTC"] = "rtp_webrtc";
22
+ ServiceEnum["SCHEDULE"] = "schedule";
23
+ ServiceEnum["SEARCH"] = "search";
24
+ ServiceEnum["SPOT_PROVISIONER"] = "spot_provisioner";
25
+ ServiceEnum["STREAM"] = "stream";
26
+ ServiceEnum["TARGET"] = "target";
27
+ ServiceEnum["TELEMETRY"] = "telemetry";
28
+ ServiceEnum["TIME_SYNCER"] = "time_syncer";
29
+ ServiceEnum["USER"] = "user";
30
+ ServiceEnum["WEBRTC_SIGNALLING"] = "webrtc_signalling";
31
+ ServiceEnum["WORKFLOW"] = "workflow";
29
32
  })(ServiceEnum || (ServiceEnum = {}));
@@ -0,0 +1,12 @@
1
+ export declare enum TelemetryMonitorStatus {
2
+ UNKNOWN = "unknown",
3
+ CONNECTED = "connected",
4
+ DISCONNECTED = "disconnected",
5
+ ERROR = "error"
6
+ }
7
+ export declare enum CallsignStatus {
8
+ UNKNOWN = "unknown",
9
+ ONLINE = "online",
10
+ OFFLINE = "offline",
11
+ ERROR = "error"
12
+ }