@dronedeploy/rocos-js-sdk 3.0.1-alpha.39 → 3.0.1-alpha.41
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/constants/api.d.ts +6 -1
- package/cjs/constants/api.js +7 -2
- package/cjs/services/RTPWebRTCService.d.ts +5 -0
- package/cjs/services/RTPWebRTCService.js +6 -0
- package/cjs/services/WorkflowService.d.ts +18 -8
- package/cjs/services/WorkflowService.js +37 -11
- package/esm/constants/api.d.ts +6 -1
- package/esm/constants/api.js +6 -1
- package/esm/services/RTPWebRTCService.d.ts +5 -0
- package/esm/services/RTPWebRTCService.js +6 -0
- package/esm/services/WorkflowService.d.ts +18 -8
- package/esm/services/WorkflowService.js +38 -12
- package/package.json +1 -1
package/cjs/constants/api.d.ts
CHANGED
@@ -139,7 +139,12 @@ export declare const API_GRAPHS_ASSETS_URL = "https://{url}/graphs/projects/{pro
|
|
139
139
|
export declare const API_PROJECT_WORKFLOW_URL = "https://{url}/projects/{projectId}/automate/flows";
|
140
140
|
export declare const API_PROJECT_WORKFLOW_ID_URL = "https://{url}/projects/{projectId}/automate/flows/{workflowId}";
|
141
141
|
export declare const API_PROJECT_WORKFLOW_ASSET_URL = "https://{url}/projects/{projectId}/automate/flows/{workflowId}/assets";
|
142
|
-
export declare const
|
142
|
+
export declare const API_PROJECT_ROBOT_DEPLOYMENTS_URL = "https://{url}/projects/{projectId}/robot-definitions/{profileId}/robots/{callsign}/automate/flows/deployments";
|
143
|
+
export declare const API_PROJECT_PROFILE_DEPLOYMENTS_URL = "https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments";
|
144
|
+
export declare const API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL = "https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments";
|
145
|
+
export declare const API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL = "https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments/{workflowId}";
|
146
|
+
export declare const API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL = "https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments/{workflowId}";
|
147
|
+
export declare const API_PROJECT_WORKFLOW_AFFECTED_URL = "https://{url}/projects/{projectId}/automate/flows/{flowId}/robots";
|
143
148
|
export declare const API_LINKED_PROJECT_URL = "https://{url}/linked-projects/{linkedProjectId}";
|
144
149
|
export declare const API_DEVICE_CREDENTIALS_URL = "https://{url}/projects/{projectId}/callsigns/{callsign}/device-credentials";
|
145
150
|
export declare const API_DEVICE_CREDENTIALS_AUTH_URL = "https://{url}/device-credentials/auth";
|
package/cjs/constants/api.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.API_PROJECT_ROBOT_ATTRIBUTES_URL = exports.API_PROJECT_ROBOT_ID_URL = exports.API_PROJECT_ROBOT_URL = exports.API_PROJECT_MAPPED_ASSET_PATH_URL = exports.API_PROJECT_MAPPED_ASSETS_PATH_URL = exports.API_PROJECT_MISSION_ASSET_PATH_URL = exports.API_PROJECT_MISSION_ASSETS_PATH_URL = exports.API_PROJECT_FLOW_ASSET_PATH_URL = exports.API_PROJECT_ROBOT_ASSET_PATH_URL = exports.API_PROJECT_ASSET_INTEGRATION_PATH_URL = exports.API_PROJECT_ASSET_INTEGRATIONS_PATH_URL = exports.API_PROJECT_ASSET_INTEGRATION_PROVIDERS_PATH_URL = exports.API_PROJECT_ASSET_PROFILES_SYNC_DEFINITION_PATH_URL = exports.API_PROJECT_ASSET_ROBOTS_SYNC_DEFINITION_PATH_URL = exports.API_PROJECT_ASSET_PATH_URL = exports.API_PROJECT_ASSET_URL = exports.API_PROJECT_USERS_URL = exports.API_PROJECT_ID_URL = exports.API_PROJECT_URL = exports.API_ACCOUNT_EXTERNAL_PROJECTS_URL = exports.API_ACCOUNT_PROJECT_APPLICATION_ID_URL = exports.API_ACCOUNT_PROJECT_APPLICATION_URL = exports.API_ACCOUNT_PROJECT_USER_ID_URL = exports.API_ACCOUNT_PROJECT_USER_URL = exports.API_ACCOUNT_PROJECT_ID_URL = exports.API_ACCOUNT_PROJECT_URL = exports.API_SERVER_TIME_URL = exports.API_ACCOUNT_INTEGRATION_TYPE_URL = exports.API_ACCOUNT_INTEGRATION_URL = exports.API_ACCOUNT_SETTINGS_URL = exports.API_AUTH_USER_ACCOUNT_USER_ID_URL = exports.API_AUTH_USER_ACCOUNT_USER_URL = exports.API_ACCOUNT_ACTIVATE_URL = exports.API_ACCOUNT_ID_URL = exports.API_ACCOUNT_URL = exports.API_USER_PAT_TOKEN_URL = exports.API_USER_PAT_URL = exports.API_USER_VERIFY_EMAIL_URL = exports.API_USER_INVITATION_CHECK_URL = exports.API_USER_INVITATION_ACCEPT_URL = exports.API_USER_INVITATION_URL = exports.API_USER_PASSWORD_FORGOT_URL = exports.API_USER_PASSWORD_RESET_URL = exports.API_OTP_AUTH_URL = exports.API_OTP_URL = exports.API_USER_TOKEN_URL = exports.API_USER_AUTH_URL = exports.API_USER_URL = exports.API_ADMIN_USER_INVITATION_URL = exports.API_APPLICATION_AUTH_URL = void 0;
|
4
4
|
exports.API_PROJECT_STREAM_ID_URL = exports.API_PROJECT_STREAM_URL = exports.API_PROJECT_EXPORT_URL = exports.API_PROJECT_GROUP_TYPE_OWNER_OVERRIDE_URL = exports.API_PROJECT_GROUP_TYPE_OWNER_ID_URL = exports.API_PROJECT_GROUP_TYPE_VERSION_URL = exports.API_PROJECT_GROUP_TYPE_CONFIG_URL = exports.API_PROJECT_GROUP_TYPE_PUBLISH_URL = exports.API_PROJECT_GROUP_TYPE_ID_URL = exports.API_PROJECT_GROUP_TYPE_URL = exports.API_PROJECT_DEFINITION_IMPORT = exports.API_PROJECT_DEFINITION_EXPORT = exports.API_PROJECT_DEFINITION_GAMEPAD_URL = exports.API_PROJECT_DEFINITION_TRIGGER_URL = exports.API_PROJECT_DEFINITION_BUTTON_URL = exports.API_PROJECT_DEFINITION_ACTION_URL = exports.API_PROJECT_DEFINITION_EVENT_URL = exports.API_PROJECT_DEFINITION_COMMAND2_URL = exports.API_PROJECT_DEFINITION_COMMAND_URL = exports.API_PROJECT_DEFINITION_AGENT_URL = exports.API_PROJECT_DEFINITION_SETTING_URL = exports.API_PROJECT_DEFINITION_BLOB_URL = exports.API_PROJECT_DEFINITION_DASHBOARD_URL = exports.API_PROJECT_DEFINITION_COPY_URL = exports.API_PROJECT_DEFINITION_STREAM_URL = exports.API_PROJECT_DEFINITION_ID_URL = exports.API_PROJECT_DEFINITION_URL = exports.API_PROJECT_VROBOT_DEPLOY_URL = exports.API_PROJECT_VROBOT_DETAILS_URL = exports.API_PROJECT_COLLECTION_DOCS_URL = exports.API_PROJECT_COLLECTION_ID_URL = exports.API_PROJECT_DASHBOARD_CUSTOM_WIDGET_URL = exports.API_PROJECT_DASHBOARD_WIDGET_URL = exports.API_PROJECT_DASHBOARD_ID_URL = exports.API_PROJECT_DASHBOARD_URL = exports.API_PROJECT_OPERATION_ID_URL = exports.API_PROJECT_OPERATION_URL = exports.API_PROJECT_ROBOT_CONFIGS_CONNECTION_URL = exports.API_PROJECT_ROBOT_CONFIGS_CONNECTIONS_URL = exports.API_PROJECT_ROBOT_GAMEPAD_URL = exports.API_PROJECT_ROBOT_TRIGGER_URL = exports.API_PROJECT_ROBOT_BUTTON_URL = exports.API_PROJECT_ROBOT_COMMAND2_URL = exports.API_PROJECT_ROBOT_COMMAND_URL = exports.API_PROJECT_ROBOT_AGENT_URL = exports.API_PROJECT_ROBOT_SETTING_URL = exports.API_PROJECT_ROBOT_EVENT_HISTORY_URL = exports.API_PROJECT_ROBOT_EVENT_URL = exports.API_PROJECT_ROBOT_REGISTER_URL = exports.API_PROJECT_ROBOT_DEFINITION_URL = void 0;
|
5
|
-
exports.API_DEVICE_CREDENTIALS_AUTH_URL = exports.API_DEVICE_CREDENTIALS_URL = exports.API_LINKED_PROJECT_URL = exports.
|
5
|
+
exports.API_DEVICE_CREDENTIALS_AUTH_URL = exports.API_DEVICE_CREDENTIALS_URL = exports.API_LINKED_PROJECT_URL = exports.API_PROJECT_WORKFLOW_AFFECTED_URL = exports.API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL = exports.API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL = exports.API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL = exports.API_PROJECT_PROFILE_DEPLOYMENTS_URL = exports.API_PROJECT_ROBOT_DEPLOYMENTS_URL = exports.API_PROJECT_WORKFLOW_ASSET_URL = exports.API_PROJECT_WORKFLOW_ID_URL = exports.API_PROJECT_WORKFLOW_URL = exports.API_GRAPHS_ASSETS_URL = exports.API_GRAPHS_ASSETS_UPLOAD_URL = exports.API_GRAPHS_TARGETS_URL = exports.API_GRAPHS_TARGET_UPLOAD_URL = exports.API_GRAPHS_OBSERVATION_KEYS_URL = exports.API_GRAPHS_OBSERVATIONS_URL = exports.API_GRAPHS_PANORAMA_OBSERVATIONS_URL = exports.API_GRAPHS_PANORAMA = exports.API_GRAPHS_MAPS_GEOJSON_URL = exports.API_GRAPHS_MAPS_DEPLOY_URL = exports.API_GRAPHS_MAPS_COPY_URL = exports.API_GRAPHS_MAP_ID_URL = exports.API_GRAPHS_MAPS_MERGE_URL = exports.API_GRAPHS_MAPS_DEPLOYED_URL = exports.API_GRAPHS_MAPS_URL = exports.API_DD_INTEGRATION_LOCATIONS_URL = exports.API_DD_INTEGRATION_ISSUES_URL = exports.API_DD_INTEGRATION_OVERLAYS_URL = exports.API_DD_INTEGRATION_PLAN_BY_ID_URL = exports.API_DD_INTEGRATION_PLANS_URL = exports.API_SPOTTY_URL = exports.API_PROJECT_SCHEDULES_URL = exports.API_SOURCE_ID_URL = exports.API_SOURCE_URL = exports.API_SOURCE_SCHEMA_URL = exports.API_TEMPLATE_EXPORTER_URL = exports.API_TEMPLATE_PROVISION_ID_URL = exports.API_TEMPLATE_PROVISION_URL = exports.API_TEMPLATE_DEPLOY_URL = exports.API_PROJECT_PROFILE_DASHBOARD_CUSTOM_WIDGET_URL = exports.API_PROJECT_PROFILE_DASHBOARD_ID_URL = exports.API_PROJECT_PROFILE_DASHBOARD_URL = exports.API_PROJECT_CALLSIGN_STREAM_URL = exports.API_PROJECT_ROBOT_DASHBOARD_CUSTOM_WIDGET_URL = exports.API_PROJECT_ROBOT_DASHBOARD_ID_URL = exports.API_PROJECT_ROBOT_DASHBOARD_URL = exports.API_PROJECT_STREAM_CALLSIGN_URL = exports.API_PROJECT_STREAM_DATA_URL = void 0;
|
6
6
|
exports.API_APPLICATION_AUTH_URL = 'https://{url}/applications/auth';
|
7
7
|
exports.API_ADMIN_USER_INVITATION_URL = 'https://{url}/admin/users/invitations';
|
8
8
|
exports.API_USER_URL = 'https://{url}/users';
|
@@ -144,7 +144,12 @@ exports.API_GRAPHS_ASSETS_URL = 'https://{url}/graphs/projects/{projectId}/asset
|
|
144
144
|
exports.API_PROJECT_WORKFLOW_URL = 'https://{url}/projects/{projectId}/automate/flows';
|
145
145
|
exports.API_PROJECT_WORKFLOW_ID_URL = 'https://{url}/projects/{projectId}/automate/flows/{workflowId}';
|
146
146
|
exports.API_PROJECT_WORKFLOW_ASSET_URL = 'https://{url}/projects/{projectId}/automate/flows/{workflowId}/assets';
|
147
|
-
exports.
|
147
|
+
exports.API_PROJECT_ROBOT_DEPLOYMENTS_URL = 'https://{url}/projects/{projectId}/robot-definitions/{profileId}/robots/{callsign}/automate/flows/deployments';
|
148
|
+
exports.API_PROJECT_PROFILE_DEPLOYMENTS_URL = 'https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments';
|
149
|
+
exports.API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL = 'https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments';
|
150
|
+
exports.API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL = 'https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments/{workflowId}';
|
151
|
+
exports.API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL = 'https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments/{workflowId}';
|
152
|
+
exports.API_PROJECT_WORKFLOW_AFFECTED_URL = 'https://{url}/projects/{projectId}/automate/flows/{flowId}/robots';
|
148
153
|
exports.API_LINKED_PROJECT_URL = 'https://{url}/linked-projects/{linkedProjectId}';
|
149
154
|
exports.API_DEVICE_CREDENTIALS_URL = 'https://{url}/projects/{projectId}/callsigns/{callsign}/device-credentials';
|
150
155
|
exports.API_DEVICE_CREDENTIALS_AUTH_URL = 'https://{url}/device-credentials/auth';
|
@@ -35,6 +35,10 @@ export interface PeerConnectionParams {
|
|
35
35
|
projectId: string;
|
36
36
|
callsign: string;
|
37
37
|
logLevel?: 'trace';
|
38
|
+
mimeType?: {
|
39
|
+
video?: string;
|
40
|
+
audio?: string;
|
41
|
+
};
|
38
42
|
}
|
39
43
|
interface InternalPeerConnectionParams extends PeerConnectionParams {
|
40
44
|
endpoint: {
|
@@ -64,6 +68,7 @@ export declare class WebRTCConnection {
|
|
64
68
|
private readonly projectId;
|
65
69
|
private readonly callsign;
|
66
70
|
private readonly logLevel?;
|
71
|
+
private sendOfferOptions?;
|
67
72
|
private errorsSubject$;
|
68
73
|
private streamsSubject$;
|
69
74
|
private eventsSubject$;
|
@@ -51,6 +51,7 @@ class RTPWebRTCService extends BaseServiceAbstract_1.BaseServiceAbstract {
|
|
51
51
|
projectId: params.projectId,
|
52
52
|
callsign: params.callsign,
|
53
53
|
logLevel: params.logLevel,
|
54
|
+
mimeType: params.mimeType,
|
54
55
|
});
|
55
56
|
}
|
56
57
|
}
|
@@ -68,6 +69,10 @@ class WebRTCConnection {
|
|
68
69
|
this.projectId = params.projectId;
|
69
70
|
this.callsign = params.callsign;
|
70
71
|
this.logLevel = params.logLevel;
|
72
|
+
this.sendOfferOptions = {
|
73
|
+
audioMimeType: params.mimeType?.audio,
|
74
|
+
videoMimeType: params.mimeType?.video,
|
75
|
+
};
|
71
76
|
}
|
72
77
|
get peerConnectionAvailable() {
|
73
78
|
return !!this.pc;
|
@@ -148,6 +153,7 @@ class WebRTCConnection {
|
|
148
153
|
},
|
149
154
|
body: JSON.stringify({
|
150
155
|
sdp,
|
156
|
+
options: this.sendOfferOptions,
|
151
157
|
}),
|
152
158
|
})
|
153
159
|
.then((res) => res.json())
|
@@ -36,27 +36,37 @@ export declare class WorkflowService extends BaseServiceAbstract implements IBas
|
|
36
36
|
*/
|
37
37
|
update(projectId: string, workflowId: string, model: Workflow): Promise<Workflow>;
|
38
38
|
/**
|
39
|
-
*
|
39
|
+
* Delete a workflow
|
40
40
|
*
|
41
41
|
* @param projectId - Project Id
|
42
42
|
* @param workflowId - Workflow Id
|
43
|
-
* @param fileName - Name of file including extension
|
44
|
-
* @param arrayBuffer - data to upload
|
45
43
|
*/
|
46
|
-
|
47
|
-
protected uploadAssetWithHash(projectId: string, workflowId: string, fileName: string, arrayBuffer: ArrayBuffer, hash: string): Promise<void>;
|
44
|
+
delete(projectId: string, workflowId: string): Promise<void>;
|
48
45
|
/**
|
49
|
-
*
|
46
|
+
* Upload workflow asset
|
50
47
|
*
|
51
48
|
* @param projectId - Project Id
|
52
49
|
* @param workflowId - Workflow Id
|
50
|
+
* @param fileName - Name of file including extension
|
51
|
+
* @param arrayBuffer - data to upload
|
53
52
|
*/
|
54
|
-
|
53
|
+
uploadAsset(projectId: string, workflowId: string, fileName: string, arrayBuffer: ArrayBuffer): Promise<void>;
|
54
|
+
protected uploadAssetWithHash(projectId: string, workflowId: string, fileName: string, arrayBuffer: ArrayBuffer, hash: string): Promise<void>;
|
55
55
|
/**
|
56
56
|
* Get deployed workflows on robot
|
57
57
|
*
|
58
58
|
* @param projectId - Project Id
|
59
59
|
* @param callsign - Robot callsign
|
60
60
|
*/
|
61
|
-
getDeployedWorkflows(projectId: string,
|
61
|
+
getDeployedWorkflows(projectId: string, profileId: string, callsign?: string): Promise<Workflow[]>;
|
62
|
+
addRobotDeployment(projectId: string, callsign: string, workflowId: string): Promise<void>;
|
63
|
+
addProfileDeployment(projectId: string, profileId: string, workflowId: string): Promise<void>;
|
64
|
+
removeRobotDeployment(projectId: string, callsign: string, workflowId: string): Promise<void>;
|
65
|
+
removeProfileDeployment(projectId: string, profileId: string, workflowId: string): Promise<void>;
|
66
|
+
updateRobotDeployments(projectId: string, callsign: string, workflows: string[]): Promise<void>;
|
67
|
+
updateProfileDeployments(projectId: string, profileId: string, workflows: string[]): Promise<void>;
|
68
|
+
getAffectedRobots(projectId: string, workflowId: string): Promise<{
|
69
|
+
callsigns: string[];
|
70
|
+
profileIds: string[];
|
71
|
+
}>;
|
62
72
|
}
|
@@ -54,6 +54,16 @@ class WorkflowService extends BaseServiceAbstract_1.BaseServiceAbstract {
|
|
54
54
|
async update(projectId, workflowId, model) {
|
55
55
|
return this.callPut((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_WORKFLOW_ID_URL, { url: this.config.url, projectId, workflowId }, this.config.insecure), model, `Failed to update workflow for ${projectId}, workflowId ${workflowId}.`);
|
56
56
|
}
|
57
|
+
/**
|
58
|
+
* Delete a workflow
|
59
|
+
*
|
60
|
+
* @param projectId - Project Id
|
61
|
+
* @param workflowId - Workflow Id
|
62
|
+
*/
|
63
|
+
async delete(projectId, workflowId) {
|
64
|
+
return this.callDelete((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_WORKFLOW_ID_URL, { url: this.config.url, projectId, workflowId }, this.config.insecure), `Failed to delete workflow for ${projectId}, workflowId ${workflowId}.`);
|
65
|
+
}
|
66
|
+
// Assets
|
57
67
|
/**
|
58
68
|
* Upload workflow asset
|
59
69
|
*
|
@@ -85,23 +95,39 @@ class WorkflowService extends BaseServiceAbstract_1.BaseServiceAbstract {
|
|
85
95
|
if (uploadResponse.status !== 200)
|
86
96
|
throw new Error(`Failed to upload file: ${uploadResponse.statusText}`);
|
87
97
|
}
|
88
|
-
|
89
|
-
* Delete a workflow
|
90
|
-
*
|
91
|
-
* @param projectId - Project Id
|
92
|
-
* @param workflowId - Workflow Id
|
93
|
-
*/
|
94
|
-
async delete(projectId, workflowId) {
|
95
|
-
return this.callDelete((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_WORKFLOW_ID_URL, { url: this.config.url, projectId, workflowId }, this.config.insecure), `Failed to delete workflow for ${projectId}, workflowId ${workflowId}.`);
|
96
|
-
}
|
98
|
+
// Deployments
|
97
99
|
/**
|
98
100
|
* Get deployed workflows on robot
|
99
101
|
*
|
100
102
|
* @param projectId - Project Id
|
101
103
|
* @param callsign - Robot callsign
|
102
104
|
*/
|
103
|
-
async getDeployedWorkflows(projectId, callsign) {
|
104
|
-
|
105
|
+
async getDeployedWorkflows(projectId, profileId, callsign) {
|
106
|
+
if (callsign) {
|
107
|
+
return this.callGet((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_ROBOT_DEPLOYMENTS_URL, { url: this.config.url, projectId, profileId, callsign }, this.config.insecure), `Failed to get workflows for project ${projectId}, profile ${profileId}, callsign ${callsign}.`);
|
108
|
+
}
|
109
|
+
return this.callGet((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_PROFILE_DEPLOYMENTS_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), `Failed to get workflows for project ${projectId}, profile ${profileId}.`);
|
110
|
+
}
|
111
|
+
async addRobotDeployment(projectId, callsign, workflowId) {
|
112
|
+
return this.callPost((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, callsign, workflowId }, this.config.insecure), undefined, `Failed to add workflow for ${projectId}, callsign ${callsign}.`);
|
113
|
+
}
|
114
|
+
async addProfileDeployment(projectId, profileId, workflowId) {
|
115
|
+
return this.callPost((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, profileId, workflowId }, this.config.insecure), undefined, `Failed to add workflow for ${projectId}, profile ${profileId}.`);
|
116
|
+
}
|
117
|
+
async removeRobotDeployment(projectId, callsign, workflowId) {
|
118
|
+
return this.callDelete((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, callsign, workflowId }, this.config.insecure), `Failed to remove workflow for ${projectId}, callsign ${callsign}.`);
|
119
|
+
}
|
120
|
+
async removeProfileDeployment(projectId, profileId, workflowId) {
|
121
|
+
return this.callDelete((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, profileId, workflowId }, this.config.insecure), `Failed to remove workflow for ${projectId}, profile ${profileId}.`);
|
122
|
+
}
|
123
|
+
async updateRobotDeployments(projectId, callsign, workflows) {
|
124
|
+
return this.callPost((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), { deployed: workflows }, `Failed to update workflows for ${projectId}, callsign ${callsign}.`);
|
125
|
+
}
|
126
|
+
async updateProfileDeployments(projectId, profileId, workflows) {
|
127
|
+
return this.callPost((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_PROFILE_DEPLOYMENTS_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), { deployed: workflows }, `Failed to update workflows for ${projectId}, profile ${profileId}.`);
|
128
|
+
}
|
129
|
+
async getAffectedRobots(projectId, workflowId) {
|
130
|
+
return this.callGet((0, formatServiceUrl_1.formatServiceUrl)(api_1.API_PROJECT_WORKFLOW_AFFECTED_URL, { url: this.config.url, projectId, workflowId, flowId: workflowId }, this.config.insecure), `Failed to get affected robots for ${projectId}, workflowId ${workflowId}.`);
|
105
131
|
}
|
106
132
|
}
|
107
133
|
exports.WorkflowService = WorkflowService;
|
package/esm/constants/api.d.ts
CHANGED
@@ -139,7 +139,12 @@ export declare const API_GRAPHS_ASSETS_URL = "https://{url}/graphs/projects/{pro
|
|
139
139
|
export declare const API_PROJECT_WORKFLOW_URL = "https://{url}/projects/{projectId}/automate/flows";
|
140
140
|
export declare const API_PROJECT_WORKFLOW_ID_URL = "https://{url}/projects/{projectId}/automate/flows/{workflowId}";
|
141
141
|
export declare const API_PROJECT_WORKFLOW_ASSET_URL = "https://{url}/projects/{projectId}/automate/flows/{workflowId}/assets";
|
142
|
-
export declare const
|
142
|
+
export declare const API_PROJECT_ROBOT_DEPLOYMENTS_URL = "https://{url}/projects/{projectId}/robot-definitions/{profileId}/robots/{callsign}/automate/flows/deployments";
|
143
|
+
export declare const API_PROJECT_PROFILE_DEPLOYMENTS_URL = "https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments";
|
144
|
+
export declare const API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL = "https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments";
|
145
|
+
export declare const API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL = "https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments/{workflowId}";
|
146
|
+
export declare const API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL = "https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments/{workflowId}";
|
147
|
+
export declare const API_PROJECT_WORKFLOW_AFFECTED_URL = "https://{url}/projects/{projectId}/automate/flows/{flowId}/robots";
|
143
148
|
export declare const API_LINKED_PROJECT_URL = "https://{url}/linked-projects/{linkedProjectId}";
|
144
149
|
export declare const API_DEVICE_CREDENTIALS_URL = "https://{url}/projects/{projectId}/callsigns/{callsign}/device-credentials";
|
145
150
|
export declare const API_DEVICE_CREDENTIALS_AUTH_URL = "https://{url}/device-credentials/auth";
|
package/esm/constants/api.js
CHANGED
@@ -139,7 +139,12 @@ export const API_GRAPHS_ASSETS_URL = 'https://{url}/graphs/projects/{projectId}/
|
|
139
139
|
export const API_PROJECT_WORKFLOW_URL = 'https://{url}/projects/{projectId}/automate/flows';
|
140
140
|
export const API_PROJECT_WORKFLOW_ID_URL = 'https://{url}/projects/{projectId}/automate/flows/{workflowId}';
|
141
141
|
export const API_PROJECT_WORKFLOW_ASSET_URL = 'https://{url}/projects/{projectId}/automate/flows/{workflowId}/assets';
|
142
|
-
export const
|
142
|
+
export const API_PROJECT_ROBOT_DEPLOYMENTS_URL = 'https://{url}/projects/{projectId}/robot-definitions/{profileId}/robots/{callsign}/automate/flows/deployments';
|
143
|
+
export const API_PROJECT_PROFILE_DEPLOYMENTS_URL = 'https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments';
|
144
|
+
export const API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL = 'https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments';
|
145
|
+
export const API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL = 'https://{url}/projects/{projectId}/robot-definitions/{profileId}/automate/flows/deployments/{workflowId}';
|
146
|
+
export const API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL = 'https://{url}/projects/{projectId}/robots/{callsign}/automate/flows/deployments/{workflowId}';
|
147
|
+
export const API_PROJECT_WORKFLOW_AFFECTED_URL = 'https://{url}/projects/{projectId}/automate/flows/{flowId}/robots';
|
143
148
|
export const API_LINKED_PROJECT_URL = 'https://{url}/linked-projects/{linkedProjectId}';
|
144
149
|
export const API_DEVICE_CREDENTIALS_URL = 'https://{url}/projects/{projectId}/callsigns/{callsign}/device-credentials';
|
145
150
|
export const API_DEVICE_CREDENTIALS_AUTH_URL = 'https://{url}/device-credentials/auth';
|
@@ -35,6 +35,10 @@ export interface PeerConnectionParams {
|
|
35
35
|
projectId: string;
|
36
36
|
callsign: string;
|
37
37
|
logLevel?: 'trace';
|
38
|
+
mimeType?: {
|
39
|
+
video?: string;
|
40
|
+
audio?: string;
|
41
|
+
};
|
38
42
|
}
|
39
43
|
interface InternalPeerConnectionParams extends PeerConnectionParams {
|
40
44
|
endpoint: {
|
@@ -64,6 +68,7 @@ export declare class WebRTCConnection {
|
|
64
68
|
private readonly projectId;
|
65
69
|
private readonly callsign;
|
66
70
|
private readonly logLevel?;
|
71
|
+
private sendOfferOptions?;
|
67
72
|
private errorsSubject$;
|
68
73
|
private streamsSubject$;
|
69
74
|
private eventsSubject$;
|
@@ -48,6 +48,7 @@ export class RTPWebRTCService extends BaseServiceAbstract {
|
|
48
48
|
projectId: params.projectId,
|
49
49
|
callsign: params.callsign,
|
50
50
|
logLevel: params.logLevel,
|
51
|
+
mimeType: params.mimeType,
|
51
52
|
});
|
52
53
|
}
|
53
54
|
}
|
@@ -64,6 +65,10 @@ export class WebRTCConnection {
|
|
64
65
|
this.projectId = params.projectId;
|
65
66
|
this.callsign = params.callsign;
|
66
67
|
this.logLevel = params.logLevel;
|
68
|
+
this.sendOfferOptions = {
|
69
|
+
audioMimeType: params.mimeType?.audio,
|
70
|
+
videoMimeType: params.mimeType?.video,
|
71
|
+
};
|
67
72
|
}
|
68
73
|
get peerConnectionAvailable() {
|
69
74
|
return !!this.pc;
|
@@ -144,6 +149,7 @@ export class WebRTCConnection {
|
|
144
149
|
},
|
145
150
|
body: JSON.stringify({
|
146
151
|
sdp,
|
152
|
+
options: this.sendOfferOptions,
|
147
153
|
}),
|
148
154
|
})
|
149
155
|
.then((res) => res.json())
|
@@ -36,27 +36,37 @@ export declare class WorkflowService extends BaseServiceAbstract implements IBas
|
|
36
36
|
*/
|
37
37
|
update(projectId: string, workflowId: string, model: Workflow): Promise<Workflow>;
|
38
38
|
/**
|
39
|
-
*
|
39
|
+
* Delete a workflow
|
40
40
|
*
|
41
41
|
* @param projectId - Project Id
|
42
42
|
* @param workflowId - Workflow Id
|
43
|
-
* @param fileName - Name of file including extension
|
44
|
-
* @param arrayBuffer - data to upload
|
45
43
|
*/
|
46
|
-
|
47
|
-
protected uploadAssetWithHash(projectId: string, workflowId: string, fileName: string, arrayBuffer: ArrayBuffer, hash: string): Promise<void>;
|
44
|
+
delete(projectId: string, workflowId: string): Promise<void>;
|
48
45
|
/**
|
49
|
-
*
|
46
|
+
* Upload workflow asset
|
50
47
|
*
|
51
48
|
* @param projectId - Project Id
|
52
49
|
* @param workflowId - Workflow Id
|
50
|
+
* @param fileName - Name of file including extension
|
51
|
+
* @param arrayBuffer - data to upload
|
53
52
|
*/
|
54
|
-
|
53
|
+
uploadAsset(projectId: string, workflowId: string, fileName: string, arrayBuffer: ArrayBuffer): Promise<void>;
|
54
|
+
protected uploadAssetWithHash(projectId: string, workflowId: string, fileName: string, arrayBuffer: ArrayBuffer, hash: string): Promise<void>;
|
55
55
|
/**
|
56
56
|
* Get deployed workflows on robot
|
57
57
|
*
|
58
58
|
* @param projectId - Project Id
|
59
59
|
* @param callsign - Robot callsign
|
60
60
|
*/
|
61
|
-
getDeployedWorkflows(projectId: string,
|
61
|
+
getDeployedWorkflows(projectId: string, profileId: string, callsign?: string): Promise<Workflow[]>;
|
62
|
+
addRobotDeployment(projectId: string, callsign: string, workflowId: string): Promise<void>;
|
63
|
+
addProfileDeployment(projectId: string, profileId: string, workflowId: string): Promise<void>;
|
64
|
+
removeRobotDeployment(projectId: string, callsign: string, workflowId: string): Promise<void>;
|
65
|
+
removeProfileDeployment(projectId: string, profileId: string, workflowId: string): Promise<void>;
|
66
|
+
updateRobotDeployments(projectId: string, callsign: string, workflows: string[]): Promise<void>;
|
67
|
+
updateProfileDeployments(projectId: string, profileId: string, workflows: string[]): Promise<void>;
|
68
|
+
getAffectedRobots(projectId: string, workflowId: string): Promise<{
|
69
|
+
callsigns: string[];
|
70
|
+
profileIds: string[];
|
71
|
+
}>;
|
62
72
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL, API_PROJECT_PROFILE_DEPLOYMENTS_URL, API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL, API_PROJECT_ROBOT_DEPLOYMENTS_URL, API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL, API_PROJECT_WORKFLOW_AFFECTED_URL, API_PROJECT_WORKFLOW_ASSET_URL, API_PROJECT_WORKFLOW_ID_URL, API_PROJECT_WORKFLOW_URL, } from '../constants/api';
|
2
2
|
import { RocosError, errorCodes } from '../models/RocosError';
|
3
3
|
import { BaseServiceAbstract } from './BaseServiceAbstract';
|
4
4
|
import { RocosLogger } from '../logger/RocosLogger';
|
@@ -51,6 +51,16 @@ export class WorkflowService extends BaseServiceAbstract {
|
|
51
51
|
async update(projectId, workflowId, model) {
|
52
52
|
return this.callPut(formatServiceUrl(API_PROJECT_WORKFLOW_ID_URL, { url: this.config.url, projectId, workflowId }, this.config.insecure), model, `Failed to update workflow for ${projectId}, workflowId ${workflowId}.`);
|
53
53
|
}
|
54
|
+
/**
|
55
|
+
* Delete a workflow
|
56
|
+
*
|
57
|
+
* @param projectId - Project Id
|
58
|
+
* @param workflowId - Workflow Id
|
59
|
+
*/
|
60
|
+
async delete(projectId, workflowId) {
|
61
|
+
return this.callDelete(formatServiceUrl(API_PROJECT_WORKFLOW_ID_URL, { url: this.config.url, projectId, workflowId }, this.config.insecure), `Failed to delete workflow for ${projectId}, workflowId ${workflowId}.`);
|
62
|
+
}
|
63
|
+
// Assets
|
54
64
|
/**
|
55
65
|
* Upload workflow asset
|
56
66
|
*
|
@@ -82,22 +92,38 @@ export class WorkflowService extends BaseServiceAbstract {
|
|
82
92
|
if (uploadResponse.status !== 200)
|
83
93
|
throw new Error(`Failed to upload file: ${uploadResponse.statusText}`);
|
84
94
|
}
|
85
|
-
|
86
|
-
* Delete a workflow
|
87
|
-
*
|
88
|
-
* @param projectId - Project Id
|
89
|
-
* @param workflowId - Workflow Id
|
90
|
-
*/
|
91
|
-
async delete(projectId, workflowId) {
|
92
|
-
return this.callDelete(formatServiceUrl(API_PROJECT_WORKFLOW_ID_URL, { url: this.config.url, projectId, workflowId }, this.config.insecure), `Failed to delete workflow for ${projectId}, workflowId ${workflowId}.`);
|
93
|
-
}
|
95
|
+
// Deployments
|
94
96
|
/**
|
95
97
|
* Get deployed workflows on robot
|
96
98
|
*
|
97
99
|
* @param projectId - Project Id
|
98
100
|
* @param callsign - Robot callsign
|
99
101
|
*/
|
100
|
-
async getDeployedWorkflows(projectId, callsign) {
|
101
|
-
|
102
|
+
async getDeployedWorkflows(projectId, profileId, callsign) {
|
103
|
+
if (callsign) {
|
104
|
+
return this.callGet(formatServiceUrl(API_PROJECT_ROBOT_DEPLOYMENTS_URL, { url: this.config.url, projectId, profileId, callsign }, this.config.insecure), `Failed to get workflows for project ${projectId}, profile ${profileId}, callsign ${callsign}.`);
|
105
|
+
}
|
106
|
+
return this.callGet(formatServiceUrl(API_PROJECT_PROFILE_DEPLOYMENTS_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), `Failed to get workflows for project ${projectId}, profile ${profileId}.`);
|
107
|
+
}
|
108
|
+
async addRobotDeployment(projectId, callsign, workflowId) {
|
109
|
+
return this.callPost(formatServiceUrl(API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, callsign, workflowId }, this.config.insecure), undefined, `Failed to add workflow for ${projectId}, callsign ${callsign}.`);
|
110
|
+
}
|
111
|
+
async addProfileDeployment(projectId, profileId, workflowId) {
|
112
|
+
return this.callPost(formatServiceUrl(API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, profileId, workflowId }, this.config.insecure), undefined, `Failed to add workflow for ${projectId}, profile ${profileId}.`);
|
113
|
+
}
|
114
|
+
async removeRobotDeployment(projectId, callsign, workflowId) {
|
115
|
+
return this.callDelete(formatServiceUrl(API_PROJECT_ROBOT_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, callsign, workflowId }, this.config.insecure), `Failed to remove workflow for ${projectId}, callsign ${callsign}.`);
|
116
|
+
}
|
117
|
+
async removeProfileDeployment(projectId, profileId, workflowId) {
|
118
|
+
return this.callDelete(formatServiceUrl(API_PROJECT_PROFILE_DEPLOYED_WORKFLOW_URL, { url: this.config.url, projectId, profileId, workflowId }, this.config.insecure), `Failed to remove workflow for ${projectId}, profile ${profileId}.`);
|
119
|
+
}
|
120
|
+
async updateRobotDeployments(projectId, callsign, workflows) {
|
121
|
+
return this.callPost(formatServiceUrl(API_PROJECT_ROBOT_NO_PROFILE_DEPLOYMENTS_URL, { url: this.config.url, projectId, callsign }, this.config.insecure), { deployed: workflows }, `Failed to update workflows for ${projectId}, callsign ${callsign}.`);
|
122
|
+
}
|
123
|
+
async updateProfileDeployments(projectId, profileId, workflows) {
|
124
|
+
return this.callPost(formatServiceUrl(API_PROJECT_PROFILE_DEPLOYMENTS_URL, { url: this.config.url, projectId, profileId }, this.config.insecure), { deployed: workflows }, `Failed to update workflows for ${projectId}, profile ${profileId}.`);
|
125
|
+
}
|
126
|
+
async getAffectedRobots(projectId, workflowId) {
|
127
|
+
return this.callGet(formatServiceUrl(API_PROJECT_WORKFLOW_AFFECTED_URL, { url: this.config.url, projectId, workflowId, flowId: workflowId }, this.config.insecure), `Failed to get affected robots for ${projectId}, workflowId ${workflowId}.`);
|
102
128
|
}
|
103
129
|
}
|