@robotbas/robotcloud-client 0.2.22 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,7 +72,28 @@ var ClassifiersClient = class {
72
72
  });
73
73
  };
74
74
  this.getClassifier = (classifierId) => {
75
- return robotCloudApi_default.get(`classifiers/${classifierId}`);
75
+ return robotCloudApi_default.get(
76
+ `classifiers/${classifierId}`,
77
+ {}
78
+ );
79
+ };
80
+ this.putClassifier = (classifierId) => {
81
+ return robotCloudApi_default.put(
82
+ `classifiers/${classifierId}`,
83
+ {}
84
+ );
85
+ };
86
+ this.postClassifier = (classifierId) => {
87
+ return robotCloudApi_default.post(
88
+ `classifiers/${classifierId}`,
89
+ {}
90
+ );
91
+ };
92
+ this.deleteClassifier = (classifierId) => {
93
+ return robotCloudApi_default.delete(
94
+ `classifiers/${classifierId}`,
95
+ {}
96
+ );
76
97
  };
77
98
  }
78
99
  };
@@ -85,9 +106,24 @@ var DevicesClient = class {
85
106
  this.getProjectDevices = (projectId) => {
86
107
  return robotCloudApi_default.get(`projects/${projectId}/devices`);
87
108
  };
109
+ this.getProjectDevicesLocation = (locationId) => {
110
+ return robotCloudApi_default.get(`locations/${locationId}/devices`);
111
+ };
112
+ this.postProjectDeviceLocation = (locationId) => {
113
+ return robotCloudApi_default.post(`locations/${locationId}/devices`);
114
+ };
88
115
  this.getDeviceDetails = (deviceId) => {
89
116
  return robotCloudApi_default.get(`devices/${deviceId}`);
90
117
  };
118
+ this.putDeviceDetails = (deviceId) => {
119
+ return robotCloudApi_default.put(`devices/${deviceId}`);
120
+ };
121
+ this.deleteDevice = (deviceId) => {
122
+ return robotCloudApi_default.delete(`devices/${deviceId}`);
123
+ };
124
+ this.getDeviceConfiguration = (deviceId) => {
125
+ return robotCloudApi_default.get(`devices/${deviceId}/compatibleconfigurationtypes`);
126
+ };
91
127
  }
92
128
  };
93
129
  var devicesClient = new DevicesClient();
@@ -95,16 +131,16 @@ var devicesClient = new DevicesClient();
95
131
  // src/client/projects/locations.ts
96
132
  var LocationsClient = class {
97
133
  constructor() {
98
- this.getLocationServiceInstances = (prjId, locId, service_type, params) => {
134
+ this.getLocations = (prjId, params) => {
99
135
  return robotCloudApi_default.get(
100
- `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,
136
+ `projects/${prjId}/locations`,
101
137
  {
102
138
  params
103
139
  }
104
140
  );
105
141
  };
106
- this.getLocations = (prjId, params) => {
107
- return robotCloudApi_default.get(
142
+ this.postLocations = (prjId, params) => {
143
+ return robotCloudApi_default.post(
108
144
  `projects/${prjId}/locations`,
109
145
  {
110
146
  params
@@ -117,6 +153,18 @@ var LocationsClient = class {
117
153
  {}
118
154
  );
119
155
  };
156
+ this.putLocation = (locationId) => {
157
+ return robotCloudApi_default.put(
158
+ `locations/${locationId}`,
159
+ {}
160
+ );
161
+ };
162
+ this.deleteLocation = (locationId) => {
163
+ return robotCloudApi_default.delete(
164
+ `locations/${locationId}`,
165
+ {}
166
+ );
167
+ };
120
168
  }
121
169
  };
122
170
  var locationsClient = new LocationsClient();
@@ -124,6 +172,16 @@ var locationsClient = new LocationsClient();
124
172
  // src/client/projects/projects.ts
125
173
  var ProjectsClient = class {
126
174
  constructor() {
175
+ this.getOrganizationProjects = (organizationId) => {
176
+ return robotCloudApi_default.get(
177
+ `organizations/${organizationId}/projects`
178
+ );
179
+ };
180
+ this.postOrganizationProjects = (organizationId) => {
181
+ return robotCloudApi_default.post(
182
+ `organizations/${organizationId}/projects`
183
+ );
184
+ };
127
185
  this.getProjects = (params) => {
128
186
  return robotCloudApi_default.get("projects", {
129
187
  params
@@ -134,12 +192,36 @@ var ProjectsClient = class {
134
192
  params
135
193
  });
136
194
  };
137
- this.getProjectServiceTypes = (prjId, params) => {
195
+ this.putProjectDetails = (prjId, params) => {
196
+ return robotCloudApi_default.put(`projects/${prjId}`, {
197
+ params
198
+ });
199
+ };
200
+ this.deleteProject = (prjId, params) => {
201
+ return robotCloudApi_default.delete(`projects/${prjId}`, {
202
+ params
203
+ });
204
+ };
205
+ this.getProjectUsers = (prjId, params) => {
206
+ return robotCloudApi_default.get(`projects/${prjId}/users`, {
207
+ params
208
+ });
209
+ };
210
+ this.getProjectApplications = (prjId, params) => {
211
+ return robotCloudApi_default.get(`projects/${prjId}/applications`, {
212
+ params
213
+ });
214
+ };
215
+ this.getProjectApplication = (prjId, appId) => {
138
216
  return robotCloudApi_default.get(
139
- `projects/${prjId}/services`,
140
- {
141
- params
142
- }
217
+ `projects/${prjId}/applications/${appId}`,
218
+ {}
219
+ );
220
+ };
221
+ this.putProjectApplication = (prjId, appId) => {
222
+ return robotCloudApi_default.put(
223
+ `projects/${prjId}/applications/${appId}`,
224
+ {}
143
225
  );
144
226
  };
145
227
  }
@@ -166,67 +248,174 @@ var ServiceInstancesClient = class {
166
248
  }
167
249
  );
168
250
  };
169
- this.getServiceInstance = (prjId, service_type, service_id) => {
251
+ this.getProjectServiceTypes = (prjId, params) => {
170
252
  return robotCloudApi_default.get(
171
- `projects/${prjId}/services/${service_type}/instances/${service_id}`
253
+ `projects/${prjId}/services`,
254
+ {
255
+ params
256
+ }
172
257
  );
173
258
  };
174
- this.getServiceInstanceDevicesInfo = (prjId, service_type, service_id) => {
175
- return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);
259
+ this.getLocationServiceInstances = (prjId, locId, service_type, params) => {
260
+ return robotCloudApi_default.get(
261
+ `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,
262
+ {
263
+ params
264
+ }
265
+ );
266
+ };
267
+ this.postLocationServiceInstances = (prjId, locId, service_type, params) => {
268
+ return robotCloudApi_default.post(
269
+ `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,
270
+ {
271
+ params
272
+ }
273
+ );
274
+ };
275
+ this.getServiceInstance = (prjId, service_type, instance_id) => {
276
+ return robotCloudApi_default.get(
277
+ `projects/${prjId}/services/${service_type}/instances/${instance_id}`
278
+ );
279
+ };
280
+ this.putServiceInstance = (prjId, service_type, instance_id) => {
281
+ return robotCloudApi_default.put(
282
+ `projects/${prjId}/services/${service_type}/instances/${instance_id}`
283
+ );
284
+ };
285
+ this.deleteServiceInstance = (prjId, service_type, instance_id) => {
286
+ return robotCloudApi_default.delete(
287
+ `projects/${prjId}/services/${service_type}/instances/${instance_id}`
288
+ );
289
+ };
290
+ this.getServiceInstanceDevicesInfo = (prjId, service_type, instance_id) => {
291
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);
292
+ };
293
+ this.putServiceInstanceDevicesInfo = (prjId, service_type, instance_id) => {
294
+ return robotCloudApi_default.put(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);
176
295
  };
177
296
  }
178
297
  getServiceAllInstancesData(prjId, service_type) {
179
298
  return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/data`);
180
299
  }
300
+ getServiceInstancesData(prjId, service_type, instance_id) {
301
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${instance_id}/data`);
302
+ }
181
303
  getServiceAllInstancesAlerts(prjId, service_type) {
182
304
  return robotCloudApi_default.get(
183
305
  `projects/${prjId}/services/${service_type}/alert`
184
306
  );
185
307
  }
308
+ getServiceInstancesAlerts(prjId, service_type, instance_id) {
309
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${instance_id}/alert`);
310
+ }
311
+ getServiceInstancesConfiguration(prjId, service_type, instance_id) {
312
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);
313
+ }
314
+ putServiceInstancesConfiguration(prjId, service_type, instance_id) {
315
+ return robotCloudApi_default.put(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);
316
+ }
317
+ getServiceInstancesHistoricData(prjId, service_type, instance_id) {
318
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data`);
319
+ }
320
+ getServiceInstancesHistoricDataAggregate(prjId, service_type, instance_id) {
321
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data/aggregate`);
322
+ }
323
+ getServiceLocation(prjId, locationId) {
324
+ return robotCloudApi_default.get(
325
+ `projects/${prjId}/locations/${locationId}/services`
326
+ );
327
+ }
328
+ getSizeProjectInstances(prjId) {
329
+ return robotCloudApi_default.get(
330
+ `size/projects/${prjId}/instances`
331
+ );
332
+ }
333
+ getSizeProjectServicesInstances(prjId, service_type) {
334
+ return robotCloudApi_default.get(
335
+ `size/projects/${prjId}/services/${service_type}/instances`
336
+ );
337
+ }
186
338
  };
187
339
  var serviceInstancesClient = new ServiceInstancesClient();
188
340
 
189
341
  // src/client/projects/subsystems.ts
342
+ var logger5 = useLogger("service-instances-client");
190
343
  var SubsystemsClient = class {
191
344
  constructor() {
192
345
  this.getProjectSubsystems = (prjId) => {
346
+ logger5.info(`Get project ${prjId} subsystems`);
193
347
  return robotCloudApi_default.get(
194
348
  `projects/${prjId}/subsystems`
195
349
  );
196
350
  };
197
351
  this.getProjectSubsystem = (prjId, subsysId) => {
352
+ logger5.info(`Get subsystem ${subsysId} from project ${prjId}`);
198
353
  return robotCloudApi_default.get(
199
354
  `projects/${prjId}/subsystems/${subsysId}`
200
355
  );
201
356
  };
357
+ this.postProjectSubsystem = (prjId) => {
358
+ logger5.info(`Create subsystem in project ${prjId}`);
359
+ return robotCloudApi_default.post(
360
+ `projects/${prjId}/subsystems`
361
+ );
362
+ };
363
+ this.putProjectSubsystem = (prjId, subsysId) => {
364
+ logger5.info(`Update subsystem ${subsysId} in project ${prjId}`);
365
+ return robotCloudApi_default.put(
366
+ `projects/${prjId}/subsystems/${subsysId}`
367
+ );
368
+ };
369
+ this.deleteSubsystem = (prjId, subsysId) => {
370
+ logger5.info(`Delete subsystem ${subsysId} in project ${prjId}`);
371
+ return robotCloudApi_default.delete(`projects/${prjId}/subsystems/${subsysId}`);
372
+ };
373
+ this.getProjectSubsystemLocations = (prjId, subsysId) => {
374
+ logger5.info(`Get subsystems locations ${subsysId} in project ${prjId}`);
375
+ return robotCloudApi_default.get(
376
+ `projects/${prjId}/subsystems/${subsysId}/locations`
377
+ );
378
+ };
202
379
  }
203
380
  };
204
381
  var subsystemsClient = new SubsystemsClient();
205
382
 
206
383
  // src/client/projects/tags.ts
207
- var logger5 = useLogger("service-instances-client");
384
+ var logger6 = useLogger("service-instances-client");
208
385
  var TagsClient = class {
209
386
  constructor() {
210
387
  this.getTags = (prjId, params) => {
211
- logger5.info(`Get project ${prjId} tags`);
388
+ logger6.info(`Get project ${prjId} tags`);
212
389
  return robotCloudApi_default.get(`projects/${prjId}/tags`, {
213
390
  params
214
391
  });
215
392
  };
216
393
  this.getTag = (prjId, tagId) => {
217
- logger5.info(`Get project ${prjId} tag ${tagId}`);
394
+ logger6.info(`Get project ${prjId} tag ${tagId}`);
218
395
  return robotCloudApi_default.get(`tags/${tagId}`);
219
396
  };
397
+ this.postTag = (prjId) => {
398
+ logger6.info(`Create tag for project ${prjId}`);
399
+ return robotCloudApi_default.post(`projects/${prjId}/tags`);
400
+ };
401
+ this.putTag = (prjId, tagId) => {
402
+ logger6.info(`Modify project ${prjId} tag ${tagId}`);
403
+ return robotCloudApi_default.put(`tags/${tagId}`);
404
+ };
405
+ this.deleteTag = (prjId, tagId) => {
406
+ logger6.info(`Delete project ${prjId} tag ${tagId}`);
407
+ return robotCloudApi_default.delete(`tags/${tagId}`);
408
+ };
220
409
  }
221
410
  };
222
411
  var tagsClient = new TagsClient();
223
412
 
224
413
  // src/helpers/tags.ts
225
- var logger6 = useLogger("tags-helper");
414
+ var logger7 = useLogger("tags-helper");
226
415
  var TagsHelper = class {
227
416
  constructor(tagsClient2) {
228
417
  this.getTagsTree = async (prjId, maxDepth = 2, params) => {
229
- logger6.info(`Get project ${prjId} tags tree`);
418
+ logger7.info(`Get project ${prjId} tags tree`);
230
419
  if (!params) {
231
420
  params = {};
232
421
  }
@@ -241,7 +430,7 @@ var TagsHelper = class {
241
430
  return { root: tags };
242
431
  };
243
432
  this.getTagsChildren = async (prjId, level = 0, parent_id, params, maxDepth) => {
244
- logger6.debug(`Get project ${prjId} tags children: ${parent_id}`);
433
+ logger7.debug(`Get project ${prjId} tags children: ${parent_id}`);
245
434
  if (!params) {
246
435
  params = {};
247
436
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts","../../src/helpers/index.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails, RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\nimport { ServiceDataMeasurement } from \"../../../types/services\";\nimport { ServiceInstanceRead } from \"../../../types/ServiceInstanceRead\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getAll = (\n prjId: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);\n };\n\n getServiceAllInstancesData(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/data`);\n };\n\n getServiceAllInstancesAlerts(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceInstanceRead<any>[]>> {\n return robotcloudApi.get<ServiceInstanceRead<any>[]>(\n `projects/${prjId}/services/${service_type}/alert`);\n };\n\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudDescribedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystems = (prjId: string) => {\n return robotcloudApi.get<RobotCloudDescribedItem[]>(\n `projects/${prjId}/subsystems`\n );\n };\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n ): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = true;\n\n const tags = await this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n ): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await this.tagsClient.getTags(prjId, params);\n if (tags.data.length == 0) {\n return [];\n }\n\n const response: ProjectTagTreeNode[] = [];\n const requests: any[] = [];\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i];\n const node = {\n tag: element,\n } as ProjectTagTreeNode;\n response.push(node);\n if (maxDepth && level < maxDepth) {\n requests.push(\n this.getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n );\n }\n }\n\n const responses = await Promise.all(requests);\n let i = 0;\n responses.forEach((element) => {\n response[i].children = element;\n i++;\n });\n\n return response;\n };\n}\n","import { projectsClient } from \"client/projects\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await projectsClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["logger","logger","logger","logger","logger","tagsClient","i"]}
1
+ {"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts","../../src/helpers/index.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return '' }\n\n public tokenMinutesBeforeExpirationRenew: number = 20;\n\n\n set baseURL(value: string) {\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n\n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ClassifierCreate,\n ClassifierModify\n} from \"../../../types/ProjectClassifer\";\nimport {\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierDetails>> => {\n return robotcloudApi.get<ClassifierDetails>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n putClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierModify>> => {\n return robotcloudApi.put<ClassifierModify>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n postClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierCreate>> => {\n return robotcloudApi.post<ClassifierCreate>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n deleteClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudDeviceDetails, \n RobotCloudNamedItem,\n RobotCloudRobotCloudDeviceCreate,\n RobotCloudRobotCloudDeviceModify,\n RobotCloudDelete,\n RobotCloudDeviceConfiguration\n} from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n\n getProjectDevicesLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`locations/${locationId}/devices`);\n };\n\n postProjectDeviceLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceCreate>> => {\n return robotcloudApi.post<RobotCloudRobotCloudDeviceCreate>(`locations/${locationId}/devices`);\n };\n\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n\n putDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceModify>> => {\n return robotcloudApi.put<RobotCloudRobotCloudDeviceModify>(`devices/${deviceId}`);\n };\n\n deleteDevice = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`devices/${deviceId}`);\n };\n\n getDeviceConfiguration = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceConfiguration>> => {\n return robotcloudApi.get<RobotCloudDeviceConfiguration>(`devices/${deviceId}/compatibleconfigurationtypes`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance,\n CreateServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudLocationDetails,\n RobotCloudLocationModify,\n RobotCloudLocationCreate\n} from \"../../../types/ProjectLocation\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\nclass LocationsClient {\n \n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n postLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudLocationCreate[]>> => {\n return robotcloudApi.post<RobotCloudLocationCreate[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n\n putLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationModify>> => {\n return robotcloudApi.put<RobotCloudLocationModify>(\n `locations/${locationId}`,\n {}\n );\n };\n\n deleteLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudPutProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n RobotCloudDelete,\n RobotCloudProjectUsers,\n RobotCloudProjectInstances,\n RobotCloudProjectApplications,\n RobotCloudApplicationEnable,\n RobotCloudCreateProject\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n \n postOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudCreateProject>> => {\n return robotcloudApi.post<RobotCloudCreateProject>(\n `organizations/${organizationId}/projects`\n );\n };\n\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n putProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudPutProject>> => {\n return robotcloudApi.put<RobotCloudPutProject>(`projects/${prjId}`, {\n params,\n });\n };\n\n deleteProject = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectUsers = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectUsers>> => {\n return robotcloudApi.get<RobotCloudProjectUsers>(`projects/${prjId}/users`, {\n params,\n });\n };\n\n getProjectApplications = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectApplications[]>> => {\n return robotcloudApi.get<RobotCloudProjectApplications[]>(`projects/${prjId}/applications`, {\n params,\n });\n };\n\n getProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudProjectApplications>> => {\n return robotcloudApi.get<RobotCloudProjectApplications>(`projects/${prjId}/applications/${appId}`, \n {}\n );\n };\n\n putProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudApplicationEnable>> => {\n return robotcloudApi.put<RobotCloudApplicationEnable>(`projects/${prjId}/applications/${appId}`, \n {}\n );\n };\n\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n CreateServiceInstance,\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ModifyServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n ProjectSizeInstances\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudServiceTypeDetails,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\nimport { ServiceDataMeasurement } from \"../../../types/services\";\nimport { ServiceInstanceRead } from \"../../../types/ServiceInstanceRead\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n\n getAll = (\n prjId: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance>> => {\n return robotcloudApi.post<CreateServiceInstance>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n putServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<ModifyServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n deleteServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n putServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n getServiceAllInstancesData(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/data`);\n };\n\n getServiceInstancesData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/data`);\n };\n \n\n getServiceAllInstancesAlerts(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceInstanceRead<any>[]>> {\n return robotcloudApi.get<ServiceInstanceRead<any>[]>(\n `projects/${prjId}/services/${service_type}/alert`);\n };\n\n getServiceInstancesAlerts(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/alert`);\n };\n\n getServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n putServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.put<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n getServiceInstancesHistoricData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data`);\n };\n\n getServiceInstancesHistoricDataAggregate(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data/aggregate`);\n };\n\n getServiceLocation (\n prjId: string,\n locationId: string\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/locations/${locationId}/services`);\n };\n\n getSizeProjectInstances (\n prjId: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/instances`);\n };\n\n getSizeProjectServicesInstances (\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/services/${service_type}/instances`);\n };\n\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n putProjectSubsystem\n} from \"../../../types/ProjectSubsystem\";\nimport {\n ProjectLocations\n} from \"../../../types/ProjectLocation\";\nimport { RobotCloudDescribedItem, RobotCloudDelete } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass SubsystemsClient {\n getProjectSubsystems = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n logger.info(`Get project ${prjId} subsystems`);\n return robotcloudApi.get<RobotCloudDescribedItem[]>(\n `projects/${prjId}/subsystems`\n );\n };\n\n getProjectSubsystem = (\n prjId: string,\n subsysId: string\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Get subsystem ${subsysId} from project ${prjId}`);\n return robotcloudApi.get<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n postProjectSubsystem = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Create subsystem in project ${prjId}`);\n return robotcloudApi.post<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems`\n );\n };\n\n putProjectSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<putProjectSubsystem>> => {\n logger.info(`Update subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.put<putProjectSubsystem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n deleteSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}/subsystems/${subsysId}`);\n };\n\n getProjectSubsystemLocations = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<ProjectLocations>> => {\n logger.info(`Get subsystems locations ${subsysId} in project ${prjId}`);\n return robotcloudApi.get<ProjectLocations>(\n `projects/${prjId}/subsystems/${subsysId}/locations`\n );\n };\n\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n ProjectModifyTag,\n} from \"../../../types/ProjectTag\";\nimport {\n RobotCloudDelete,\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n\n getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n\n postTag = (\n prjId: string,\n ): Promise<AxiosResponse<ProjectTag>> => {\n logger.info(`Create tag for project ${prjId}`);\n return robotcloudApi.post<ProjectTag>(`projects/${prjId}/tags`);\n };\n\n putTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectModifyTag>> => {\n logger.info(`Modify project ${prjId} tag ${tagId}`);\n return robotcloudApi.put<ProjectModifyTag>(`tags/${tagId}`);\n };\n\n deleteTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete project ${prjId} tag ${tagId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`tags/${tagId}`);\n };\n\n}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n ): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = true;\n\n const tags = await this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n ): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await this.tagsClient.getTags(prjId, params);\n if (tags.data.length == 0) {\n return [];\n }\n\n const response: ProjectTagTreeNode[] = [];\n const requests: any[] = [];\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i];\n const node = {\n tag: element,\n } as ProjectTagTreeNode;\n response.push(node);\n if (maxDepth && level < maxDepth) {\n requests.push(\n this.getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n );\n }\n }\n\n const responses = await Promise.all(requests);\n let i = 0;\n responses.forEach((element) => {\n response[i].children = element;\n i++;\n });\n\n return response;\n };\n}\n","import { projectsClient } from \"client/projects\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await projectsClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["logger","logger","logger","logger","logger","logger","tagsClient","i"]}