@dronedeploy/rocos-js-sdk 2.6.1 → 3.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/IRocosSDK.d.ts +3 -26
- package/IRocosSDK.js +1 -5
- package/README.md +18 -0
- package/RocosSDK.d.ts +6 -1
- package/RocosSDK.js +103 -95
- package/api/StreamRegister.d.ts +1 -1
- package/api/StreamRegister.js +23 -12
- package/api/atoms/StreamHeartbeat.js +3 -7
- package/api/streams/caller/CallerStream.d.ts +6 -6
- package/api/streams/caller/CallerStream.js +41 -49
- package/api/streams/caller/CallerStreamAbstract.d.ts +6 -11
- package/api/streams/caller/CallerStreamAbstract.js +55 -67
- package/api/streams/caller/CallerStreamNode.d.ts +6 -6
- package/api/streams/caller/CallerStreamNode.js +48 -61
- package/api/streams/command/CommandStream.d.ts +2 -4
- package/api/streams/command/CommandStream.js +28 -30
- package/api/streams/command/CommandStreamAbstract.d.ts +4 -8
- package/api/streams/command/CommandStreamAbstract.js +33 -42
- package/api/streams/command/CommandStreamNode.d.ts +2 -4
- package/api/streams/command/CommandStreamNode.js +16 -40
- package/api/streams/control/ControlStream.d.ts +4 -6
- package/api/streams/control/ControlStream.js +30 -36
- package/api/streams/control/ControlStreamAbstract.d.ts +6 -9
- package/api/streams/control/ControlStreamAbstract.js +57 -54
- package/api/streams/control/ControlStreamNode.d.ts +3 -5
- package/api/streams/control/ControlStreamNode.js +19 -44
- package/api/streams/fileAccessor/FileAccessorStream.d.ts +2 -4
- package/api/streams/fileAccessor/FileAccessorStream.js +42 -57
- package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +4 -9
- package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +28 -48
- package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +1 -3
- package/api/streams/fileAccessor/FileAccessorStreamNode.js +23 -53
- package/api/streams/search/SearchStream.d.ts +2 -5
- package/api/streams/search/SearchStream.js +50 -74
- package/api/streams/search/SearchStreamAbstract.d.ts +4 -9
- package/api/streams/search/SearchStreamAbstract.js +33 -35
- package/api/streams/search/SearchStreamNode.d.ts +2 -5
- package/api/streams/search/SearchStreamNode.js +23 -48
- package/api/streams/telemetry/TelemetryStream.d.ts +4 -4
- package/api/streams/telemetry/TelemetryStream.js +49 -78
- package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +8 -11
- package/api/streams/telemetry/TelemetryStreamAbstract.js +126 -145
- package/api/streams/telemetry/TelemetryStreamNode.d.ts +5 -5
- package/api/streams/telemetry/TelemetryStreamNode.js +44 -64
- package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +5 -10
- package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +37 -20
- package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +10 -13
- package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +37 -37
- package/constants/api.d.ts +14 -5
- package/constants/api.js +130 -126
- package/constants/auth.d.ts +2 -0
- package/constants/auth.js +2 -0
- package/constants/grpc.js +5 -8
- package/constants/identifier.js +6 -9
- package/constants/timezones.d.ts +1 -1
- package/constants/timezones.js +1 -4
- package/grpc/conker_pb.client.d.ts +78 -0
- package/grpc/conker_pb.client.js +55 -0
- package/grpc/conker_pb.d.ts +141 -0
- package/grpc/conker_pb.grpc-client.d.ts +81 -0
- package/grpc/conker_pb.grpc-client.js +58 -0
- package/grpc/conker_pb.js +104 -0
- package/grpc/filagree_pb.client.d.ts +68 -0
- package/grpc/filagree_pb.client.js +48 -0
- package/grpc/filagree_pb.d.ts +404 -0
- package/grpc/filagree_pb.grpc-client.d.ts +69 -0
- package/grpc/filagree_pb.grpc-client.js +51 -0
- package/grpc/filagree_pb.js +329 -0
- package/grpc/google/protobuf/descriptor_pb.d.ts +1798 -0
- package/grpc/google/protobuf/descriptor_pb.js +2378 -0
- package/grpc/google/protobuf/empty_pb.d.ts +23 -0
- package/grpc/google/protobuf/empty_pb.js +47 -0
- package/grpc/pigeon_pb.client.d.ts +96 -0
- package/grpc/pigeon_pb.client.js +72 -0
- package/grpc/pigeon_pb.d.ts +207 -0
- package/grpc/pigeon_pb.grpc-client.d.ts +98 -0
- package/grpc/pigeon_pb.grpc-client.js +68 -0
- package/grpc/pigeon_pb.js +144 -0
- package/grpc/rambo.uri.v1_pb.d.ts +73 -0
- package/grpc/rambo.uri.v1_pb.js +48 -0
- package/grpc/rambo.v1_pb.client.d.ts +66 -0
- package/grpc/rambo.v1_pb.client.js +48 -0
- package/grpc/rambo.v1_pb.d.ts +392 -0
- package/grpc/rambo.v1_pb.grpc-client.d.ts +56 -0
- package/grpc/rambo.v1_pb.grpc-client.js +44 -0
- package/grpc/rambo.v1_pb.js +272 -0
- package/grpc/serviette.uri.v1_pb.d.ts +89 -0
- package/grpc/serviette.uri.v1_pb.js +62 -0
- package/grpc/serviette.v1_pb.client.d.ts +225 -0
- package/grpc/serviette.v1_pb.client.js +174 -0
- package/grpc/serviette.v1_pb.d.ts +827 -0
- package/grpc/serviette.v1_pb.grpc-client.d.ts +215 -0
- package/grpc/serviette.v1_pb.grpc-client.js +162 -0
- package/grpc/serviette.v1_pb.js +553 -0
- package/grpc/slowlane_pb.client.d.ts +61 -0
- package/grpc/slowlane_pb.client.js +41 -0
- package/grpc/slowlane_pb.d.ts +303 -0
- package/grpc/slowlane_pb.grpc-client.d.ts +64 -0
- package/grpc/slowlane_pb.grpc-client.js +44 -0
- package/grpc/slowlane_pb.js +185 -0
- package/grpc/teletubby_pb.client.d.ts +145 -0
- package/grpc/teletubby_pb.client.js +104 -0
- package/grpc/teletubby_pb.d.ts +634 -0
- package/grpc/teletubby_pb.grpc-client.d.ts +152 -0
- package/grpc/teletubby_pb.grpc-client.js +100 -0
- package/grpc/teletubby_pb.js +1264 -0
- package/helpers/arrayRemove.js +2 -6
- package/helpers/arrayUnique.js +2 -6
- package/helpers/average.js +2 -7
- package/helpers/callerMessageHelpers.d.ts +14 -0
- package/helpers/callerMessageHelpers.js +86 -0
- package/helpers/cleanObject.js +17 -19
- package/helpers/cleanObject.spec.d.ts +1 -0
- package/helpers/cleanObject.spec.js +53 -0
- package/helpers/enviroment.js +4 -11
- package/helpers/flattenCallsignsLookup.d.ts +1 -1
- package/helpers/flattenCallsignsLookup.js +1 -5
- package/helpers/flattenObject.js +1 -5
- package/helpers/flattenObject.spec.d.ts +1 -0
- package/helpers/flattenObject.spec.js +29 -0
- package/helpers/flattenOneOf.d.ts +67 -0
- package/helpers/flattenOneOf.js +29 -0
- package/helpers/flattenOneOf.spec.d.ts +1 -0
- package/helpers/flattenOneOf.spec.js +157 -0
- package/helpers/formatServiceUrl.js +1 -5
- package/helpers/formatServiceUrl.spec.d.ts +1 -0
- package/helpers/formatServiceUrl.spec.js +16 -0
- package/helpers/generateUUID.js +3 -7
- package/helpers/getSubscriptionsDifference.d.ts +3 -3
- package/helpers/getSubscriptionsDifference.js +6 -10
- package/helpers/getURLSearchParams.d.ts +2 -0
- package/helpers/getURLSearchParams.js +9 -0
- package/helpers/getURLSearchParams.spec.d.ts +1 -0
- package/helpers/getURLSearchParams.spec.js +19 -0
- package/helpers/getUniqueConfigKey.js +1 -6
- package/helpers/getUniqueId.js +3 -7
- package/helpers/getUnixTimeMs.js +1 -5
- package/helpers/index.d.ts +3 -1
- package/helpers/index.js +5 -15
- package/helpers/nanosecondToMillisecond.d.ts +1 -1
- package/helpers/nanosecondToMillisecond.js +11 -6
- package/helpers/nanosecondToMillisecond.spec.d.ts +1 -0
- package/helpers/nanosecondToMillisecond.spec.js +20 -0
- package/helpers/randomString.js +1 -5
- package/helpers/standardDeviation.js +4 -8
- package/helpers/standardDeviation.spec.d.ts +1 -0
- package/helpers/standardDeviation.spec.js +11 -0
- package/helpers/stringToUint8Array.js +3 -7
- package/helpers/uint8ArrayToString.js +3 -8
- package/helpers/websandbox/connection.d.ts +67 -0
- package/helpers/websandbox/connection.js +133 -0
- package/helpers/websandbox/frame/frame.d.ts +12 -0
- package/helpers/websandbox/frame/frame.js +22 -0
- package/helpers/websandbox/frame/frame.source.d.ts +2 -0
- package/helpers/websandbox/frame/frame.source.js +5 -0
- package/helpers/websandbox/frame/index.d.ts +2 -0
- package/helpers/websandbox/frame/index.js +2 -0
- package/helpers/websandbox/frame/worker/index.d.ts +2 -0
- package/helpers/websandbox/frame/worker/index.js +2 -0
- package/helpers/websandbox/frame/worker/manager.d.ts +11 -0
- package/helpers/websandbox/frame/worker/manager.js +67 -0
- package/helpers/websandbox/frame/worker/manager.spec.d.ts +4 -0
- package/helpers/websandbox/frame/worker/manager.spec.js +127 -0
- package/helpers/websandbox/frame/worker/types.d.ts +11 -0
- package/helpers/websandbox/frame/worker/types.js +1 -0
- package/helpers/websandbox/frame/worker/worker.d.ts +1 -0
- package/helpers/websandbox/frame/worker/worker.js +74 -0
- package/helpers/websandbox/frame/worker/worker.source.d.ts +2 -0
- package/helpers/websandbox/frame/worker/worker.source.js +4 -0
- package/helpers/websandbox/index.d.ts +2 -0
- package/helpers/websandbox/index.js +2 -0
- package/helpers/websandbox/sandbox.d.ts +57 -0
- package/helpers/websandbox/sandbox.js +175 -0
- package/helpers/websandbox/types.d.ts +13 -0
- package/helpers/websandbox/types.js +1 -0
- package/index.js +7 -19
- package/logger/RocosLogger.js +18 -44
- package/models/CallsignStatus.d.ts +6 -0
- package/models/CallsignStatus.js +7 -0
- package/models/ExportDataQuery.js +1 -5
- package/models/ExternalProject.js +1 -5
- package/models/IBaseService.d.ts +1 -0
- package/models/IBaseService.js +1 -2
- package/models/IConfigGroup.js +1 -2
- package/models/IDebugLevel.d.ts +1 -1
- package/models/IDebugLevel.js +1 -2
- package/models/IExportDataQuery.js +1 -2
- package/models/IFunctionConfig.js +1 -2
- package/models/IInvitation.d.ts +1 -1
- package/models/IInvitation.js +1 -2
- package/models/IInvitationExists.js +1 -2
- package/models/IOperation.js +1 -2
- package/models/IPersonalAccessToken.js +1 -2
- package/models/IProject.js +1 -2
- package/models/IProjectApplication.js +1 -2
- package/models/IRobot.d.ts +1 -0
- package/models/IRobot.js +1 -2
- package/models/IRobotConfig.js +1 -2
- package/models/IRobotPlugin.js +1 -2
- package/models/IRobotSettings.d.ts +28 -0
- package/models/IRobotSettings.js +1 -0
- package/models/IRobotTemplate.js +1 -2
- package/models/IRocosSDKConfig.d.ts +3 -9
- package/models/IRocosSDKConfig.js +1 -2
- package/models/ISource.js +1 -2
- package/models/IStream.js +1 -2
- package/models/IStreamConfig.js +1 -2
- package/models/IStreamOptions.js +1 -2
- package/models/IStreamSource.js +1 -2
- package/models/ISubscriberStatus.js +1 -2
- package/models/ITelemetryStreamConfig.js +1 -2
- package/models/IToken.d.ts +7 -3
- package/models/IToken.js +1 -2
- package/models/IWidget.js +1 -2
- package/models/IWidgetLineGroup.js +1 -2
- package/models/ResponseLevelEnum.d.ts +4 -0
- package/models/ResponseLevelEnum.js +6 -5
- package/models/Robot.d.ts +1 -0
- package/models/Robot.js +1 -5
- package/models/RobotConfig.js +1 -5
- package/models/RobotPlugin.js +1 -5
- package/models/RobotTemplate.js +9 -14
- package/models/RocosError.d.ts +1 -0
- package/models/RocosError.js +3 -6
- package/models/ServiceEnum.d.ts +2 -1
- package/models/ServiceEnum.js +3 -5
- package/models/Stream.js +4 -8
- package/models/StreamOptions.js +1 -5
- package/models/StreamSource.js +3 -7
- package/models/SubscriberStatusEnum.js +2 -5
- package/models/Token.d.ts +36 -4
- package/models/Token.js +74 -11
- package/models/Token.spec.d.ts +1 -0
- package/models/Token.spec.js +108 -0
- package/models/Widget.js +4 -8
- package/models/WidgetLineGroup.js +1 -5
- package/models/asset-storage/AssetModelItem.d.ts +3 -0
- package/models/asset-storage/AssetModelItem.js +1 -2
- package/models/caller/IRocosCallerMessageChunk.d.ts +8 -2
- package/models/caller/IRocosCallerMessageChunk.js +1 -2
- package/models/caller/IRocosCallerMessageChunks.d.ts +2 -3
- package/models/caller/IRocosCallerMessageChunks.js +1 -2
- package/models/caller/IRocosCallerMessageHeartbeat.d.ts +3 -2
- package/models/caller/IRocosCallerMessageHeartbeat.js +1 -2
- package/models/caller/IRocosCallerMessageResponse.d.ts +3 -2
- package/models/caller/IRocosCallerMessageResponse.js +1 -2
- package/models/caller/IRocosCallerMessageResponseAck.d.ts +16 -2
- package/models/caller/IRocosCallerMessageResponseAck.js +13 -2
- package/models/caller/IRocosCallerMessageResponseResult.d.ts +15 -2
- package/models/caller/IRocosCallerMessageResponseResult.js +12 -2
- package/models/caller/IRocosCallerMessageResponseReturn.d.ts +8 -0
- package/models/caller/IRocosCallerMessageResponseReturn.js +1 -0
- package/models/caller/IRocosCallerMessageResponseUid.d.ts +10 -2
- package/models/caller/IRocosCallerMessageResponseUid.js +7 -2
- package/models/caller/IRocosCallerMessageResponses.d.ts +2 -3
- package/models/caller/IRocosCallerMessageResponses.js +1 -2
- package/models/caller/RocosCallerResultStatus.d.ts +11 -1
- package/models/caller/RocosCallerResultStatus.js +12 -5
- package/models/caller/RocosResponseLevel.d.ts +6 -0
- package/models/caller/RocosResponseLevel.js +7 -0
- package/models/caller/index.d.ts +11 -0
- package/models/caller/index.js +11 -0
- package/models/callsigns/CallsignsEnums.d.ts +3 -3
- package/models/callsigns/CallsignsEnums.js +11 -14
- package/models/callsigns/CallsignsLookup.js +10 -15
- package/models/callsigns/CallsignsQuery.js +1 -5
- package/models/callsigns/CallsignsQueryPredicate.js +1 -5
- package/models/command/IRocosCommandMessageHeartbeat.d.ts +1 -2
- package/models/command/IRocosCommandMessageHeartbeat.js +1 -2
- package/models/command/IRocosCommandMessageResponse.d.ts +55 -2
- package/models/command/IRocosCommandMessageResponse.js +29 -2
- package/models/command/RocosCommandResultStatus.d.ts +11 -1
- package/models/command/RocosCommandResultStatus.js +12 -5
- package/models/command/index.d.ts +4 -0
- package/models/command/index.js +4 -0
- package/models/file/FileEnums.d.ts +4 -4
- package/models/file/FileEnums.js +9 -12
- package/models/index.d.ts +6 -31
- package/models/index.js +76 -113
- package/models/integrations/Overlay.js +1 -2
- package/models/integrations/Plan.js +1 -2
- package/models/maps/Map.d.ts +2 -3
- package/models/maps/Map.js +1 -2
- package/models/maps/Panorama.d.ts +36 -0
- package/models/maps/Panorama.js +1 -0
- package/models/message/IRocosCallerMessage.js +1 -2
- package/models/message/IRocosChangeMessage.js +1 -2
- package/models/message/IRocosCommandMessage.js +1 -2
- package/models/message/IRocosControlMessage.js +1 -2
- package/models/message/IRocosOpResultMessage.d.ts +2 -2
- package/models/message/IRocosOpResultMessage.js +1 -2
- package/models/message/IRocosSearchMessage.js +1 -2
- package/models/message/IRocosSearchRowMessage.js +1 -2
- package/models/message/IRocosSearchStatusMessage.js +1 -2
- package/models/message/IRocosTelemetryMessage.d.ts +12 -7
- package/models/message/IRocosTelemetryMessage.js +1 -2
- package/models/message/IStreamStatusMessage.js +1 -2
- package/models/message/RocosCallerMessage.d.ts +2 -4
- package/models/message/RocosCallerMessage.js +24 -15
- package/models/message/RocosCommandMessage.d.ts +2 -3
- package/models/message/RocosCommandMessage.js +5 -8
- package/models/message/RocosControlMessage.d.ts +1 -1
- package/models/message/RocosControlMessage.js +6 -10
- package/models/message/RocosOpResultMessage.d.ts +3 -2
- package/models/message/RocosOpResultMessage.js +6 -10
- package/models/message/RocosSearchMessage.d.ts +1 -1
- package/models/message/RocosSearchMessage.js +5 -9
- package/models/message/RocosSearchRowMessage.d.ts +1 -1
- package/models/message/RocosSearchRowMessage.js +8 -12
- package/models/message/RocosTelemetryMessage.d.ts +9 -23
- package/models/message/RocosTelemetryMessage.js +51 -93
- package/models/message/index.d.ts +17 -0
- package/models/message/index.js +17 -0
- package/models/params/ICallerParams.d.ts +12 -1
- package/models/params/ICallerParams.js +1 -2
- package/models/params/ICommandParams.js +1 -2
- package/models/params/IControlParams.d.ts +1 -1
- package/models/params/IControlParams.js +1 -2
- package/models/params/IFileAccessorParams.js +1 -2
- package/models/params/ISearchParams.js +1 -2
- package/models/params/ITelemetryParams.d.ts +1 -1
- package/models/params/ITelemetryParams.js +1 -2
- package/models/params/IWebRTCSignallingParams.js +1 -2
- package/models/projects/ProjectUser.js +1 -2
- package/models/schedule/IScheduleAction.d.ts +1 -1
- package/models/schedule/IScheduleAction.js +2 -5
- package/models/schedule/IScheduleInfo.js +1 -2
- package/models/schedule/IScheduleJob.js +1 -2
- package/models/search/SearchQueryFilter.js +1 -5
- package/models/search/SearchStreamQuery.js +1 -5
- package/models/stream/IBaseStream.js +1 -2
- package/models/stream/ICallerStream.js +1 -2
- package/models/stream/ICommandStream.js +1 -2
- package/models/stream/IControlStream.js +1 -2
- package/models/stream/IFileAccessorStream.d.ts +1 -2
- package/models/stream/IFileAccessorStream.js +1 -2
- package/models/stream/ISearchStream.js +1 -2
- package/models/stream/ITelemetryStream.js +1 -2
- package/models/stream/IWebRTCSignallingStream.d.ts +51 -16
- package/models/stream/IWebRTCSignallingStream.js +1 -7
- package/models/types.d.ts +5 -5
- package/models/types.js +1 -2
- package/models/workflow/Workflow.d.ts +36 -0
- package/models/workflow/Workflow.js +1 -0
- package/node/RocosSDKNode.d.ts +6 -1
- package/node/RocosSDKNode.js +82 -80
- package/node/index.js +7 -19
- package/package.json +10 -11
- package/services/AssetStorageService.d.ts +23 -1
- package/services/AssetStorageService.js +53 -24
- package/services/AuthService.d.ts +59 -27
- package/services/AuthService.js +167 -86
- package/services/AuthService.spec.d.ts +1 -0
- package/services/AuthService.spec.js +163 -0
- package/services/BaseServiceAbstract.d.ts +11 -13
- package/services/BaseServiceAbstract.js +18 -24
- package/services/BaseStreamService.d.ts +18 -0
- package/services/BaseStreamService.js +47 -0
- package/services/CallerService.d.ts +37 -17
- package/services/CallerService.js +86 -65
- package/services/CallerService.spec.d.ts +1 -0
- package/services/CallerService.spec.js +227 -0
- package/services/CallerServiceNode.js +4 -8
- package/services/CommandService.d.ts +5 -17
- package/services/CommandService.js +19 -62
- package/services/CommandServiceNode.js +4 -8
- package/services/ConfigGroupService.js +17 -21
- package/services/ControlService.d.ts +5 -17
- package/services/ControlService.js +22 -65
- package/services/ControlServiceNode.js +4 -8
- package/services/DashboardService.js +20 -24
- package/services/EvaluatorService.d.ts +11 -0
- package/services/EvaluatorService.js +28 -0
- package/services/EventService.js +13 -17
- package/services/FileAccessorService.d.ts +4 -18
- package/services/FileAccessorService.js +14 -62
- package/services/FileAccessorServiceNode.js +4 -8
- package/services/FunctionService.js +17 -21
- package/services/IntegrationService.js +14 -19
- package/services/MapService.d.ts +71 -25
- package/services/MapService.js +113 -40
- package/services/PlatformTimeService.js +8 -12
- package/services/PlatformTimeService.spec.d.ts +1 -0
- package/services/PlatformTimeService.spec.js +180 -0
- package/services/ProfileService.js +36 -40
- package/services/ProjectService.js +23 -27
- package/services/RobotService.d.ts +2 -6
- package/services/RobotService.js +48 -55
- package/services/ScheduleService.js +10 -14
- package/services/SearchService.d.ts +4 -17
- package/services/SearchService.js +24 -59
- package/services/SearchServiceNode.js +4 -8
- package/services/SpotProvisioningService.d.ts +1 -1
- package/services/SpotProvisioningService.js +16 -16
- package/services/SpotProvisioningServiceNode.d.ts +1 -1
- package/services/SpotProvisioningServiceNode.js +16 -16
- package/services/StreamService.js +26 -30
- package/services/TelemetryService.d.ts +15 -17
- package/services/TelemetryService.js +103 -93
- package/services/TelemetryService.spec.d.ts +1 -0
- package/services/TelemetryService.spec.js +37 -0
- package/services/TelemetryServiceNode.js +4 -8
- package/services/TimeSyncerService.js +9 -13
- package/services/UserService.js +37 -41
- package/services/WebRTCSignallingService.d.ts +4 -4
- package/services/WebRTCSignallingService.js +24 -27
- package/services/WorkflowService.d.ts +25 -29
- package/services/WorkflowService.js +39 -75
- package/services/index.d.ts +1 -0
- package/services/index.js +27 -38
- package/store/RocosStore.js +9 -15
- package/demo/angular/.editorconfig +0 -16
- package/demo/angular/.eslintignore +0 -4
- package/demo/angular/.eslintrc.json +0 -50
- package/demo/angular/README.md +0 -36
- package/demo/angular/angular.json +0 -132
- package/demo/angular/karma.conf.js +0 -44
- package/demo/angular/package.json +0 -41
- package/demo/angular/src/app/app.component.css +0 -0
- package/demo/angular/src/app/app.component.html +0 -9
- package/demo/angular/src/app/app.component.ts +0 -10
- package/demo/angular/src/app/app.module.ts +0 -38
- package/demo/angular/src/app/components/assets/assets.component.css +0 -0
- package/demo/angular/src/app/components/assets/assets.component.html +0 -29
- package/demo/angular/src/app/components/assets/assets.component.ts +0 -107
- package/demo/angular/src/app/components/auth/auth.component.css +0 -0
- package/demo/angular/src/app/components/auth/auth.component.html +0 -27
- package/demo/angular/src/app/components/auth/auth.component.ts +0 -33
- package/demo/angular/src/app/components/caller/caller.component.css +0 -0
- package/demo/angular/src/app/components/caller/caller.component.html +0 -22
- package/demo/angular/src/app/components/caller/caller.component.ts +0 -61
- package/demo/angular/src/app/components/command/command.component.css +0 -0
- package/demo/angular/src/app/components/command/command.component.html +0 -22
- package/demo/angular/src/app/components/command/command.component.ts +0 -60
- package/demo/angular/src/app/components/integrations/integrations.component.ts +0 -43
- package/demo/angular/src/app/components/robots/robots.component.css +0 -0
- package/demo/angular/src/app/components/robots/robots.component.html +0 -13
- package/demo/angular/src/app/components/robots/robots.component.ts +0 -26
- package/demo/angular/src/app/components/sdk/sdk.component.css +0 -0
- package/demo/angular/src/app/components/sdk/sdk.component.html +0 -43
- package/demo/angular/src/app/components/sdk/sdk.component.ts +0 -50
- package/demo/angular/src/app/components/subscription/subscription.component.css +0 -0
- package/demo/angular/src/app/components/subscription/subscription.component.html +0 -6
- package/demo/angular/src/app/components/subscription/subscription.component.ts +0 -40
- package/demo/angular/src/app/components/telemetry/telemetry.component.css +0 -0
- package/demo/angular/src/app/components/telemetry/telemetry.component.html +0 -19
- package/demo/angular/src/app/components/telemetry/telemetry.component.ts +0 -61
- package/demo/angular/src/app/components/token/token.component.css +0 -0
- package/demo/angular/src/app/components/token/token.component.html +0 -10
- package/demo/angular/src/app/components/token/token.component.ts +0 -18
- package/demo/angular/src/app/components/video/p2pvideo/index.ts +0 -646
- package/demo/angular/src/app/components/video/video-source.ts +0 -315
- package/demo/angular/src/app/components/video/video.component.css +0 -6
- package/demo/angular/src/app/components/video/video.component.html +0 -54
- package/demo/angular/src/app/components/video/video.component.ts +0 -151
- package/demo/angular/src/app/services/sdk.service.ts +0 -193
- package/demo/angular/src/assets/.gitkeep +0 -0
- package/demo/angular/src/assets/HKGrotesk-Bold.otf +0 -0
- package/demo/angular/src/assets/HKGrotesk-Regular.otf +0 -0
- package/demo/angular/src/assets/logo.svg +0 -16
- package/demo/angular/src/environments/environment.prod.ts +0 -3
- package/demo/angular/src/environments/environment.ts +0 -16
- package/demo/angular/src/favicon.ico +0 -0
- package/demo/angular/src/index.html +0 -15
- package/demo/angular/src/main.ts +0 -7
- package/demo/angular/src/polyfills.ts +0 -53
- package/demo/angular/src/styles.css +0 -198
- package/demo/angular/tsconfig.app.json +0 -15
- package/demo/angular/tsconfig.json +0 -39
- package/demo/html/README.md +0 -8
- package/demo/html/assets/HKGrotesk-Bold.otf +0 -0
- package/demo/html/assets/HKGrotesk-Regular.otf +0 -0
- package/demo/html/assets/logo.svg +0 -16
- package/demo/html/favicon.ico +0 -0
- package/demo/html/index.html +0 -416
- package/demo/html/rocos-js-sdk.js +0 -3
- package/demo/html/rocos-js-sdk.js.LICENSE.txt +0 -8
- package/demo/html/rocos-js-sdk.js.map +0 -1
- package/demo/html/styles.css +0 -190
- package/demo/node/README.md +0 -17
- package/demo/node/index.js +0 -134
- package/demo/node/package.json +0 -8
- package/demo/react/.env +0 -1
- package/demo/react/.env.dist +0 -1
- package/demo/react/.eslintrc.json +0 -46
- package/demo/react/README.md +0 -65
- package/demo/react/package.json +0 -60
- package/demo/react/public/favicon.ico +0 -0
- package/demo/react/public/index.html +0 -43
- package/demo/react/public/logo192.png +0 -0
- package/demo/react/public/logo512.png +0 -0
- package/demo/react/public/manifest.json +0 -25
- package/demo/react/public/robots.txt +0 -3
- package/demo/react/src/App.css +0 -190
- package/demo/react/src/App.tsx +0 -31
- package/demo/react/src/actions/index.ts +0 -8
- package/demo/react/src/actions/sdkActions.ts +0 -62
- package/demo/react/src/assets/HKGrotesk-Bold.otf +0 -0
- package/demo/react/src/assets/HKGrotesk-Regular.otf +0 -0
- package/demo/react/src/assets/logo.svg +0 -16
- package/demo/react/src/components/AuthForm.tsx +0 -76
- package/demo/react/src/components/CallerBox.tsx +0 -53
- package/demo/react/src/components/CallerForm.tsx +0 -98
- package/demo/react/src/components/CommandBox.tsx +0 -47
- package/demo/react/src/components/CommandForm.tsx +0 -98
- package/demo/react/src/components/RobotsForm.tsx +0 -51
- package/demo/react/src/components/SubscriptionBox.tsx +0 -55
- package/demo/react/src/components/TelemetryForm.tsx +0 -98
- package/demo/react/src/components/TokenForm.tsx +0 -39
- package/demo/react/src/config.json +0 -14
- package/demo/react/src/controllers/RocosSDKController.ts +0 -48
- package/demo/react/src/helpers/deepEqual.ts +0 -27
- package/demo/react/src/hooks/useInput.ts +0 -29
- package/demo/react/src/index.css +0 -11
- package/demo/react/src/index.tsx +0 -26
- package/demo/react/src/react-app-env.d.ts +0 -1
- package/demo/react/src/reducers/sdkReducer.ts +0 -133
- package/demo/react/src/reportWebVitals.ts +0 -15
- package/demo/react/src/selectors/sdkSelector.ts +0 -11
- package/demo/react/src/setupTests.ts +0 -5
- package/demo/react/src/store.ts +0 -14
- package/demo/react/tsconfig.json +0 -26
- package/demo/sdk-sizer/dist/sdk-sizer/3rdpartylicenses.txt +0 -975
- package/demo/sdk-sizer/dist/sdk-sizer/favicon.ico +0 -0
- package/demo/sdk-sizer/dist/sdk-sizer/index.html +0 -12
- package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js +0 -2
- package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js.map +0 -1
- package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js +0 -2
- package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js.map +0 -1
- package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js +0 -2
- package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js.map +0 -1
- package/demo/sdk-sizer/dist/sdk-sizer/stats.json +0 -1
- package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css +0 -2
- package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css.map +0 -1
- package/grpc/file-accessor/filagree_grpc_pb.d.ts +0 -41
- package/grpc/file-accessor/filagree_grpc_pb.js +0 -121
- package/grpc/file-accessor/filagree_pb.d.ts +0 -339
- package/grpc/file-accessor/filagree_pb.js +0 -2261
- package/grpc/file-accessor/filagree_pb_service.d.ts +0 -115
- package/grpc/file-accessor/filagree_pb_service.js +0 -257
- package/grpc/rambo/rambo.v1_grpc_pb.d.ts +0 -39
- package/grpc/rambo/rambo.v1_grpc_pb.js +0 -73
- package/grpc/rambo/rambo.v1_pb.d.ts +0 -365
- package/grpc/rambo/rambo.v1_pb.js +0 -2469
- package/grpc/rambo/rambo.v1_pb_service.d.ts +0 -76
- package/grpc/rambo/rambo.v1_pb_service.js +0 -138
- package/grpc/rambo/uri.v1_grpc_pb.d.ts +0 -1
- package/grpc/rambo/uri.v1_grpc_pb.js +0 -1
- package/grpc/rambo/uri.v1_pb.d.ts +0 -80
- package/grpc/rambo/uri.v1_pb.js +0 -563
- package/grpc/rambo/uri.v1_pb_service.d.ts +0 -3
- package/grpc/rambo/uri.v1_pb_service.js +0 -3
- package/grpc/robot-control/conker_grpc_pb.d.ts +0 -46
- package/grpc/robot-control/conker_grpc_pb.js +0 -143
- package/grpc/robot-control/conker_pb.d.ts +0 -168
- package/grpc/robot-control/conker_pb.js +0 -1287
- package/grpc/robot-control/conker_pb_service.d.ts +0 -126
- package/grpc/robot-control/conker_pb_service.js +0 -301
- package/grpc/serviette/common.v1_grpc_pb.d.ts +0 -1
- package/grpc/serviette/common.v1_grpc_pb.js +0 -1
- package/grpc/serviette/common.v1_pb.d.ts +0 -8
- package/grpc/serviette/common.v1_pb.js +0 -45
- package/grpc/serviette/common.v1_pb_service.d.ts +0 -3
- package/grpc/serviette/common.v1_pb_service.js +0 -3
- package/grpc/serviette/serviette.v1_grpc_pb.d.ts +0 -137
- package/grpc/serviette/serviette.v1_grpc_pb.js +0 -331
- package/grpc/serviette/serviette.v1_pb.d.ts +0 -884
- package/grpc/serviette/serviette.v1_pb.js +0 -6363
- package/grpc/serviette/serviette.v1_pb_service.d.ts +0 -278
- package/grpc/serviette/serviette.v1_pb_service.js +0 -699
- package/grpc/serviette/uri.v1_grpc_pb.d.ts +0 -1
- package/grpc/serviette/uri.v1_grpc_pb.js +0 -1
- package/grpc/serviette/uri.v1_pb.d.ts +0 -102
- package/grpc/serviette/uri.v1_pb.js +0 -741
- package/grpc/serviette/uri.v1_pb_service.d.ts +0 -3
- package/grpc/serviette/uri.v1_pb_service.js +0 -3
- package/grpc/slowlane/slowlane_grpc_pb.d.ts +0 -38
- package/grpc/slowlane/slowlane_grpc_pb.js +0 -132
- package/grpc/slowlane/slowlane_pb.d.ts +0 -373
- package/grpc/slowlane/slowlane_pb.js +0 -2908
- package/grpc/slowlane/slowlane_pb_service.d.ts +0 -112
- package/grpc/slowlane/slowlane_pb_service.js +0 -189
- package/grpc/teletubby/teletubby_grpc_pb.d.ts +0 -73
- package/grpc/teletubby/teletubby_grpc_pb.js +0 -231
- package/grpc/teletubby/teletubby_pb.d.ts +0 -647
- package/grpc/teletubby/teletubby_pb.js +0 -4786
- package/grpc/teletubby/teletubby_pb_service.d.ts +0 -193
- package/grpc/teletubby/teletubby_pb_service.js +0 -436
- package/grpc/video/pigeon_grpc_pb.d.ts +0 -59
- package/grpc/video/pigeon_grpc_pb.js +0 -180
- package/grpc/video/pigeon_pb.d.ts +0 -237
- package/grpc/video/pigeon_pb.js +0 -1775
- package/grpc/video/pigeon_pb_service.d.ts +0 -152
- package/grpc/video/pigeon_pb_service.js +0 -292
- package/models/ISignupParams.d.ts +0 -8
- package/models/ISignupParams.js +0 -2
- package/utils/axisangle.d.ts +0 -18
- package/utils/axisangle.js +0 -48
- package/utils/eulerangles.d.ts +0 -22
- package/utils/eulerangles.js +0 -133
- package/utils/helperfunctions.d.ts +0 -5
- package/utils/helperfunctions.js +0 -50
- package/utils/localtransform.d.ts +0 -17
- package/utils/localtransform.js +0 -50
- package/utils/localtransformtree.d.ts +0 -17
- package/utils/localtransformtree.js +0 -88
- package/utils/misc.d.ts +0 -17
- package/utils/misc.js +0 -23
- package/utils/positionvector.d.ts +0 -13
- package/utils/positionvector.js +0 -79
- package/utils/quaternion.d.ts +0 -20
- package/utils/quaternion.js +0 -62
- package/utils/rotationmatrix.d.ts +0 -23
- package/utils/rotationmatrix.js +0 -262
- package/utils/transformationmatrix.d.ts +0 -12
- package/utils/transformationmatrix.js +0 -123
- package/utils/vector3.d.ts +0 -11
- package/utils/vector3.js +0 -61
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const getSubscriptionsDifference = (before, after) => {
|
|
6
|
-
const toRemove = Object.assign({}, before);
|
|
7
|
-
const toAdd = Object.assign({}, after);
|
|
1
|
+
import { arrayRemove } from './arrayRemove';
|
|
2
|
+
export const getSubscriptionsDifference = (before, after) => {
|
|
3
|
+
const toRemove = { ...before };
|
|
4
|
+
const toAdd = { ...after };
|
|
8
5
|
Object.keys(before).forEach((key) => {
|
|
9
6
|
if (after[key]) {
|
|
10
|
-
toRemove[key] =
|
|
7
|
+
toRemove[key] = arrayRemove(toRemove[key], after[key]);
|
|
11
8
|
if (!toRemove[key].length) {
|
|
12
9
|
delete toRemove[key];
|
|
13
10
|
}
|
|
@@ -15,7 +12,7 @@ const getSubscriptionsDifference = (before, after) => {
|
|
|
15
12
|
});
|
|
16
13
|
Object.keys(after).forEach((key) => {
|
|
17
14
|
if (before[key]) {
|
|
18
|
-
toAdd[key] =
|
|
15
|
+
toAdd[key] = arrayRemove(toAdd[key], before[key]);
|
|
19
16
|
if (!toAdd[key].length) {
|
|
20
17
|
delete toAdd[key];
|
|
21
18
|
}
|
|
@@ -36,4 +33,3 @@ const getSubscriptionsDifference = (before, after) => {
|
|
|
36
33
|
},
|
|
37
34
|
};
|
|
38
35
|
};
|
|
39
|
-
exports.getSubscriptionsDifference = getSubscriptionsDifference;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const getURLSearchParams = (params) => {
|
|
2
|
+
if (params instanceof URLSearchParams)
|
|
3
|
+
return params;
|
|
4
|
+
const stringParams = Object.entries(params ?? {}).reduce((acc, [key, value]) => {
|
|
5
|
+
acc[key] = value.toString();
|
|
6
|
+
return acc;
|
|
7
|
+
}, {});
|
|
8
|
+
return new URLSearchParams(stringParams);
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getURLSearchParams } from './getURLSearchParams';
|
|
2
|
+
describe('getURLSearchParams', () => {
|
|
3
|
+
it('Should return the original param if URLSearchParams', () => {
|
|
4
|
+
const param = new URLSearchParams();
|
|
5
|
+
const searchParam = getURLSearchParams(param);
|
|
6
|
+
expect(searchParam).toBe(param);
|
|
7
|
+
});
|
|
8
|
+
it('Should a new URLSearchParams ', () => {
|
|
9
|
+
const param = {
|
|
10
|
+
foo: 'bar',
|
|
11
|
+
bar: true,
|
|
12
|
+
foobar: 123,
|
|
13
|
+
};
|
|
14
|
+
const searchParam = getURLSearchParams(param);
|
|
15
|
+
expect(searchParam.get('foo')).toBe('bar');
|
|
16
|
+
expect(searchParam.get('bar')).toBe('true');
|
|
17
|
+
expect(searchParam.get('foobar')).toBe('123');
|
|
18
|
+
});
|
|
19
|
+
});
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUniqueConfigKey = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Flattens and orders the sdk config props to make a unique key
|
|
6
3
|
*
|
|
7
4
|
* @param config - SDK config {@link IRocosSDKConfig}
|
|
8
5
|
*/
|
|
9
|
-
const getUniqueConfigKey = (config) => {
|
|
6
|
+
export const getUniqueConfigKey = (config) => {
|
|
10
7
|
return Object.keys(config)
|
|
11
8
|
.sort()
|
|
12
9
|
.map((item) => {
|
|
13
|
-
// @ts-ignore
|
|
14
10
|
return item !== 'token' ? `${item}:${config[item]}` : false;
|
|
15
11
|
})
|
|
16
12
|
.filter(Boolean)
|
|
17
13
|
.join();
|
|
18
14
|
};
|
|
19
|
-
exports.getUniqueConfigKey = getUniqueConfigKey;
|
package/helpers/getUniqueId.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUniqueId = void 0;
|
|
4
|
-
const flattenCallsignsLookup_1 = require("./flattenCallsignsLookup");
|
|
1
|
+
import { flattenCallsignsLookup } from './flattenCallsignsLookup';
|
|
5
2
|
/**
|
|
6
3
|
*
|
|
7
4
|
* @param projectId
|
|
@@ -9,7 +6,6 @@ const flattenCallsignsLookup_1 = require("./flattenCallsignsLookup");
|
|
|
9
6
|
* @param sources
|
|
10
7
|
* @param scope
|
|
11
8
|
*/
|
|
12
|
-
const getUniqueId = (projectId, callsignsLookup, sources, scope) => {
|
|
13
|
-
return [projectId, ...
|
|
9
|
+
export const getUniqueId = (projectId, callsignsLookup, sources, scope) => {
|
|
10
|
+
return [projectId, ...flattenCallsignsLookup(callsignsLookup), ...sources.sort(), scope].join();
|
|
14
11
|
};
|
|
15
|
-
exports.getUniqueId = getUniqueId;
|
package/helpers/getUnixTimeMs.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUnixTimeMs = void 0;
|
|
4
|
-
const getUnixTimeMs = (offsetMs, baseOn = new Date()) => {
|
|
1
|
+
export const getUnixTimeMs = (offsetMs, baseOn = new Date()) => {
|
|
5
2
|
const newDate = new Date(baseOn.getTime() + offsetMs);
|
|
6
3
|
return newDate.getTime(); // Convert date to ms.
|
|
7
4
|
};
|
|
8
|
-
exports.getUnixTimeMs = getUnixTimeMs;
|
package/helpers/index.d.ts
CHANGED
package/helpers/index.js
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./generateUUID"), exports);
|
|
14
|
-
__exportStar(require("./average"), exports);
|
|
15
|
-
__exportStar(require("./standardDeviation"), exports);
|
|
1
|
+
export * from './average';
|
|
2
|
+
export * from './standardDeviation';
|
|
3
|
+
export * from './generateUUID';
|
|
4
|
+
export * from './getURLSearchParams';
|
|
5
|
+
export * from './websandbox';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const nanosecondToMillisecond: (
|
|
1
|
+
export declare const nanosecondToMillisecond: (nano: number | string) => number;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const nanosecondToMillisecond = (
|
|
5
|
-
|
|
1
|
+
function isNumber(n) {
|
|
2
|
+
return typeof n === 'number';
|
|
3
|
+
}
|
|
4
|
+
export const nanosecondToMillisecond = (nano) => {
|
|
5
|
+
if (isNumber(nano)) {
|
|
6
|
+
return nano / 1e6;
|
|
7
|
+
}
|
|
8
|
+
if (nano.length < 16) {
|
|
9
|
+
return Number(nano) / 1e6;
|
|
10
|
+
}
|
|
11
|
+
return Number(nano.slice(0, -6) + '.' + nano.slice(-6));
|
|
6
12
|
};
|
|
7
|
-
exports.nanosecondToMillisecond = nanosecondToMillisecond;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { nanosecondToMillisecond } from './nanosecondToMillisecond';
|
|
2
|
+
describe('nanosecondToMillisecond', () => {
|
|
3
|
+
it.each `
|
|
4
|
+
input | expected
|
|
5
|
+
${'0.0001'} | ${0.0000000001}
|
|
6
|
+
${'1'} | ${0.000001}
|
|
7
|
+
${'1000000'} | ${1}
|
|
8
|
+
${'10000000'} | ${10}
|
|
9
|
+
${'-100000006'} | ${-100.000006}
|
|
10
|
+
${'1000000000000000000'} | ${1000000000000}
|
|
11
|
+
${'1234567891011100001'} | ${1234567891011.100001}
|
|
12
|
+
${'1234567891011100000'} | ${1234567891011.1}
|
|
13
|
+
${0.0001} | ${0.0000000001}
|
|
14
|
+
${1} | ${0.000001}
|
|
15
|
+
${1000000} | ${1}
|
|
16
|
+
${1000000000000001} | ${1000000000.000001}
|
|
17
|
+
`('should convert $input to $expected', ({ input, expected }) => {
|
|
18
|
+
expect(nanosecondToMillisecond(input)).toBe(expected);
|
|
19
|
+
});
|
|
20
|
+
});
|
package/helpers/randomString.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.randomString = void 0;
|
|
4
|
-
const randomString = () => {
|
|
1
|
+
export const randomString = () => {
|
|
5
2
|
return Math.random().toString(16).substr(2);
|
|
6
3
|
};
|
|
7
|
-
exports.randomString = randomString;
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const average_1 = require("./average");
|
|
5
|
-
const standardDeviation = (numbers) => {
|
|
6
|
-
const avg = average_1.average(numbers);
|
|
1
|
+
import { average } from './average';
|
|
2
|
+
export const standardDeviation = (numbers) => {
|
|
3
|
+
const avg = average(numbers);
|
|
7
4
|
const squareDiffs = numbers.map((value) => {
|
|
8
5
|
const diff = value - avg;
|
|
9
6
|
const sqrDiff = diff * diff;
|
|
10
7
|
return sqrDiff;
|
|
11
8
|
});
|
|
12
|
-
const avgSquareDiff =
|
|
9
|
+
const avgSquareDiff = average(squareDiffs);
|
|
13
10
|
const stdDev = Math.sqrt(avgSquareDiff);
|
|
14
11
|
return stdDev;
|
|
15
12
|
};
|
|
16
|
-
exports.standardDeviation = standardDeviation;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { standardDeviation } from './standardDeviation';
|
|
2
|
+
describe('standardDeviation', () => {
|
|
3
|
+
it('should calculate standard deviation correctly', () => {
|
|
4
|
+
let numbers = [10, 12, 23, 23, 16, 23, 21, 16];
|
|
5
|
+
let stdDev = standardDeviation(numbers);
|
|
6
|
+
expect(Math.abs(stdDev - 4.8989794855664)).toBeLessThan(0.000001);
|
|
7
|
+
numbers = [100, 12, 23, 23, 116, 23, 21, 162];
|
|
8
|
+
stdDev = standardDeviation(numbers);
|
|
9
|
+
expect(Math.abs(stdDev - 53.702886328394)).toBeLessThan(0.000001);
|
|
10
|
+
});
|
|
11
|
+
});
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.stringToUint8Array = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
const stringToUint8Array = (input) => {
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
export const stringToUint8Array = (input) => {
|
|
6
3
|
input = input ? input : '';
|
|
7
|
-
const buf = new
|
|
4
|
+
const buf = new Buffer(input);
|
|
8
5
|
const result = new Uint8Array(buf.length);
|
|
9
6
|
for (let i = 0; i < buf.length; i++) {
|
|
10
7
|
result[i] = buf[i];
|
|
11
8
|
}
|
|
12
9
|
return result;
|
|
13
10
|
};
|
|
14
|
-
exports.stringToUint8Array = stringToUint8Array;
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uint8ArrayToString = void 0;
|
|
4
|
-
const uint8ArrayToString = (arr) => {
|
|
1
|
+
export const uint8ArrayToString = (arr) => {
|
|
5
2
|
if (!arr) {
|
|
6
3
|
return '';
|
|
7
4
|
}
|
|
8
5
|
const strArr = [];
|
|
9
|
-
arr
|
|
6
|
+
arr?.forEach((element) => {
|
|
10
7
|
strArr.push(String.fromCharCode(element));
|
|
11
8
|
});
|
|
12
|
-
|
|
13
|
-
return str;
|
|
9
|
+
return strArr.join('');
|
|
14
10
|
};
|
|
15
|
-
exports.uint8ArrayToString = uint8ArrayToString;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { APIDeclaration } from './types';
|
|
2
|
+
export interface ConnectionOptions {
|
|
3
|
+
allowedSenderOrigin?: string;
|
|
4
|
+
debugMode: boolean;
|
|
5
|
+
}
|
|
6
|
+
type ListenerCallback = (e: MessageEvent<Message>) => void;
|
|
7
|
+
declare enum MessageType {
|
|
8
|
+
RESPONSE = "response",
|
|
9
|
+
MESSAGE = "message"
|
|
10
|
+
}
|
|
11
|
+
interface BaseMessageData {
|
|
12
|
+
type: MessageType;
|
|
13
|
+
callId: string;
|
|
14
|
+
}
|
|
15
|
+
interface ResponseData extends BaseMessageData {
|
|
16
|
+
type: MessageType.RESPONSE;
|
|
17
|
+
success: boolean;
|
|
18
|
+
result: unknown;
|
|
19
|
+
}
|
|
20
|
+
interface MessageData extends BaseMessageData {
|
|
21
|
+
type: MessageType.MESSAGE;
|
|
22
|
+
methodName: string;
|
|
23
|
+
arguments: unknown[];
|
|
24
|
+
}
|
|
25
|
+
type Message = MessageData | ResponseData;
|
|
26
|
+
export default class Connection<Local extends APIDeclaration<Local>, Remote extends APIDeclaration<Remote>> {
|
|
27
|
+
private readonly name;
|
|
28
|
+
private incrementalID;
|
|
29
|
+
private readonly options;
|
|
30
|
+
private readonly postMessageInternal;
|
|
31
|
+
private callbacks;
|
|
32
|
+
private serviceMethods;
|
|
33
|
+
constructor(name: string, postMessage: typeof window.postMessage, methods: Local, registerOnMessageListener: (listener: ListenerCallback) => void, options?: Partial<ConnectionOptions>);
|
|
34
|
+
/** Call a remote method
|
|
35
|
+
*
|
|
36
|
+
* returns a promise that resolves when the remote responds
|
|
37
|
+
*
|
|
38
|
+
* @param name - name of remote method to call
|
|
39
|
+
* @param args - arguments to pass to remote method
|
|
40
|
+
*/
|
|
41
|
+
callRemoteMethod<Method extends keyof Remote>(name: Method, ...args: Parameters<Remote[Method]>): Promise<ReturnType<Remote[Method]>>;
|
|
42
|
+
private onMessageListener;
|
|
43
|
+
private callLocalMethod;
|
|
44
|
+
/** Respond to remote call
|
|
45
|
+
*
|
|
46
|
+
* @param id - remote call ID
|
|
47
|
+
* @param result - result to pass to calling function
|
|
48
|
+
* @param success - whether the call was successful
|
|
49
|
+
*/
|
|
50
|
+
private responseOtherSide;
|
|
51
|
+
/** Store a callback to be called when the remote responds
|
|
52
|
+
*
|
|
53
|
+
* @param success - callback to be called on success
|
|
54
|
+
* @param failure - callback to be called on failure
|
|
55
|
+
*/
|
|
56
|
+
private registerCallback;
|
|
57
|
+
/** Calls and deletes stored callback
|
|
58
|
+
*
|
|
59
|
+
* @param callId - ID of callback to call
|
|
60
|
+
* @param success - whether the call was successful
|
|
61
|
+
* @param result - result of remote call
|
|
62
|
+
*/
|
|
63
|
+
private popCallback;
|
|
64
|
+
private postMessage;
|
|
65
|
+
private log;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var MessageType;
|
|
2
|
+
(function (MessageType) {
|
|
3
|
+
MessageType["RESPONSE"] = "response";
|
|
4
|
+
MessageType["MESSAGE"] = "message";
|
|
5
|
+
})(MessageType || (MessageType = {}));
|
|
6
|
+
const defaultOptions = {
|
|
7
|
+
allowedSenderOrigin: undefined,
|
|
8
|
+
debugMode: false,
|
|
9
|
+
};
|
|
10
|
+
export default class Connection {
|
|
11
|
+
constructor(name, postMessage, methods, registerOnMessageListener, options = {}) {
|
|
12
|
+
this.callbacks = new Map();
|
|
13
|
+
this.serviceMethods = new Map();
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.options = { ...defaultOptions, ...options };
|
|
16
|
+
this.log('Created connection w/ allowedOrigin:', this.options.allowedSenderOrigin);
|
|
17
|
+
this.serviceMethods = new Map(Object.entries(methods));
|
|
18
|
+
// Assign a random starting ID to this connection
|
|
19
|
+
const [id] = crypto.getRandomValues(new Uint32Array(1));
|
|
20
|
+
this.incrementalID = id;
|
|
21
|
+
this.postMessageInternal = postMessage;
|
|
22
|
+
registerOnMessageListener((e) => this.onMessageListener(e));
|
|
23
|
+
}
|
|
24
|
+
/** Call a remote method
|
|
25
|
+
*
|
|
26
|
+
* returns a promise that resolves when the remote responds
|
|
27
|
+
*
|
|
28
|
+
* @param name - name of remote method to call
|
|
29
|
+
* @param args - arguments to pass to remote method
|
|
30
|
+
*/
|
|
31
|
+
callRemoteMethod(name, ...args) {
|
|
32
|
+
this.log('Calling Remote Method', {
|
|
33
|
+
name,
|
|
34
|
+
args,
|
|
35
|
+
});
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
const id = this.registerCallback(resolve, reject);
|
|
38
|
+
this.postMessage({
|
|
39
|
+
callId: id,
|
|
40
|
+
type: MessageType.MESSAGE,
|
|
41
|
+
methodName: name,
|
|
42
|
+
arguments: args,
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
onMessageListener(e) {
|
|
47
|
+
this.log('Received message', e);
|
|
48
|
+
const { data } = e;
|
|
49
|
+
const { allowedSenderOrigin } = this.options;
|
|
50
|
+
if (allowedSenderOrigin && e.origin !== allowedSenderOrigin) {
|
|
51
|
+
console.warn(`Received message from invalid origin: ${e.origin}`);
|
|
52
|
+
}
|
|
53
|
+
switch (data.type) {
|
|
54
|
+
case MessageType.RESPONSE:
|
|
55
|
+
this.popCallback(data.callId, data.success, data.result);
|
|
56
|
+
return;
|
|
57
|
+
case MessageType.MESSAGE:
|
|
58
|
+
this.callLocalMethod(data.methodName, data.arguments)
|
|
59
|
+
.then((res) => this.responseOtherSide(data.callId, res))
|
|
60
|
+
.catch((err) => this.responseOtherSide(data.callId, err, false));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async callLocalMethod(methodName, args) {
|
|
64
|
+
this.log('calling local method', methodName, args);
|
|
65
|
+
const method = this.serviceMethods.get(methodName);
|
|
66
|
+
if (!method) {
|
|
67
|
+
throw new Error(`service method ${methodName} not found`);
|
|
68
|
+
}
|
|
69
|
+
return method(...args);
|
|
70
|
+
}
|
|
71
|
+
/** Respond to remote call
|
|
72
|
+
*
|
|
73
|
+
* @param id - remote call ID
|
|
74
|
+
* @param result - result to pass to calling function
|
|
75
|
+
* @param success - whether the call was successful
|
|
76
|
+
*/
|
|
77
|
+
responseOtherSide(id, result, success = true) {
|
|
78
|
+
this.log('responding to remote call', { id, result, success });
|
|
79
|
+
const doPost = (result) => {
|
|
80
|
+
this.postMessage({
|
|
81
|
+
callId: id,
|
|
82
|
+
type: MessageType.RESPONSE,
|
|
83
|
+
success,
|
|
84
|
+
result,
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
try {
|
|
88
|
+
doPost(result);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (err instanceof DOMException) {
|
|
92
|
+
doPost(JSON.parse(JSON.stringify(result)));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** Store a callback to be called when the remote responds
|
|
97
|
+
*
|
|
98
|
+
* @param success - callback to be called on success
|
|
99
|
+
* @param failure - callback to be called on failure
|
|
100
|
+
*/
|
|
101
|
+
registerCallback(success, failure) {
|
|
102
|
+
const id = (++this.incrementalID).toString();
|
|
103
|
+
this.log('registering callback for id', id);
|
|
104
|
+
this.callbacks.set(id, { success, failure });
|
|
105
|
+
return id;
|
|
106
|
+
}
|
|
107
|
+
/** Calls and deletes stored callback
|
|
108
|
+
*
|
|
109
|
+
* @param callId - ID of callback to call
|
|
110
|
+
* @param success - whether the call was successful
|
|
111
|
+
* @param result - result of remote call
|
|
112
|
+
*/
|
|
113
|
+
popCallback(callId, success, result) {
|
|
114
|
+
this.log('calling callback for id', callId, { success, result });
|
|
115
|
+
const callbacks = this.callbacks.get(callId);
|
|
116
|
+
if (success) {
|
|
117
|
+
callbacks?.success(result);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
callbacks?.failure(result);
|
|
121
|
+
}
|
|
122
|
+
this.callbacks.delete(callId);
|
|
123
|
+
}
|
|
124
|
+
postMessage(data, targetOrigin = '*') {
|
|
125
|
+
this.log('sending message', { data, targetOrigin });
|
|
126
|
+
this.postMessageInternal(data, targetOrigin);
|
|
127
|
+
}
|
|
128
|
+
log(...args) {
|
|
129
|
+
if (this.options.debugMode) {
|
|
130
|
+
console.debug(`[${this.name}]`, ...args);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Task } from '../types';
|
|
2
|
+
export interface FrameMethods {
|
|
3
|
+
startTask: (task: Task) => unknown;
|
|
4
|
+
}
|
|
5
|
+
declare class Frame {
|
|
6
|
+
private connection;
|
|
7
|
+
private workerManager;
|
|
8
|
+
constructor();
|
|
9
|
+
private runCode;
|
|
10
|
+
}
|
|
11
|
+
declare const frame: Frame;
|
|
12
|
+
export default frame;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// this file is bundled via webpack and included in the iframe source
|
|
2
|
+
import Connection from '../connection';
|
|
3
|
+
import WorkerManager from './worker';
|
|
4
|
+
class Frame {
|
|
5
|
+
constructor() {
|
|
6
|
+
const isDebugMode = !!window?.debugMode;
|
|
7
|
+
this.connection = new Connection('FRAME', window.parent.postMessage.bind(window.parent), {
|
|
8
|
+
startTask: this.runCode.bind(this),
|
|
9
|
+
}, (listener) => {
|
|
10
|
+
window.addEventListener('message', listener);
|
|
11
|
+
}, {
|
|
12
|
+
debugMode: isDebugMode,
|
|
13
|
+
});
|
|
14
|
+
void this.connection.callRemoteMethod('iframeInitialised');
|
|
15
|
+
this.workerManager = new WorkerManager();
|
|
16
|
+
}
|
|
17
|
+
async runCode(task) {
|
|
18
|
+
return this.workerManager.execute(task);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const frame = new Frame();
|
|
22
|
+
export default frame;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Auto-generated file
|
|
2
|
+
/* eslint-disable */
|
|
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)})();`;
|
|
5
|
+
export default source;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Task } from '../../types';
|
|
2
|
+
export default class Manager {
|
|
3
|
+
private worker;
|
|
4
|
+
private messageListeners;
|
|
5
|
+
constructor();
|
|
6
|
+
execute(task: Task): Promise<unknown>;
|
|
7
|
+
terminate(): void;
|
|
8
|
+
private runTask;
|
|
9
|
+
private createWorker;
|
|
10
|
+
private removeMessageListener;
|
|
11
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// this token (__WORKER_SOURCE__) is replaced by webpack with the source of the worker
|
|
2
|
+
const WORKER_SOURCE = '__WORKER_SOURCE__';
|
|
3
|
+
export default class Manager {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.messageListeners = new Map();
|
|
6
|
+
this.worker = this.createWorker();
|
|
7
|
+
}
|
|
8
|
+
async execute(task) {
|
|
9
|
+
const workerTask = {
|
|
10
|
+
...task,
|
|
11
|
+
contextVariable: task.contextVariable ?? 'ctx',
|
|
12
|
+
};
|
|
13
|
+
const result = this.runTask(workerTask);
|
|
14
|
+
const timeout = new Promise((_, reject) => {
|
|
15
|
+
const signal = AbortSignal.timeout(task.timeout);
|
|
16
|
+
signal.addEventListener('abort', () => {
|
|
17
|
+
reject(signal.reason);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
return Promise.race([result, timeout])
|
|
21
|
+
.catch((e) => {
|
|
22
|
+
if (e.name === 'TimeoutError') {
|
|
23
|
+
this.terminate();
|
|
24
|
+
}
|
|
25
|
+
throw e;
|
|
26
|
+
})
|
|
27
|
+
.finally(() => {
|
|
28
|
+
this.removeMessageListener(task.id);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
terminate() {
|
|
32
|
+
for (const listener of this.messageListeners.values()) {
|
|
33
|
+
this.worker.removeEventListener('message', listener);
|
|
34
|
+
}
|
|
35
|
+
this.worker.terminate();
|
|
36
|
+
this.worker = this.createWorker();
|
|
37
|
+
}
|
|
38
|
+
runTask(task) {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
const listener = (event) => {
|
|
41
|
+
const { data } = event;
|
|
42
|
+
if (data.id === task.id) {
|
|
43
|
+
if (data.success) {
|
|
44
|
+
resolve(data.result);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
reject(data.result);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
this.messageListeners.set(task.id, listener);
|
|
52
|
+
this.worker.addEventListener('message', listener);
|
|
53
|
+
this.worker.postMessage(task);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
createWorker() {
|
|
57
|
+
const blob = URL.createObjectURL(new Blob([WORKER_SOURCE], { type: 'application/javascript' }));
|
|
58
|
+
return new Worker(blob);
|
|
59
|
+
}
|
|
60
|
+
removeMessageListener(id) {
|
|
61
|
+
const listener = this.messageListeners.get(id);
|
|
62
|
+
if (!listener) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.worker.removeEventListener('message', listener);
|
|
66
|
+
}
|
|
67
|
+
}
|