@robotbas/robotcloud-client 0.2.2 → 0.2.3

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.
@@ -1,2 +1,2 @@
1
- export { E as RobotCloudPermissionsHelper, D as robotCloudPermissionsHelper, C as tagsHelper } from '../index-t7vP2gEL.mjs';
1
+ export { E as RobotCloudPermissionsHelper, D as robotCloudPermissionsHelper, C as tagsHelper } from '../index-DPCcpqPE.mjs';
2
2
  import 'axios';
@@ -1,2 +1,2 @@
1
- export { E as RobotCloudPermissionsHelper, D as robotCloudPermissionsHelper, C as tagsHelper } from '../index-t7vP2gEL.js';
1
+ export { E as RobotCloudPermissionsHelper, D as robotCloudPermissionsHelper, C as tagsHelper } from '../index-DPCcpqPE.js';
2
2
  import 'axios';
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as axios from 'axios';
2
2
  import { AxiosResponse } from 'axios';
3
- import { R as RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as RobotCloudDeviceDetails, l as RobotCloudNamedItem, m as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, n as ProjectLocationsRequestParams, o as ProjectsRequestParams, p as RobotCloudProject, q as ProjectDetailsRequestParams, r as RobotCloudProjectDetails, s as SubsystemRequestParams, t as RobotCloudServiceTypeDetails, u as ServiceInstancesRequestParams, v as AlertLogsListRequestParams, w as RobotCloudUserSimple, x as RobotCloudOrganizationDetails, y as RobotCloudUserDetails, z as RobotCloudUserProject } from './index-t7vP2gEL.mjs';
4
- export { K as AppAccessLevel, M as FancoilSpeedState, Q as MeasurementStatus, O as OrganizationAccessLevel, J as ProjectAccessLevel, I as ProjectTag, F as ProjectTagTreeNode, G as ProjectTagsTree, E as RobotCloudPermissionsHelper, N as RobotCloudUserAppAccess, U as ServiceInstanceRead, D as robotCloudPermissionsHelper, B as tagsClient, C as tagsHelper } from './index-t7vP2gEL.mjs';
3
+ import { R as RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as RobotCloudDeviceDetails, l as RobotCloudNamedItem, m as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, n as ProjectLocationsRequestParams, o as ProjectsRequestParams, p as RobotCloudProject, q as ProjectDetailsRequestParams, r as RobotCloudProjectDetails, s as SubsystemRequestParams, t as RobotCloudServiceTypeDetails, u as ServiceInstancesRequestParams, v as AlertLogsListRequestParams, w as RobotCloudUserSimple, x as RobotCloudOrganizationDetails, y as RobotCloudUserDetails, z as RobotCloudUserProject } from './index-DPCcpqPE.mjs';
4
+ export { K as AppAccessLevel, M as FancoilSpeedState, Q as MeasurementStatus, O as OrganizationAccessLevel, J as ProjectAccessLevel, I as ProjectTag, F as ProjectTagTreeNode, G as ProjectTagsTree, E as RobotCloudPermissionsHelper, N as RobotCloudUserAppAccess, U as ServiceInstanceRead, D as robotCloudPermissionsHelper, B as tagsClient, C as tagsHelper } from './index-DPCcpqPE.mjs';
5
5
 
6
6
  declare const robotcloudApi: axios.AxiosInstance;
7
7
 
@@ -225,7 +225,7 @@ interface ClassifierDetails extends Classifier {
225
225
 
226
226
  declare class ClassifiersClient {
227
227
  getProjectClassifiers: (prjId: string, params?: ProjectClassifiersRequestParams) => Promise<AxiosResponse<Classifier[]>>;
228
- getClassifier: (classifierId: string) => Promise<AxiosResponse<ClassifierDetails, any>>;
228
+ getClassifier: (classifierId: string) => Promise<AxiosResponse<ClassifierDetails, any, {}>>;
229
229
  }
230
230
  declare const classifiersClient: ClassifiersClient;
231
231
 
@@ -268,12 +268,12 @@ declare const projectsClient: ProjectsClient;
268
268
 
269
269
  declare class ServiceInstancesClient {
270
270
  getServiceInstances: (prjId: string, service_type: string, params?: ServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
271
- getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any>>;
271
+ getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any, {}>>;
272
272
  }
273
273
  declare const serviceInstancesClient: ServiceInstancesClient;
274
274
 
275
275
  declare class SubsystemsClient {
276
- getProjectSubsystem: (prjId: string, subsysId: string) => Promise<axios.AxiosResponse<RobotCloudNamedItem, any>>;
276
+ getProjectSubsystem: (prjId: string, subsysId: string) => Promise<axios.AxiosResponse<RobotCloudNamedItem, any, {}>>;
277
277
  }
278
278
  declare const subsystemsClient: SubsystemsClient;
279
279
 
@@ -299,7 +299,7 @@ interface AlertLogLine {
299
299
  interface AlertsLogsList {
300
300
  total_size: number;
301
301
  initial_index: number;
302
- alerts: AlertLogLine;
302
+ alerts: AlertLogLine[];
303
303
  }
304
304
  interface AlertLogAckItem {
305
305
  id: string;
@@ -324,4 +324,4 @@ declare class UsersClient {
324
324
  }
325
325
  declare const usersClient: UsersClient;
326
326
 
327
- export { AirQuality1AlertEventValue, AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceInstanceConfigClient, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, ServiceTypeClient, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
327
+ export { AirQuality1AlertEventValue, AirQuality1DataEventValue, type AlertsClient, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceInstanceConfigClient, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, ServiceTypeClient, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as axios from 'axios';
2
2
  import { AxiosResponse } from 'axios';
3
- import { R as RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as RobotCloudDeviceDetails, l as RobotCloudNamedItem, m as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, n as ProjectLocationsRequestParams, o as ProjectsRequestParams, p as RobotCloudProject, q as ProjectDetailsRequestParams, r as RobotCloudProjectDetails, s as SubsystemRequestParams, t as RobotCloudServiceTypeDetails, u as ServiceInstancesRequestParams, v as AlertLogsListRequestParams, w as RobotCloudUserSimple, x as RobotCloudOrganizationDetails, y as RobotCloudUserDetails, z as RobotCloudUserProject } from './index-t7vP2gEL.js';
4
- export { K as AppAccessLevel, M as FancoilSpeedState, Q as MeasurementStatus, O as OrganizationAccessLevel, J as ProjectAccessLevel, I as ProjectTag, F as ProjectTagTreeNode, G as ProjectTagsTree, E as RobotCloudPermissionsHelper, N as RobotCloudUserAppAccess, U as ServiceInstanceRead, D as robotCloudPermissionsHelper, B as tagsClient, C as tagsHelper } from './index-t7vP2gEL.js';
3
+ import { R as RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as RobotCloudDeviceDetails, l as RobotCloudNamedItem, m as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, n as ProjectLocationsRequestParams, o as ProjectsRequestParams, p as RobotCloudProject, q as ProjectDetailsRequestParams, r as RobotCloudProjectDetails, s as SubsystemRequestParams, t as RobotCloudServiceTypeDetails, u as ServiceInstancesRequestParams, v as AlertLogsListRequestParams, w as RobotCloudUserSimple, x as RobotCloudOrganizationDetails, y as RobotCloudUserDetails, z as RobotCloudUserProject } from './index-DPCcpqPE.js';
4
+ export { K as AppAccessLevel, M as FancoilSpeedState, Q as MeasurementStatus, O as OrganizationAccessLevel, J as ProjectAccessLevel, I as ProjectTag, F as ProjectTagTreeNode, G as ProjectTagsTree, E as RobotCloudPermissionsHelper, N as RobotCloudUserAppAccess, U as ServiceInstanceRead, D as robotCloudPermissionsHelper, B as tagsClient, C as tagsHelper } from './index-DPCcpqPE.js';
5
5
 
6
6
  declare const robotcloudApi: axios.AxiosInstance;
7
7
 
@@ -225,7 +225,7 @@ interface ClassifierDetails extends Classifier {
225
225
 
226
226
  declare class ClassifiersClient {
227
227
  getProjectClassifiers: (prjId: string, params?: ProjectClassifiersRequestParams) => Promise<AxiosResponse<Classifier[]>>;
228
- getClassifier: (classifierId: string) => Promise<AxiosResponse<ClassifierDetails, any>>;
228
+ getClassifier: (classifierId: string) => Promise<AxiosResponse<ClassifierDetails, any, {}>>;
229
229
  }
230
230
  declare const classifiersClient: ClassifiersClient;
231
231
 
@@ -268,12 +268,12 @@ declare const projectsClient: ProjectsClient;
268
268
 
269
269
  declare class ServiceInstancesClient {
270
270
  getServiceInstances: (prjId: string, service_type: string, params?: ServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
271
- getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any>>;
271
+ getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any, {}>>;
272
272
  }
273
273
  declare const serviceInstancesClient: ServiceInstancesClient;
274
274
 
275
275
  declare class SubsystemsClient {
276
- getProjectSubsystem: (prjId: string, subsysId: string) => Promise<axios.AxiosResponse<RobotCloudNamedItem, any>>;
276
+ getProjectSubsystem: (prjId: string, subsysId: string) => Promise<axios.AxiosResponse<RobotCloudNamedItem, any, {}>>;
277
277
  }
278
278
  declare const subsystemsClient: SubsystemsClient;
279
279
 
@@ -299,7 +299,7 @@ interface AlertLogLine {
299
299
  interface AlertsLogsList {
300
300
  total_size: number;
301
301
  initial_index: number;
302
- alerts: AlertLogLine;
302
+ alerts: AlertLogLine[];
303
303
  }
304
304
  interface AlertLogAckItem {
305
305
  id: string;
@@ -324,4 +324,4 @@ declare class UsersClient {
324
324
  }
325
325
  declare const usersClient: UsersClient;
326
326
 
327
- export { AirQuality1AlertEventValue, AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceInstanceConfigClient, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, ServiceTypeClient, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
327
+ export { AirQuality1AlertEventValue, AirQuality1DataEventValue, type AlertsClient, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceInstanceConfigClient, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, ServiceTypeClient, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
package/dist/index.js CHANGED
@@ -28,8 +28,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
30
  // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
33
  RobotCloudClientConfig: () => RobotCloudClientConfig,
34
34
  RoomClimeClient: () => RoomClimeClient,
35
35
  airQualityClient: () => airQualityClient,
@@ -52,7 +52,7 @@ __export(src_exports, {
52
52
  tagsHelper: () => tagsHelper,
53
53
  usersClient: () => usersClient
54
54
  });
55
- module.exports = __toCommonJS(src_exports);
55
+ module.exports = __toCommonJS(index_exports);
56
56
 
57
57
  // src/robotCloudApi.ts
58
58
  var import_axios = __toESM(require("axios"));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.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/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.ts"],"sourcesContent":["import robotcloudApi from \"robotCloudApi\"\nimport clientConfig from \"config\"\n\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\nexport * from \"client/projects\"\nexport * from \"client/alerts\"\nexport * from \"client/organizations\"\nexport * from \"client/users\"\nexport * from \"config\"\n\nexport * from \"helpers\"\nexport {\n robotcloudApi,\n clientConfig\n}\n\nexport type * from \"../types/ProjectClassifer\"\nexport type * from \"../types/ProjectTag\"\nexport type * from \"../types/RobotCloudClient\"\nexport type * from \"../types/services\"\nexport type * from \"../types/services-configuration\"\nexport type * from \"../types/services-data\"\nexport type * from \"../types/ServiceInstance\"\nexport type * from \"../types/ServiceInstanceRead\"\nexport type * from \"../types/Token\"\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 { 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 { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const needRenew = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T>\r\n{\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n { new_config }\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n {\n params,\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\");\n }\n}\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","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 } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\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} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\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\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\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} 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}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertLogsListRequestParams } from \"../../types/request-params\";\r\n\r\ninterface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\ninterface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine;\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\ninterface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.put<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n data,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\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":["axios","import_axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.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/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.ts"],"sourcesContent":["import robotcloudApi from \"robotCloudApi\"\nimport clientConfig from \"config\"\n\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\nexport * from \"client/projects\"\nexport * from \"client/alerts\"\nexport * from \"client/organizations\"\nexport * from \"client/users\"\nexport * from \"config\"\n\nexport * from \"helpers\"\nexport {\n robotcloudApi,\n clientConfig\n}\n\nexport type * from \"../types/ProjectClassifer\"\nexport type * from \"../types/ProjectTag\"\nexport type * from \"../types/RobotCloudClient\"\nexport type * from \"../types/services\"\nexport type * from \"../types/services-configuration\"\nexport type * from \"../types/services-data\"\nexport type * from \"../types/ServiceInstance\"\nexport type * from \"../types/ServiceInstanceRead\"\nexport type * from \"../types/Token\"\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 { 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 { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const needRenew = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T>\r\n{\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n { new_config }\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n {\n params,\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\");\n }\n}\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","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 } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\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} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\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\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\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} 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}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertLogsListRequestParams } from \"../../types/request-params\";\r\n\r\ninterface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\ninterface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine[];\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\nexport interface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.put<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n data,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\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":["axios","import_axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.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/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.ts"],"sourcesContent":["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 { 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 { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const needRenew = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T>\r\n{\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n { new_config }\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n {\n params,\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\");\n }\n}\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","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 } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\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} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\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\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\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} 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}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertLogsListRequestParams } from \"../../types/request-params\";\r\n\r\ninterface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\ninterface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine;\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\ninterface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.put<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n data,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\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":["axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
1
+ {"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.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/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.ts"],"sourcesContent":["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 { 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 { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const needRenew = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T>\r\n{\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n { new_config }\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n {\n params,\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getInstanceData(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params,\n },\n }\n );\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n };\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n }\n );\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\");\n }\n}\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","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 } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\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} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\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\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\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} 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}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertLogsListRequestParams } from \"../../types/request-params\";\r\n\r\ninterface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\ninterface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine[];\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\nexport interface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckItem[]\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.put<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n data,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\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":["axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robotbas/robotcloud-client",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "RobotCloud API client",
5
5
  "author": {
6
6
  "name": "Bernat Galmés Rubert",
@@ -45,5 +45,6 @@
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "public"
48
- }
49
- }
48
+ },
49
+ "packageManager": "yarn@4.11.0"
50
+ }