@robotbas/robotcloud-client 0.3.11 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/index.d.mts +1 -1
- package/dist/helpers/index.d.ts +1 -1
- package/dist/{index-DQ1Poh9r.d.mts → index-DyZqvV4b.d.mts} +1 -1
- package/dist/{index-DQ1Poh9r.d.ts → index-DyZqvV4b.d.ts} +1 -1
- package/dist/index.d.mts +14 -5
- package/dist/index.d.ts +14 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/types/Token.d.ts +12 -1
package/dist/helpers/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ah as RobotCloudPermissionsHelper, ag as robotCloudPermissionsHelper, af as tagsHelper } from '../index-DyZqvV4b.mjs';
|
|
2
2
|
import 'axios';
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ah as RobotCloudPermissionsHelper, ag as robotCloudPermissionsHelper, af as tagsHelper } from '../index-DyZqvV4b.js';
|
|
2
2
|
import 'axios';
|
|
@@ -856,4 +856,4 @@ declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
|
|
|
856
856
|
|
|
857
857
|
declare const tagsHelper: TagsHelper;
|
|
858
858
|
|
|
859
|
-
export { type
|
|
859
|
+
export { type RobotCloudServiceType as $, type AlertsProjectStatsRequestParams as A, type ServiceDataMeasurement as B, type ServiceDataRequestParams as C, type ServiceInstanceAlertsClient as D, type ServiceInstanceAlertRequestParams as E, type ServiceAlertRequestParams as F, type ServiceInstanceHistoricClient as G, type ServiceInstanceHistoricParams as H, type HistoricAggregateFunction as I, type ServiceInstanceHistoricAggregateParams as J, type ServiceTypeClient as K, type RoomClime1AlertEventValue as L, type RoomGuestStatus1AlertEventValue as M, type AirQuality1DataEventValue as N, type OrganizationAccessLevel as O, type ProjectAccessLevel as P, type AirQuality1AlertEventValue as Q, type RobotCloudOrganizations as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type RoomConsumes1AlertEventValue as U, type ProjectClassifiersRequestParams as V, type RobotCloudRobotCloudDeviceCreate as W, type RobotCloudDeviceDetails as X, type RobotCloudRobotCloudDeviceModify as Y, type RobotCloudDeviceConfiguration as Z, type ProjectLocationsRequestParams as _, type RobotCloudCreateOrganization as a, type TemporizedOutput1Data as a$, type LocationServiceInstancesRequestParams as a0, type RobotCloudProject as a1, type RobotCloudCreateProject as a2, type ProjectsRequestParams as a3, type ProjectDetailsRequestParams as a4, type RobotCloudProjectDetails as a5, type RobotCloudPutProject as a6, type RobotCloudProjectUsers as a7, type RobotCloudProjectApplications as a8, type RobotCloudApplicationEnable as a9, type ChillerHeatingPump1AlertEventValue as aA, type CoolHeatCons1DataEventValue as aB, type CoolHeatCons1AlertEventValue as aC, type CoolHeatProd1DataEventValue as aD, type CoolHeatProd1AlertEventValue as aE, type CoolHeatTemperature1DataEventValue as aF, type CoolHeatTemperature1AlertEventValue as aG, type EnergyCounter1DataEventValue as aH, type EnergyCounter1AlertEventValue as aI, type EnergyProduction1DataEventValue as aJ, type EnergyProduction1AlertEventValue as aK, type GasCounter1DataEventValue as aL, type GasCounter1AlertEventValue as aM, type GenericTemperature1DataEventValue as aN, type GenericTemperature1AlertEventValue as aO, type HeatMeter1DataEventValue as aP, type HeatMeter1AlertEventValue as aQ, type HeatProduction1DataEventValue as aR, type HeatProduction1AlertEventValue as aS, type OutdoorClime1DataEventValue as aT, type OutdoorClime1AlertEventValue as aU, type PowerMeter1DataEventValue as aV, type PowerMeter1AlertEventValue as aW, type RoomBlePairing1DataEventValue as aX, type RoomBlePairing1AlertEventValue as aY, type RoomDiagnostics1Data as aZ, type RoomDiagnostics1AlertEventValue as a_, type RobotCloudProjectInstances as aa, type RobotCloudServiceTypeDetails as ab, type ServiceInstancesRequestParams as ac, type ServiceInstanceRead as ad, tagsClient as ae, tagsHelper as af, robotCloudPermissionsHelper as ag, type RobotCloudPermissionsHelper as ah, type ProjectTagTreeNode as ai, type ProjectTagsTree as aj, type ProjectTag as ak, type ProjectModifyTag as al, type ProjectTagDetails as am, type PaginableRequestParams as an, type SortableListRequestParams as ao, type SubsystemTagsRequestParams as ap, type BaseFullPaginableRequestParams as aq, type ProjectTagRequestParams as ar, type AppAccessLevel as as, type FancoilSpeedState as at, type RobotCloudUserAppAccess as au, type RobotCloudCreateUser as av, type MeasurementStatus as aw, type AirHandlingUnit1AlertEventValue as ax, type AirHandlingUnit1DataEventValue as ay, type ChillerHeatingPump1DataEventValue as az, type RobotCloudOrganizationDetails as b, type TemporizedOutput1AlertEventValue as b0, type WaterCounter1Data as b1, type WaterCounter1AlertEventValue as b2, type RobotCloudPutOrganization as c, type RobotCloudDelete as d, type RobotCloudOrganizationUsers as e, type RobotCloudOrganizationCreateUser as f, type RobotCloudUsers as g, type RobotCloudUserDetails as h, type RobotCloudPutUserDetails as i, type RobotCloudUserOrganization as j, type RobotCloudUserProject as k, type RobotCloudPostUserProject as l, type RobotCloudPutProjectUser as m, type AlertLogsListRequestParams as n, type RobotCloudNamedItem as o, type RobotCloudUserSimple as p, type AlertAggregatedLogsRequestParams as q, type AlertsByLocationRequestParams as r, type RobotCloudDescribedItem as s, type RobotCloudCreateApplication as t, type RobotCloudGetApplication as u, type RobotCloudPutApplication as v, type RegimState as w, type ServiceInstanceConfigClient as x, type ServiceInstanceDataClient as y, type ServiceInstanceDataRequestParams as z };
|
|
@@ -856,4 +856,4 @@ declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
|
|
|
856
856
|
|
|
857
857
|
declare const tagsHelper: TagsHelper;
|
|
858
858
|
|
|
859
|
-
export { type
|
|
859
|
+
export { type RobotCloudServiceType as $, type AlertsProjectStatsRequestParams as A, type ServiceDataMeasurement as B, type ServiceDataRequestParams as C, type ServiceInstanceAlertsClient as D, type ServiceInstanceAlertRequestParams as E, type ServiceAlertRequestParams as F, type ServiceInstanceHistoricClient as G, type ServiceInstanceHistoricParams as H, type HistoricAggregateFunction as I, type ServiceInstanceHistoricAggregateParams as J, type ServiceTypeClient as K, type RoomClime1AlertEventValue as L, type RoomGuestStatus1AlertEventValue as M, type AirQuality1DataEventValue as N, type OrganizationAccessLevel as O, type ProjectAccessLevel as P, type AirQuality1AlertEventValue as Q, type RobotCloudOrganizations as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type RoomConsumes1AlertEventValue as U, type ProjectClassifiersRequestParams as V, type RobotCloudRobotCloudDeviceCreate as W, type RobotCloudDeviceDetails as X, type RobotCloudRobotCloudDeviceModify as Y, type RobotCloudDeviceConfiguration as Z, type ProjectLocationsRequestParams as _, type RobotCloudCreateOrganization as a, type TemporizedOutput1Data as a$, type LocationServiceInstancesRequestParams as a0, type RobotCloudProject as a1, type RobotCloudCreateProject as a2, type ProjectsRequestParams as a3, type ProjectDetailsRequestParams as a4, type RobotCloudProjectDetails as a5, type RobotCloudPutProject as a6, type RobotCloudProjectUsers as a7, type RobotCloudProjectApplications as a8, type RobotCloudApplicationEnable as a9, type ChillerHeatingPump1AlertEventValue as aA, type CoolHeatCons1DataEventValue as aB, type CoolHeatCons1AlertEventValue as aC, type CoolHeatProd1DataEventValue as aD, type CoolHeatProd1AlertEventValue as aE, type CoolHeatTemperature1DataEventValue as aF, type CoolHeatTemperature1AlertEventValue as aG, type EnergyCounter1DataEventValue as aH, type EnergyCounter1AlertEventValue as aI, type EnergyProduction1DataEventValue as aJ, type EnergyProduction1AlertEventValue as aK, type GasCounter1DataEventValue as aL, type GasCounter1AlertEventValue as aM, type GenericTemperature1DataEventValue as aN, type GenericTemperature1AlertEventValue as aO, type HeatMeter1DataEventValue as aP, type HeatMeter1AlertEventValue as aQ, type HeatProduction1DataEventValue as aR, type HeatProduction1AlertEventValue as aS, type OutdoorClime1DataEventValue as aT, type OutdoorClime1AlertEventValue as aU, type PowerMeter1DataEventValue as aV, type PowerMeter1AlertEventValue as aW, type RoomBlePairing1DataEventValue as aX, type RoomBlePairing1AlertEventValue as aY, type RoomDiagnostics1Data as aZ, type RoomDiagnostics1AlertEventValue as a_, type RobotCloudProjectInstances as aa, type RobotCloudServiceTypeDetails as ab, type ServiceInstancesRequestParams as ac, type ServiceInstanceRead as ad, tagsClient as ae, tagsHelper as af, robotCloudPermissionsHelper as ag, type RobotCloudPermissionsHelper as ah, type ProjectTagTreeNode as ai, type ProjectTagsTree as aj, type ProjectTag as ak, type ProjectModifyTag as al, type ProjectTagDetails as am, type PaginableRequestParams as an, type SortableListRequestParams as ao, type SubsystemTagsRequestParams as ap, type BaseFullPaginableRequestParams as aq, type ProjectTagRequestParams as ar, type AppAccessLevel as as, type FancoilSpeedState as at, type RobotCloudUserAppAccess as au, type RobotCloudCreateUser as av, type MeasurementStatus as aw, type AirHandlingUnit1AlertEventValue as ax, type AirHandlingUnit1DataEventValue as ay, type ChillerHeatingPump1DataEventValue as az, type RobotCloudOrganizationDetails as b, type TemporizedOutput1AlertEventValue as b0, type WaterCounter1Data as b1, type WaterCounter1AlertEventValue as b2, type RobotCloudPutOrganization as c, type RobotCloudDelete as d, type RobotCloudOrganizationUsers as e, type RobotCloudOrganizationCreateUser as f, type RobotCloudUsers as g, type RobotCloudUserDetails as h, type RobotCloudPutUserDetails as i, type RobotCloudUserOrganization as j, type RobotCloudUserProject as k, type RobotCloudPostUserProject as l, type RobotCloudPutProjectUser as m, type AlertLogsListRequestParams as n, type RobotCloudNamedItem as o, type RobotCloudUserSimple as p, type AlertAggregatedLogsRequestParams as q, type AlertsByLocationRequestParams as r, type RobotCloudDescribedItem as s, type RobotCloudCreateApplication as t, type RobotCloudGetApplication as u, type RobotCloudPutApplication as v, type RegimState as w, type ServiceInstanceConfigClient as x, type ServiceInstanceDataClient as y, type ServiceInstanceDataRequestParams as z };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as axios from 'axios';
|
|
2
2
|
import { AxiosResponse, AxiosInstance } from 'axios';
|
|
3
|
-
import { R as RobotCloudOrganizations, a as RobotCloudCreateOrganization, b as RobotCloudOrganizationDetails, c as RobotCloudPutOrganization, d as RobotCloudDelete, e as RobotCloudOrganizationUsers, f as RobotCloudOrganizationCreateUser, g as RobotCloudUsers, h as RobotCloudUserDetails, i as RobotCloudPutUserDetails, j as RobotCloudUserOrganization, k as RobotCloudUserProject, l as RobotCloudPostUserProject, m as RobotCloudPutProjectUser, A as AlertsProjectStatsRequestParams, n as AlertLogsListRequestParams, o as RobotCloudNamedItem, p as RobotCloudUserSimple, q as AlertAggregatedLogsRequestParams, S as SubsystemRequestParams, r as AlertsByLocationRequestParams, s as RobotCloudDescribedItem, t as RobotCloudCreateApplication, u as RobotCloudGetApplication, v as RobotCloudPutApplication, w as RegimState, T as TemperatureUnit, x as ServiceInstanceConfigClient, y as ServiceInstanceDataClient, z as ServiceInstanceDataRequestParams, B as ServiceDataMeasurement, C as ServiceDataRequestParams, D as ServiceInstanceAlertsClient, E as ServiceInstanceAlertRequestParams, F as ServiceAlertRequestParams, G as ServiceInstanceHistoricClient, H as ServiceInstanceHistoricParams, I as HistoricAggregateFunction, J as ServiceInstanceHistoricAggregateParams, K as ServiceTypeClient, L as RoomClime1AlertEventValue, M as RoomGuestStatus1AlertEventValue, N as AirQuality1DataEventValue,
|
|
4
|
-
export { ax as AirHandlingUnit1AlertEventValue, ay as AirHandlingUnit1DataEventValue, as as AppAccessLevel,
|
|
3
|
+
import { O as OrganizationAccessLevel, P as ProjectAccessLevel, R as RobotCloudOrganizations, a as RobotCloudCreateOrganization, b as RobotCloudOrganizationDetails, c as RobotCloudPutOrganization, d as RobotCloudDelete, e as RobotCloudOrganizationUsers, f as RobotCloudOrganizationCreateUser, g as RobotCloudUsers, h as RobotCloudUserDetails, i as RobotCloudPutUserDetails, j as RobotCloudUserOrganization, k as RobotCloudUserProject, l as RobotCloudPostUserProject, m as RobotCloudPutProjectUser, A as AlertsProjectStatsRequestParams, n as AlertLogsListRequestParams, o as RobotCloudNamedItem, p as RobotCloudUserSimple, q as AlertAggregatedLogsRequestParams, S as SubsystemRequestParams, r as AlertsByLocationRequestParams, s as RobotCloudDescribedItem, t as RobotCloudCreateApplication, u as RobotCloudGetApplication, v as RobotCloudPutApplication, w as RegimState, T as TemperatureUnit, x as ServiceInstanceConfigClient, y as ServiceInstanceDataClient, z as ServiceInstanceDataRequestParams, B as ServiceDataMeasurement, C as ServiceDataRequestParams, D as ServiceInstanceAlertsClient, E as ServiceInstanceAlertRequestParams, F as ServiceAlertRequestParams, G as ServiceInstanceHistoricClient, H as ServiceInstanceHistoricParams, I as HistoricAggregateFunction, J as ServiceInstanceHistoricAggregateParams, K as ServiceTypeClient, L as RoomClime1AlertEventValue, M as RoomGuestStatus1AlertEventValue, N as AirQuality1DataEventValue, Q as AirQuality1AlertEventValue, U as RoomConsumes1AlertEventValue, V as ProjectClassifiersRequestParams, W as RobotCloudRobotCloudDeviceCreate, X as RobotCloudDeviceDetails, Y as RobotCloudRobotCloudDeviceModify, Z as RobotCloudDeviceConfiguration, _ as ProjectLocationsRequestParams, $ as RobotCloudServiceType, a0 as LocationServiceInstancesRequestParams, a1 as RobotCloudProject, a2 as RobotCloudCreateProject, a3 as ProjectsRequestParams, a4 as ProjectDetailsRequestParams, a5 as RobotCloudProjectDetails, a6 as RobotCloudPutProject, a7 as RobotCloudProjectUsers, a8 as RobotCloudProjectApplications, a9 as RobotCloudApplicationEnable, aa as RobotCloudProjectInstances, ab as RobotCloudServiceTypeDetails, ac as ServiceInstancesRequestParams, ad as ServiceInstanceRead } from './index-DyZqvV4b.mjs';
|
|
4
|
+
export { ax as AirHandlingUnit1AlertEventValue, ay as AirHandlingUnit1DataEventValue, as as AppAccessLevel, aq as BaseFullPaginableRequestParams, aA as ChillerHeatingPump1AlertEventValue, az as ChillerHeatingPump1DataEventValue, aC as CoolHeatCons1AlertEventValue, aB as CoolHeatCons1DataEventValue, aE as CoolHeatProd1AlertEventValue, aD as CoolHeatProd1DataEventValue, aG as CoolHeatTemperature1AlertEventValue, aF as CoolHeatTemperature1DataEventValue, aI as EnergyCounter1AlertEventValue, aH as EnergyCounter1DataEventValue, aK as EnergyProduction1AlertEventValue, aJ as EnergyProduction1DataEventValue, at as FancoilSpeedState, aM as GasCounter1AlertEventValue, aL as GasCounter1DataEventValue, aO as GenericTemperature1AlertEventValue, aN as GenericTemperature1DataEventValue, aQ as HeatMeter1AlertEventValue, aP as HeatMeter1DataEventValue, aS as HeatProduction1AlertEventValue, aR as HeatProduction1DataEventValue, aw as MeasurementStatus, aU as OutdoorClime1AlertEventValue, aT as OutdoorClime1DataEventValue, an as PaginableRequestParams, aW as PowerMeter1AlertEventValue, aV as PowerMeter1DataEventValue, al as ProjectModifyTag, ak as ProjectTag, am as ProjectTagDetails, ar as ProjectTagRequestParams, ai as ProjectTagTreeNode, aj as ProjectTagsTree, av as RobotCloudCreateUser, ah as RobotCloudPermissionsHelper, au as RobotCloudUserAppAccess, aY as RoomBlePairing1AlertEventValue, aX as RoomBlePairing1DataEventValue, a_ as RoomDiagnostics1AlertEventValue, aZ as RoomDiagnostics1Data, ao as SortableListRequestParams, ap as SubsystemTagsRequestParams, b0 as TemporizedOutput1AlertEventValue, a$ as TemporizedOutput1Data, b2 as WaterCounter1AlertEventValue, b1 as WaterCounter1Data, ag as robotCloudPermissionsHelper, ae as tagsClient, af as tagsHelper } from './index-DyZqvV4b.mjs';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
7
|
|
|
@@ -32,16 +32,25 @@ interface CheckTokenResponse {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
interface RobotCloudJWTPayload {
|
|
35
|
-
|
|
35
|
+
oac: OrganizationAccessLevel; // Organization Access Level
|
|
36
36
|
sub: string; // username
|
|
37
|
+
aud: string; // audience (app api key id)
|
|
38
|
+
aac: ProjectAccessLevel; // Default project Access Level
|
|
37
39
|
org: string; // organization
|
|
40
|
+
exp: number;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
interface RobotCloudRenewJWTPayload {
|
|
44
|
+
sub: string; // username
|
|
45
|
+
aud: string; // audience (app api key id)
|
|
46
|
+
exp: number;
|
|
38
47
|
}
|
|
39
48
|
|
|
40
49
|
interface RobotCloudNewTokenResponse {
|
|
41
50
|
access: string;
|
|
42
51
|
renew: string;
|
|
43
52
|
}
|
|
44
|
-
declare const decodeToken: (token: string) => RobotCloudJWTPayload | undefined;
|
|
53
|
+
declare const decodeToken: (token: string) => RobotCloudJWTPayload | RobotCloudRenewJWTPayload | undefined;
|
|
45
54
|
declare const needRenew: (payload: RobotCloudJWTPayload) => boolean;
|
|
46
55
|
declare const isExpired: (payload: RobotCloudJWTPayload) => boolean;
|
|
47
56
|
declare const renewToken: (renew_token: string) => Promise<CheckTokenResponse>;
|
|
@@ -743,4 +752,4 @@ declare const alertsClient: AlertsClient;
|
|
|
743
752
|
declare const organizationsClient: OrganizationsClient;
|
|
744
753
|
declare const usersClient: UsersClient;
|
|
745
754
|
|
|
746
|
-
export { type AirHandlingUnitConfigurationParams, AirQuality1AlertEventValue, AirQuality1DataEventValue, type AirQualityConfigurationParams, AlertAggregatedLogsRequestParams, type AlertLogAckAlerts, type AlertLogLine, AlertLogsListRequestParams, type AlertsByLocation, AlertsByLocationRequestParams, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsList, type AlertsLogsStats, AlertsProjectStatsRequestParams, ApplicationsClient, type CheckTokenResponse, type ChillerHeatingPumpConfigurationParams, type Classifier, type ClassifierCreate, type ClassifierDetails, type ClassifierModify, type CoolHeatConsConfigurationParams, type CoolHeatProdConfigurationParams, type CoolHeatTemperatureConfigurationParams, type CreateServiceInstance, type EnergyCounterConfigurationParams, type EnergyProductionConfigurationParams, type GasCounterConfigurationParams, type GenericTemperatureConfigurationParams, type HeatMeterConfigurationParams, type HeatProductionConfigurationParams, HistoricAggregateFunction, LocationServiceInstancesRequestParams, type LoginClient, type ModifyServiceInstanceDetails, OrganizationsClient, type OutdoorClimeConfigurationParams, type PowerMeterConfigurationParams, ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, type ProjectSizeInstances, ProjectsRequestParams, RegimState, RobotCloudApplicationEnable, RobotCloudClientConfig, RobotCloudCreateApplication, RobotCloudCreateOrganization, RobotCloudCreateProject, RobotCloudDelete, RobotCloudDescribedItem, RobotCloudDeviceConfiguration, RobotCloudDeviceDetails, RobotCloudGetApplication, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationCreateUser, RobotCloudOrganizationDetails, RobotCloudOrganizationUsers, RobotCloudOrganizations, RobotCloudPostUserProject, RobotCloudProject, RobotCloudProjectApplications, RobotCloudProjectDetails, RobotCloudProjectInstances, RobotCloudProjectUsers, RobotCloudPutApplication, RobotCloudPutOrganization, RobotCloudPutProject, RobotCloudPutProjectUser, RobotCloudPutUserDetails, RobotCloudRobotCloudDeviceCreate, RobotCloudRobotCloudDeviceModify, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserOrganization, RobotCloudUserProject, RobotCloudUserSimple, RobotCloudUsers, type RoomBlePairingConfigurationParams, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomConsumesConfigurationParams, type RoomDiagnosticsConfigurationParams, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, type RoomGroupingConfigurationParams, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceAlertRequestParams, ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceInstanceAlertsClient, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceDevicesInfo, ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricClient, ServiceInstanceHistoricParams, ServiceInstanceRead, ServiceInstancesRequestParams, ServiceTypeClient, type SessionTokenResponse, SubsystemRequestParams, TemperatureUnit, type TemporizedOutputConfigurationParams, type TokenResponse, UsersClient, type WaterCounterConfigurationParams, airQualityClient, alertsClient, applicationsClient, classifiersClient, clientConfig, devicesClient, locationsClient, loginClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGroupingClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
|
755
|
+
export { type AirHandlingUnitConfigurationParams, AirQuality1AlertEventValue, AirQuality1DataEventValue, type AirQualityConfigurationParams, AlertAggregatedLogsRequestParams, type AlertLogAckAlerts, type AlertLogLine, AlertLogsListRequestParams, type AlertsByLocation, AlertsByLocationRequestParams, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsList, type AlertsLogsStats, AlertsProjectStatsRequestParams, ApplicationsClient, type CheckTokenResponse, type ChillerHeatingPumpConfigurationParams, type Classifier, type ClassifierCreate, type ClassifierDetails, type ClassifierModify, type CoolHeatConsConfigurationParams, type CoolHeatProdConfigurationParams, type CoolHeatTemperatureConfigurationParams, type CreateServiceInstance, type EnergyCounterConfigurationParams, type EnergyProductionConfigurationParams, type GasCounterConfigurationParams, type GenericTemperatureConfigurationParams, type HeatMeterConfigurationParams, type HeatProductionConfigurationParams, HistoricAggregateFunction, LocationServiceInstancesRequestParams, type LoginClient, type ModifyServiceInstanceDetails, OrganizationAccessLevel, OrganizationsClient, type OutdoorClimeConfigurationParams, type PowerMeterConfigurationParams, ProjectAccessLevel, ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, type ProjectSizeInstances, ProjectsRequestParams, RegimState, RobotCloudApplicationEnable, RobotCloudClientConfig, RobotCloudCreateApplication, RobotCloudCreateOrganization, RobotCloudCreateProject, RobotCloudDelete, RobotCloudDescribedItem, RobotCloudDeviceConfiguration, RobotCloudDeviceDetails, RobotCloudGetApplication, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationCreateUser, RobotCloudOrganizationDetails, RobotCloudOrganizationUsers, RobotCloudOrganizations, RobotCloudPostUserProject, RobotCloudProject, RobotCloudProjectApplications, RobotCloudProjectDetails, RobotCloudProjectInstances, RobotCloudProjectUsers, RobotCloudPutApplication, RobotCloudPutOrganization, RobotCloudPutProject, RobotCloudPutProjectUser, RobotCloudPutUserDetails, type RobotCloudRenewJWTPayload, RobotCloudRobotCloudDeviceCreate, RobotCloudRobotCloudDeviceModify, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserOrganization, RobotCloudUserProject, RobotCloudUserSimple, RobotCloudUsers, type RoomBlePairingConfigurationParams, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomConsumesConfigurationParams, type RoomDiagnosticsConfigurationParams, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, type RoomGroupingConfigurationParams, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceAlertRequestParams, ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceInstanceAlertsClient, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceDevicesInfo, ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricClient, ServiceInstanceHistoricParams, ServiceInstanceRead, ServiceInstancesRequestParams, ServiceTypeClient, type SessionTokenResponse, SubsystemRequestParams, TemperatureUnit, type TemporizedOutputConfigurationParams, type TokenResponse, UsersClient, type WaterCounterConfigurationParams, airQualityClient, alertsClient, applicationsClient, classifiersClient, clientConfig, devicesClient, locationsClient, loginClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGroupingClient, 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, AxiosInstance } from 'axios';
|
|
3
|
-
import { R as RobotCloudOrganizations, a as RobotCloudCreateOrganization, b as RobotCloudOrganizationDetails, c as RobotCloudPutOrganization, d as RobotCloudDelete, e as RobotCloudOrganizationUsers, f as RobotCloudOrganizationCreateUser, g as RobotCloudUsers, h as RobotCloudUserDetails, i as RobotCloudPutUserDetails, j as RobotCloudUserOrganization, k as RobotCloudUserProject, l as RobotCloudPostUserProject, m as RobotCloudPutProjectUser, A as AlertsProjectStatsRequestParams, n as AlertLogsListRequestParams, o as RobotCloudNamedItem, p as RobotCloudUserSimple, q as AlertAggregatedLogsRequestParams, S as SubsystemRequestParams, r as AlertsByLocationRequestParams, s as RobotCloudDescribedItem, t as RobotCloudCreateApplication, u as RobotCloudGetApplication, v as RobotCloudPutApplication, w as RegimState, T as TemperatureUnit, x as ServiceInstanceConfigClient, y as ServiceInstanceDataClient, z as ServiceInstanceDataRequestParams, B as ServiceDataMeasurement, C as ServiceDataRequestParams, D as ServiceInstanceAlertsClient, E as ServiceInstanceAlertRequestParams, F as ServiceAlertRequestParams, G as ServiceInstanceHistoricClient, H as ServiceInstanceHistoricParams, I as HistoricAggregateFunction, J as ServiceInstanceHistoricAggregateParams, K as ServiceTypeClient, L as RoomClime1AlertEventValue, M as RoomGuestStatus1AlertEventValue, N as AirQuality1DataEventValue,
|
|
4
|
-
export { ax as AirHandlingUnit1AlertEventValue, ay as AirHandlingUnit1DataEventValue, as as AppAccessLevel,
|
|
3
|
+
import { O as OrganizationAccessLevel, P as ProjectAccessLevel, R as RobotCloudOrganizations, a as RobotCloudCreateOrganization, b as RobotCloudOrganizationDetails, c as RobotCloudPutOrganization, d as RobotCloudDelete, e as RobotCloudOrganizationUsers, f as RobotCloudOrganizationCreateUser, g as RobotCloudUsers, h as RobotCloudUserDetails, i as RobotCloudPutUserDetails, j as RobotCloudUserOrganization, k as RobotCloudUserProject, l as RobotCloudPostUserProject, m as RobotCloudPutProjectUser, A as AlertsProjectStatsRequestParams, n as AlertLogsListRequestParams, o as RobotCloudNamedItem, p as RobotCloudUserSimple, q as AlertAggregatedLogsRequestParams, S as SubsystemRequestParams, r as AlertsByLocationRequestParams, s as RobotCloudDescribedItem, t as RobotCloudCreateApplication, u as RobotCloudGetApplication, v as RobotCloudPutApplication, w as RegimState, T as TemperatureUnit, x as ServiceInstanceConfigClient, y as ServiceInstanceDataClient, z as ServiceInstanceDataRequestParams, B as ServiceDataMeasurement, C as ServiceDataRequestParams, D as ServiceInstanceAlertsClient, E as ServiceInstanceAlertRequestParams, F as ServiceAlertRequestParams, G as ServiceInstanceHistoricClient, H as ServiceInstanceHistoricParams, I as HistoricAggregateFunction, J as ServiceInstanceHistoricAggregateParams, K as ServiceTypeClient, L as RoomClime1AlertEventValue, M as RoomGuestStatus1AlertEventValue, N as AirQuality1DataEventValue, Q as AirQuality1AlertEventValue, U as RoomConsumes1AlertEventValue, V as ProjectClassifiersRequestParams, W as RobotCloudRobotCloudDeviceCreate, X as RobotCloudDeviceDetails, Y as RobotCloudRobotCloudDeviceModify, Z as RobotCloudDeviceConfiguration, _ as ProjectLocationsRequestParams, $ as RobotCloudServiceType, a0 as LocationServiceInstancesRequestParams, a1 as RobotCloudProject, a2 as RobotCloudCreateProject, a3 as ProjectsRequestParams, a4 as ProjectDetailsRequestParams, a5 as RobotCloudProjectDetails, a6 as RobotCloudPutProject, a7 as RobotCloudProjectUsers, a8 as RobotCloudProjectApplications, a9 as RobotCloudApplicationEnable, aa as RobotCloudProjectInstances, ab as RobotCloudServiceTypeDetails, ac as ServiceInstancesRequestParams, ad as ServiceInstanceRead } from './index-DyZqvV4b.js';
|
|
4
|
+
export { ax as AirHandlingUnit1AlertEventValue, ay as AirHandlingUnit1DataEventValue, as as AppAccessLevel, aq as BaseFullPaginableRequestParams, aA as ChillerHeatingPump1AlertEventValue, az as ChillerHeatingPump1DataEventValue, aC as CoolHeatCons1AlertEventValue, aB as CoolHeatCons1DataEventValue, aE as CoolHeatProd1AlertEventValue, aD as CoolHeatProd1DataEventValue, aG as CoolHeatTemperature1AlertEventValue, aF as CoolHeatTemperature1DataEventValue, aI as EnergyCounter1AlertEventValue, aH as EnergyCounter1DataEventValue, aK as EnergyProduction1AlertEventValue, aJ as EnergyProduction1DataEventValue, at as FancoilSpeedState, aM as GasCounter1AlertEventValue, aL as GasCounter1DataEventValue, aO as GenericTemperature1AlertEventValue, aN as GenericTemperature1DataEventValue, aQ as HeatMeter1AlertEventValue, aP as HeatMeter1DataEventValue, aS as HeatProduction1AlertEventValue, aR as HeatProduction1DataEventValue, aw as MeasurementStatus, aU as OutdoorClime1AlertEventValue, aT as OutdoorClime1DataEventValue, an as PaginableRequestParams, aW as PowerMeter1AlertEventValue, aV as PowerMeter1DataEventValue, al as ProjectModifyTag, ak as ProjectTag, am as ProjectTagDetails, ar as ProjectTagRequestParams, ai as ProjectTagTreeNode, aj as ProjectTagsTree, av as RobotCloudCreateUser, ah as RobotCloudPermissionsHelper, au as RobotCloudUserAppAccess, aY as RoomBlePairing1AlertEventValue, aX as RoomBlePairing1DataEventValue, a_ as RoomDiagnostics1AlertEventValue, aZ as RoomDiagnostics1Data, ao as SortableListRequestParams, ap as SubsystemTagsRequestParams, b0 as TemporizedOutput1AlertEventValue, a$ as TemporizedOutput1Data, b2 as WaterCounter1AlertEventValue, b1 as WaterCounter1Data, ag as robotCloudPermissionsHelper, ae as tagsClient, af as tagsHelper } from './index-DyZqvV4b.js';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
7
|
|
|
@@ -32,16 +32,25 @@ interface CheckTokenResponse {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
interface RobotCloudJWTPayload {
|
|
35
|
-
|
|
35
|
+
oac: OrganizationAccessLevel; // Organization Access Level
|
|
36
36
|
sub: string; // username
|
|
37
|
+
aud: string; // audience (app api key id)
|
|
38
|
+
aac: ProjectAccessLevel; // Default project Access Level
|
|
37
39
|
org: string; // organization
|
|
40
|
+
exp: number;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
interface RobotCloudRenewJWTPayload {
|
|
44
|
+
sub: string; // username
|
|
45
|
+
aud: string; // audience (app api key id)
|
|
46
|
+
exp: number;
|
|
38
47
|
}
|
|
39
48
|
|
|
40
49
|
interface RobotCloudNewTokenResponse {
|
|
41
50
|
access: string;
|
|
42
51
|
renew: string;
|
|
43
52
|
}
|
|
44
|
-
declare const decodeToken: (token: string) => RobotCloudJWTPayload | undefined;
|
|
53
|
+
declare const decodeToken: (token: string) => RobotCloudJWTPayload | RobotCloudRenewJWTPayload | undefined;
|
|
45
54
|
declare const needRenew: (payload: RobotCloudJWTPayload) => boolean;
|
|
46
55
|
declare const isExpired: (payload: RobotCloudJWTPayload) => boolean;
|
|
47
56
|
declare const renewToken: (renew_token: string) => Promise<CheckTokenResponse>;
|
|
@@ -743,4 +752,4 @@ declare const alertsClient: AlertsClient;
|
|
|
743
752
|
declare const organizationsClient: OrganizationsClient;
|
|
744
753
|
declare const usersClient: UsersClient;
|
|
745
754
|
|
|
746
|
-
export { type AirHandlingUnitConfigurationParams, AirQuality1AlertEventValue, AirQuality1DataEventValue, type AirQualityConfigurationParams, AlertAggregatedLogsRequestParams, type AlertLogAckAlerts, type AlertLogLine, AlertLogsListRequestParams, type AlertsByLocation, AlertsByLocationRequestParams, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsList, type AlertsLogsStats, AlertsProjectStatsRequestParams, ApplicationsClient, type CheckTokenResponse, type ChillerHeatingPumpConfigurationParams, type Classifier, type ClassifierCreate, type ClassifierDetails, type ClassifierModify, type CoolHeatConsConfigurationParams, type CoolHeatProdConfigurationParams, type CoolHeatTemperatureConfigurationParams, type CreateServiceInstance, type EnergyCounterConfigurationParams, type EnergyProductionConfigurationParams, type GasCounterConfigurationParams, type GenericTemperatureConfigurationParams, type HeatMeterConfigurationParams, type HeatProductionConfigurationParams, HistoricAggregateFunction, LocationServiceInstancesRequestParams, type LoginClient, type ModifyServiceInstanceDetails, OrganizationsClient, type OutdoorClimeConfigurationParams, type PowerMeterConfigurationParams, ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, type ProjectSizeInstances, ProjectsRequestParams, RegimState, RobotCloudApplicationEnable, RobotCloudClientConfig, RobotCloudCreateApplication, RobotCloudCreateOrganization, RobotCloudCreateProject, RobotCloudDelete, RobotCloudDescribedItem, RobotCloudDeviceConfiguration, RobotCloudDeviceDetails, RobotCloudGetApplication, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationCreateUser, RobotCloudOrganizationDetails, RobotCloudOrganizationUsers, RobotCloudOrganizations, RobotCloudPostUserProject, RobotCloudProject, RobotCloudProjectApplications, RobotCloudProjectDetails, RobotCloudProjectInstances, RobotCloudProjectUsers, RobotCloudPutApplication, RobotCloudPutOrganization, RobotCloudPutProject, RobotCloudPutProjectUser, RobotCloudPutUserDetails, RobotCloudRobotCloudDeviceCreate, RobotCloudRobotCloudDeviceModify, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserOrganization, RobotCloudUserProject, RobotCloudUserSimple, RobotCloudUsers, type RoomBlePairingConfigurationParams, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomConsumesConfigurationParams, type RoomDiagnosticsConfigurationParams, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, type RoomGroupingConfigurationParams, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceAlertRequestParams, ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceInstanceAlertsClient, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceDevicesInfo, ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricClient, ServiceInstanceHistoricParams, ServiceInstanceRead, ServiceInstancesRequestParams, ServiceTypeClient, type SessionTokenResponse, SubsystemRequestParams, TemperatureUnit, type TemporizedOutputConfigurationParams, type TokenResponse, UsersClient, type WaterCounterConfigurationParams, airQualityClient, alertsClient, applicationsClient, classifiersClient, clientConfig, devicesClient, locationsClient, loginClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGroupingClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
|
755
|
+
export { type AirHandlingUnitConfigurationParams, AirQuality1AlertEventValue, AirQuality1DataEventValue, type AirQualityConfigurationParams, AlertAggregatedLogsRequestParams, type AlertLogAckAlerts, type AlertLogLine, AlertLogsListRequestParams, type AlertsByLocation, AlertsByLocationRequestParams, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsList, type AlertsLogsStats, AlertsProjectStatsRequestParams, ApplicationsClient, type CheckTokenResponse, type ChillerHeatingPumpConfigurationParams, type Classifier, type ClassifierCreate, type ClassifierDetails, type ClassifierModify, type CoolHeatConsConfigurationParams, type CoolHeatProdConfigurationParams, type CoolHeatTemperatureConfigurationParams, type CreateServiceInstance, type EnergyCounterConfigurationParams, type EnergyProductionConfigurationParams, type GasCounterConfigurationParams, type GenericTemperatureConfigurationParams, type HeatMeterConfigurationParams, type HeatProductionConfigurationParams, HistoricAggregateFunction, LocationServiceInstancesRequestParams, type LoginClient, type ModifyServiceInstanceDetails, OrganizationAccessLevel, OrganizationsClient, type OutdoorClimeConfigurationParams, type PowerMeterConfigurationParams, ProjectAccessLevel, ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, type ProjectSizeInstances, ProjectsRequestParams, RegimState, RobotCloudApplicationEnable, RobotCloudClientConfig, RobotCloudCreateApplication, RobotCloudCreateOrganization, RobotCloudCreateProject, RobotCloudDelete, RobotCloudDescribedItem, RobotCloudDeviceConfiguration, RobotCloudDeviceDetails, RobotCloudGetApplication, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationCreateUser, RobotCloudOrganizationDetails, RobotCloudOrganizationUsers, RobotCloudOrganizations, RobotCloudPostUserProject, RobotCloudProject, RobotCloudProjectApplications, RobotCloudProjectDetails, RobotCloudProjectInstances, RobotCloudProjectUsers, RobotCloudPutApplication, RobotCloudPutOrganization, RobotCloudPutProject, RobotCloudPutProjectUser, RobotCloudPutUserDetails, type RobotCloudRenewJWTPayload, RobotCloudRobotCloudDeviceCreate, RobotCloudRobotCloudDeviceModify, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserOrganization, RobotCloudUserProject, RobotCloudUserSimple, RobotCloudUsers, type RoomBlePairingConfigurationParams, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomConsumesConfigurationParams, type RoomDiagnosticsConfigurationParams, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, type RoomGroupingConfigurationParams, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceAlertRequestParams, ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceInstanceAlertsClient, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceDevicesInfo, ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricClient, ServiceInstanceHistoricParams, ServiceInstanceRead, ServiceInstancesRequestParams, ServiceTypeClient, type SessionTokenResponse, SubsystemRequestParams, TemperatureUnit, type TemporizedOutputConfigurationParams, type TokenResponse, UsersClient, type WaterCounterConfigurationParams, airQualityClient, alertsClient, applicationsClient, classifiersClient, clientConfig, devicesClient, locationsClient, loginClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGroupingClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
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/login.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/client/applications.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/services/room-grouping-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/index.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 \"config\"\nexport * from \"client\"\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/request-params\"\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\"\nexport type * from \"../types/alerts\"\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\";\nimport { loginClient } from \"@/client\";\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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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 { data } = await loginClient.renewToken(renew_token)\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 { useLogger } from \"@/utils/logger\";\nimport axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { SessionTokenResponse } from \"../../types/Token\";\n\nexport interface LoginClient {\n login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>>;\n renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>>;\n}\n\nexport class LoginClientImpl implements LoginClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('LoginClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n public async login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n const encoded = btoa(`${username}:${password}`)\n const basicString = `Basic ${encoded}`\n\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login', {\n headers: {\n Authorization: basicString,\n \"x-api-key\": apiKey\n }\n });\n } catch (error) {\n this.logger.error('Error logging in', error);\n throw error;\n }\n }\n\n public async renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login/renew', {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n } catch (error) {\n this.logger.error('Error renewing token', error);\n throw error;\n\n }\n }\n}","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport {\n RobotCloudServiceTypeDetails,\n} from \"../../types/RobotCloudClient\";\nimport {\n AlertAggregatedLogsRequestParams,\n AlertLogsListRequestParams,\n AlertsByLocationRequestParams,\n AlertsProjectStatsRequestParams,\n SubsystemRequestParams\n} from \"../../types/request-params\";\nimport { useLogger } from \"utils/logger\";\nimport {\n AlertLogAckAlerts,\n AlertsByLocation,\n AlertsClient,\n AlertsLogsAggregated,\n AlertsLogsList,\n AlertsLogsStats\n} from \"../../types/alerts\";\n\nconst ALERTS_BY_SERVICE_TYPE = {\n \"RoomBLEPairing_1\": [],\n \"RoomClime_1\": [\n \"high_temperature\",\n \"low_temperature\",\n \"high_humidity\",\n \"fancoil_on_overtime\"\n ],\n \"RoomConsumes_1\": [\n \"high_daily_energy_electric\",\n \"high_daily_energy_thermal\",\n \"high_daily_hot_water\",\n \"high_daily_cold_water\"\n ],\n \"RoomDiagnostics_1\": [\n \"low_peripheral_num\"\n ],\n \"RoomGrouping_1\": [],\n \"RoomGuestStatus_1\": [\n \"door_open_overtime\",\n \"window_open_overtime\",\n \"medical_alarm\"\n ],\n}\nexport class AlertsClientImpl implements AlertsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('AlertsClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getProjectStats(projectId: string, params?: AlertsProjectStatsRequestParams): Promise<AxiosResponse<AlertsLogsStats>> {\n return this.robotcloudApi.get<AlertsLogsStats>(\n `projects/${projectId}/alerts/stats`,\n { params: params ?? {} }\n );\n }\n\n getProjectLog(\n projectId: string,\n params: AlertLogsListRequestParams\n ): Promise<AxiosResponse<AlertsLogsList>> {\n return this.robotcloudApi.get<AlertsLogsList>(\n `projects/${projectId}/alerts/log`,\n {\n params,\n }\n );\n }\n\n acknowledge(\n projectId: string,\n data: AlertLogAckAlerts\n ): Promise<AxiosResponse<AlertsLogsList>> {\n this.logger.debug(\"Sending put data: \", data);\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\n `projects/${projectId}/alerts/log`,\n data\n );\n }\n\n getAggregatedLogs(\n projectId: string,\n params: AlertAggregatedLogsRequestParams\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\n return this.robotcloudApi.get<AlertsLogsAggregated>(\n `projects/${projectId}/alerts/aggregate`,\n { params }\n );\n }\n\n async getAvailableAlerts(projectId: string, params?: SubsystemRequestParams): Promise<AxiosResponse<string[]>> {\n const { data } = await this.robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${projectId}/services`,\n { params: params ?? {} }\n );\n\n let alerts: string[] = [];\n for (const service of data) {\n if (!(service.name in ALERTS_BY_SERVICE_TYPE)) {\n this.logger.warn(`Service ${service.name} not found in ALERTS_BY_SERVICE_TYPE`);\n continue;\n }\n alerts.push(...ALERTS_BY_SERVICE_TYPE[service.name as keyof typeof ALERTS_BY_SERVICE_TYPE]);\n }\n return {\n data: alerts\n } as AxiosResponse<string[]>;\n }\n\n getAlertsByLocation(projectId: string, params?: AlertsByLocationRequestParams): Promise<AxiosResponse<AlertsByLocation>> {\n return this.robotcloudApi.get<AlertsByLocation>(\n `projects/${projectId}/alerts/bylocation`,\n { params }\n );\n }\n\n getServiceTypeAlertKeys(serviceType: string): string[] {\n return ALERTS_BY_SERVICE_TYPE[serviceType as keyof typeof ALERTS_BY_SERVICE_TYPE];\n }\n}\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudOrganizations,\n RobotCloudCreateOrganization,\n RobotCloudPutOrganization,\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class OrganizationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('OrganizationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizations = (): Promise<AxiosResponse<RobotCloudOrganizations[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizations[]>(`organizations`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateOrganization>> => {\n return this.robotcloudApi.post<RobotCloudCreateOrganization>(`organizations`)\n };\n\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n putOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudPutOrganization>> => {\n return this.robotcloudApi.put<RobotCloudPutOrganization>(\n `organizations/${organizationId}`\n );\n };\n\n deleteOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `organizations/${organizationId}`\n );\n };\n\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudUserOrganization,\n RobotCloudUsers,\n RobotCloudUserDetails,\n RobotCloudPutUserDetails,\n RobotCloudUserProject,\n RobotCloudPostUserProject,\n RobotCloudPutProjectUser,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class UsersClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('UsersClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationUsers[]>(\n `organizations/${organizationId}/users`\n );\n };\n\n postOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationCreateUser>> => {\n return this.robotcloudApi.post<RobotCloudOrganizationCreateUser>(\n `organizations/${organizationId}/users`\n );\n };\n\n\n getUsers = (): Promise<AxiosResponse<RobotCloudUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudUsers[]>(`users`)\n };\n\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return this.robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n putUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPutUserDetails>> => {\n return this.robotcloudApi.put<RobotCloudPutUserDetails>(`users/${username}`);\n };\n\n deleteUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`users/${username}`);\n };\n\n getUserOrganizations = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserOrganization[]>> => {\n return this.robotcloudApi.get<RobotCloudUserOrganization[]>(`users/${username}/organizations`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return this.robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n\n postUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPostUserProject>> => {\n return this.robotcloudApi.post<RobotCloudPostUserProject>(\n `users/${username}/projects`\n );\n };\n\n getProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudUserProject>> => {\n return this.robotcloudApi.get<RobotCloudUserProject>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n putProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudPutProjectUser>> => {\n return this.robotcloudApi.put<RobotCloudPutProjectUser>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n deleteProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `users/${username}/projects/${projectId}`\n );\n }\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudDescribedItem,\n RobotCloudCreateApplication,\n RobotCloudGetApplication,\n RobotCloudPutApplication,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class ApplicationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('ApplicationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n getApplications = (): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n return this.robotcloudApi.get<RobotCloudDescribedItem[]>(`application/register`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateApplication>> => {\n return this.robotcloudApi.post<RobotCloudCreateApplication>(`application/register`)\n };\n\n getApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudGetApplication>> => {\n return this.robotcloudApi.get<RobotCloudGetApplication>(`application/register/${applicationId}`)\n };\n\n putApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudPutApplication>> => {\n return this.robotcloudApi.put<RobotCloudPutApplication>(`application/register/${applicationId}`)\n };\n\n deleteApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`application/register/${applicationId}`)\n };\n\n}","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { ServiceDataMeasurement, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceAlertsClient, ServiceInstanceHistoricClient, HistoricAggregateFunction } from \"../../../types/services\";\nimport { ServiceDataRequestParams, ServiceInstanceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceAlertRequestParams, ServiceInstanceHistoricParams, ServiceInstanceHistoricAggregateParams } from \"../../../types/request-params\";\n\n\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n project_id: string,\n instance_id: string\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.get<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\n );\n }\n\n put(\n project_id: string,\n instance_id: string,\n new_config: T\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.put<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\n new_config\n );\n }\n}\n\nexport class GenericInstanceDataClient<T> implements ServiceInstanceDataClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceAlertClient<T> implements ServiceInstanceAlertsClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceHistoricClient<T> implements ServiceInstanceHistoricClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAggregate(\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<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/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 headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}","import { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\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 RoomClimeDataClient extends GenericInstanceDataClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeAlertClient extends GenericInstanceAlertClient<RoomClime1AlertEventValue> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeHistoricClient extends GenericInstanceHistoricClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient implements ServiceTypeClient<RoomClime1Data, RoomClime1AlertEventValue, RoomClimeConfigurationParams> {\n private _configurationClient: RoomClimeConfigClient;\n private _dataClient: RoomClimeDataClient;\n private _alertClient: RoomClimeAlertClient;\n private _historicClient: RoomClimeHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n this._dataClient = new RoomClimeDataClient();\n this._alertClient = new RoomClimeAlertClient();\n this._historicClient = new RoomClimeHistoricClient();\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGuestStatus1AlertEventValue, ServiceTypeClient } from \"../../../types/services\";\n\n\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusDataClient extends GenericInstanceDataClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusAlertClient extends GenericInstanceAlertClient<RoomGuestStatus1AlertEventValue> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusHistoricClient extends GenericInstanceHistoricClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusClient implements ServiceTypeClient<RoomGuestStatus1Data, RoomGuestStatus1AlertEventValue, RoomGuestStatusConfigurationParams> {\n private _configurationClient: RoomGuestStatusConfigClient;\n private _dataClient: RoomGuestStatusDataClient;\n private _alertClient: RoomGuestStatusAlertClient;\n private _historicClient: RoomGuestStatusHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n this._dataClient = new RoomGuestStatusDataClient();\n this._alertClient = new RoomGuestStatusAlertClient();\n this._historicClient = new RoomGuestStatusHistoricClient();\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n ServiceTypeClient\n} from \"../../../types/services\";\nimport { AirQualityConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\n\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<AirQualityConfigurationParams> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityDataClient extends GenericInstanceDataClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityAlertClient extends GenericInstanceAlertClient<AirQuality1AlertEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityHistoricClient extends GenericInstanceHistoricClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityClient implements ServiceTypeClient<AirQuality1DataEventValue, AirQuality1AlertEventValue, AirQualityConfigurationParams> {\n private _configurationClient: AirQualityConfigClient;\n private _dataClient: AirQualityDataClient;\n private _alertClient: AirQualityAlertClient;\n private _historicClient: AirQualityHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n this._dataClient = new AirQualityDataClient();\n this._alertClient = new AirQualityAlertClient();\n this._historicClient = new AirQualityHistoricClient();\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { ServiceTypeClient } from \"../../../types/services\";\nimport { RoomConsumesConfigurationParams } from \"../../../types/services-configuration\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<RoomConsumesConfigurationParams> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesDataClient extends GenericInstanceDataClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesAlertClient extends GenericInstanceAlertClient<RoomConsumes1AlertEventValue> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesHistoricClient extends GenericInstanceHistoricClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Data, RoomConsumes1AlertEventValue, RoomConsumesConfigurationParams> {\n private _configurationClient: RoomConsumesConfigClient;\n private _dataClient: RoomConsumesDataClient;\n private _alertClient: RoomConsumesAlertClient;\n private _historicClient: RoomConsumesHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n this._dataClient = new RoomConsumesDataClient();\n this._alertClient = new RoomConsumesAlertClient();\n this._historicClient = new RoomConsumesHistoricClient();\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import {\n RoomGrouping1DataEventValue\n} from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGroupingConfigurationParams } from \"../../../types/services-configuration\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\nexport class RoomGroupingConfigClient extends GenericInstanceConfigClient<RoomGroupingConfigurationParams> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingDataClient extends GenericInstanceDataClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingAlertClient extends GenericInstanceAlertClient<{}> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingHistoricClient extends GenericInstanceHistoricClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingClient implements ServiceTypeClient<RoomGrouping1DataEventValue, {}, RoomGroupingConfigurationParams> {\n private _configurationClient: RoomGroupingConfigClient;\n private _dataClient: RoomGroupingDataClient;\n private _alertClient: RoomGroupingAlertClient;\n private _historicClient: RoomGroupingHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGroupingConfigClient();\n this._dataClient = new RoomGroupingDataClient();\n this._alertClient = new RoomGroupingAlertClient();\n this._historicClient = new RoomGroupingHistoricClient();\n }\n}\n\nexport const roomGroupingClient = new RoomGroupingClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ClassifierCreate,\n ClassifierModify\n} from \"../../../types/ProjectClassifer\";\nimport {\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierDetails>> => {\n return robotcloudApi.get<ClassifierDetails>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n putClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierModify>> => {\n return robotcloudApi.put<ClassifierModify>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n postClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierCreate>> => {\n return robotcloudApi.post<ClassifierCreate>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n deleteClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudDeviceDetails, \n RobotCloudNamedItem,\n RobotCloudRobotCloudDeviceCreate,\n RobotCloudRobotCloudDeviceModify,\n RobotCloudDelete,\n RobotCloudDeviceConfiguration\n} from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n\n getProjectDevicesLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`locations/${locationId}/devices`);\n };\n\n postProjectDeviceLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceCreate>> => {\n return robotcloudApi.post<RobotCloudRobotCloudDeviceCreate>(`locations/${locationId}/devices`);\n };\n\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n\n putDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceModify>> => {\n return robotcloudApi.put<RobotCloudRobotCloudDeviceModify>(`devices/${deviceId}`);\n };\n\n deleteDevice = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`devices/${deviceId}`);\n };\n\n getDeviceConfiguration = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceConfiguration>> => {\n return robotcloudApi.get<RobotCloudDeviceConfiguration>(`devices/${deviceId}/compatibleconfigurationtypes`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance,\n CreateServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudLocationDetails,\n RobotCloudLocationModify,\n RobotCloudLocationCreate\n} from \"../../../types/ProjectLocation\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\nclass LocationsClient {\n\n getAll = (\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 post = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudLocationCreate[]>> => {\n return robotcloudApi.post<RobotCloudLocationCreate[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n get = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n\n put = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationModify>> => {\n return robotcloudApi.put<RobotCloudLocationModify>(\n `locations/${locationId}`,\n {}\n );\n };\n\n delete = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `locations/${locationId}`,\n {}\n );\n };\n\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 postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance[]>> => {\n return robotcloudApi.post<CreateServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudPutProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n RobotCloudDelete,\n RobotCloudProjectUsers,\n RobotCloudProjectInstances,\n RobotCloudProjectApplications,\n RobotCloudApplicationEnable,\n RobotCloudCreateProject\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n\n postOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudCreateProject>> => {\n return robotcloudApi.post<RobotCloudCreateProject>(\n `organizations/${organizationId}/projects`\n );\n };\n\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n putProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudPutProject>> => {\n return robotcloudApi.put<RobotCloudPutProject>(`projects/${prjId}`, {\n params,\n });\n };\n\n deleteProject = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectUsers = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectUsers>> => {\n return robotcloudApi.get<RobotCloudProjectUsers>(`projects/${prjId}/users`, {\n params,\n });\n };\n\n getProjectApplications = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectApplications[]>> => {\n return robotcloudApi.get<RobotCloudProjectApplications[]>(`projects/${prjId}/applications`, {\n params,\n });\n };\n\n getProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudProjectApplications>> => {\n return robotcloudApi.get<RobotCloudProjectApplications>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n putProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudApplicationEnable>> => {\n return robotcloudApi.put<RobotCloudApplicationEnable>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n getProjectInstances = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectInstances[]>> => {\n return robotcloudApi.get<RobotCloudProjectInstances[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n CreateServiceInstance,\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ModifyServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n ProjectSizeInstances\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudServiceTypeDetails,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\nimport { ServiceDataMeasurement } from \"../../../types/services\";\nimport { ServiceInstanceRead } from \"../../../types/ServiceInstanceRead\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n\n getAll = (\n prjId: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance>> => {\n return robotcloudApi.post<CreateServiceInstance>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n putServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<ModifyServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n deleteServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n putServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n getServiceAllInstancesData(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/data`);\n };\n\n getServiceInstancesData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/data`);\n };\n \n\n getServiceAllInstancesAlerts(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceInstanceRead<any>[]>> {\n return robotcloudApi.get<ServiceInstanceRead<any>[]>(\n `projects/${prjId}/services/${service_type}/alert`);\n };\n\n getServiceInstancesAlerts(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/alert`);\n };\n\n getServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n putServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.put<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n getServiceInstancesHistoricData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data`);\n };\n\n getServiceInstancesHistoricDataAggregate(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data/aggregate`);\n };\n\n getServiceLocation (\n prjId: string,\n locationId: string\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/locations/${locationId}/services`);\n };\n\n getSizeProjectInstances (\n prjId: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/instances`);\n };\n\n getSizeProjectServicesInstances (\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/services/${service_type}/instances`);\n };\n\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n putProjectSubsystem\n} from \"../../../types/ProjectSubsystem\";\nimport {\n ProjectLocations\n} from \"../../../types/ProjectLocation\";\nimport { RobotCloudDescribedItem, RobotCloudDelete } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass SubsystemsClient {\n getProjectSubsystems = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n logger.info(`Get project ${prjId} subsystems`);\n return robotcloudApi.get<RobotCloudDescribedItem[]>(\n `projects/${prjId}/subsystems`\n );\n };\n\n getProjectSubsystem = (\n prjId: string,\n subsysId: string\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Get subsystem ${subsysId} from project ${prjId}`);\n return robotcloudApi.get<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n postProjectSubsystem = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Create subsystem in project ${prjId}`);\n return robotcloudApi.post<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems`\n );\n };\n\n putProjectSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<putProjectSubsystem>> => {\n logger.info(`Update subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.put<putProjectSubsystem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n deleteSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}/subsystems/${subsysId}`);\n };\n\n getProjectSubsystemLocations = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<ProjectLocations>> => {\n logger.info(`Get subsystems locations ${subsysId} in project ${prjId}`);\n return robotcloudApi.get<ProjectLocations>(\n `projects/${prjId}/subsystems/${subsysId}/locations`\n );\n };\n\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n ProjectModifyTag,\n} from \"../../../types/ProjectTag\";\nimport {\n RobotCloudDelete,\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n\n getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n\n postTag = (\n prjId: string,\n ): Promise<AxiosResponse<ProjectTag>> => {\n logger.info(`Create tag for project ${prjId}`);\n return robotcloudApi.post<ProjectTag>(`projects/${prjId}/tags`);\n };\n\n putTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectModifyTag>> => {\n logger.info(`Modify project ${prjId} tag ${tagId}`);\n return robotcloudApi.put<ProjectModifyTag>(`tags/${tagId}`);\n };\n\n deleteTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete project ${prjId} tag ${tagId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`tags/${tagId}`);\n };\n\n}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"robotCloudApi\";\nimport { LoginClient, LoginClientImpl } from \"./login\";\nimport { AlertsClientImpl } from \"./alerts\";\nimport { OrganizationsClient } from \"./organizations\";\nimport { UsersClient } from \"./users\";\nimport { AlertsClient } from \"../../types/alerts\";\nimport { ApplicationsClient } from \"./applications\";\n\nexport * from \"./services\"\nexport * from \"./projects\"\nexport { OrganizationsClient } from \"./organizations\"\nexport { UsersClient } from \"./users\"\nexport { LoginClient } from \"./login\"\nexport { ApplicationsClient } from \"./applications\"\n\nexport const applicationsClient: ApplicationsClient = new ApplicationsClient(robotcloudApi);\nexport const loginClient: LoginClient = new LoginClientImpl(robotcloudApi);\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\nexport const organizationsClient: OrganizationsClient = new OrganizationsClient(robotcloudApi);\nexport const usersClient: UsersClient = new UsersClient(robotcloudApi);\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","import_axios","robotcloudApi","axios","robotcloudApi","robotcloudApi","robotcloudApi","robotcloudApi","logger","logger","logger","logger","logger","logger","axios","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/login.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/client/applications.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/services/room-grouping-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/index.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 \"config\"\nexport * from \"client\"\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/request-params\"\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\"\nexport type * from \"../types/alerts\"\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, RobotCloudRenewJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\nimport { loginClient } from \"@/client\";\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 | RobotCloudRenewJWTPayload | 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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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 { data } = await loginClient.renewToken(renew_token)\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 { useLogger } from \"@/utils/logger\";\nimport axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { SessionTokenResponse } from \"../../types/Token\";\n\nexport interface LoginClient {\n login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>>;\n renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>>;\n}\n\nexport class LoginClientImpl implements LoginClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('LoginClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n public async login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n const encoded = btoa(`${username}:${password}`)\n const basicString = `Basic ${encoded}`\n\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login', {\n headers: {\n Authorization: basicString,\n \"x-api-key\": apiKey\n }\n });\n } catch (error) {\n this.logger.error('Error logging in', error);\n throw error;\n }\n }\n\n public async renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login/renew', {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n } catch (error) {\n this.logger.error('Error renewing token', error);\n throw error;\n\n }\n }\n}","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport {\n RobotCloudServiceTypeDetails,\n} from \"../../types/RobotCloudClient\";\nimport {\n AlertAggregatedLogsRequestParams,\n AlertLogsListRequestParams,\n AlertsByLocationRequestParams,\n AlertsProjectStatsRequestParams,\n SubsystemRequestParams\n} from \"../../types/request-params\";\nimport { useLogger } from \"utils/logger\";\nimport {\n AlertLogAckAlerts,\n AlertsByLocation,\n AlertsClient,\n AlertsLogsAggregated,\n AlertsLogsList,\n AlertsLogsStats\n} from \"../../types/alerts\";\n\nconst ALERTS_BY_SERVICE_TYPE = {\n \"RoomBLEPairing_1\": [],\n \"RoomClime_1\": [\n \"high_temperature\",\n \"low_temperature\",\n \"high_humidity\",\n \"fancoil_on_overtime\"\n ],\n \"RoomConsumes_1\": [\n \"high_daily_energy_electric\",\n \"high_daily_energy_thermal\",\n \"high_daily_hot_water\",\n \"high_daily_cold_water\"\n ],\n \"RoomDiagnostics_1\": [\n \"low_peripheral_num\"\n ],\n \"RoomGrouping_1\": [],\n \"RoomGuestStatus_1\": [\n \"door_open_overtime\",\n \"window_open_overtime\",\n \"medical_alarm\"\n ],\n}\nexport class AlertsClientImpl implements AlertsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('AlertsClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getProjectStats(projectId: string, params?: AlertsProjectStatsRequestParams): Promise<AxiosResponse<AlertsLogsStats>> {\n return this.robotcloudApi.get<AlertsLogsStats>(\n `projects/${projectId}/alerts/stats`,\n { params: params ?? {} }\n );\n }\n\n getProjectLog(\n projectId: string,\n params: AlertLogsListRequestParams\n ): Promise<AxiosResponse<AlertsLogsList>> {\n return this.robotcloudApi.get<AlertsLogsList>(\n `projects/${projectId}/alerts/log`,\n {\n params,\n }\n );\n }\n\n acknowledge(\n projectId: string,\n data: AlertLogAckAlerts\n ): Promise<AxiosResponse<AlertsLogsList>> {\n this.logger.debug(\"Sending put data: \", data);\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\n `projects/${projectId}/alerts/log`,\n data\n );\n }\n\n getAggregatedLogs(\n projectId: string,\n params: AlertAggregatedLogsRequestParams\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\n return this.robotcloudApi.get<AlertsLogsAggregated>(\n `projects/${projectId}/alerts/aggregate`,\n { params }\n );\n }\n\n async getAvailableAlerts(projectId: string, params?: SubsystemRequestParams): Promise<AxiosResponse<string[]>> {\n const { data } = await this.robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${projectId}/services`,\n { params: params ?? {} }\n );\n\n let alerts: string[] = [];\n for (const service of data) {\n if (!(service.name in ALERTS_BY_SERVICE_TYPE)) {\n this.logger.warn(`Service ${service.name} not found in ALERTS_BY_SERVICE_TYPE`);\n continue;\n }\n alerts.push(...ALERTS_BY_SERVICE_TYPE[service.name as keyof typeof ALERTS_BY_SERVICE_TYPE]);\n }\n return {\n data: alerts\n } as AxiosResponse<string[]>;\n }\n\n getAlertsByLocation(projectId: string, params?: AlertsByLocationRequestParams): Promise<AxiosResponse<AlertsByLocation>> {\n return this.robotcloudApi.get<AlertsByLocation>(\n `projects/${projectId}/alerts/bylocation`,\n { params }\n );\n }\n\n getServiceTypeAlertKeys(serviceType: string): string[] {\n return ALERTS_BY_SERVICE_TYPE[serviceType as keyof typeof ALERTS_BY_SERVICE_TYPE];\n }\n}\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudOrganizations,\n RobotCloudCreateOrganization,\n RobotCloudPutOrganization,\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class OrganizationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('OrganizationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizations = (): Promise<AxiosResponse<RobotCloudOrganizations[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizations[]>(`organizations`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateOrganization>> => {\n return this.robotcloudApi.post<RobotCloudCreateOrganization>(`organizations`)\n };\n\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n putOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudPutOrganization>> => {\n return this.robotcloudApi.put<RobotCloudPutOrganization>(\n `organizations/${organizationId}`\n );\n };\n\n deleteOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `organizations/${organizationId}`\n );\n };\n\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudUserOrganization,\n RobotCloudUsers,\n RobotCloudUserDetails,\n RobotCloudPutUserDetails,\n RobotCloudUserProject,\n RobotCloudPostUserProject,\n RobotCloudPutProjectUser,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class UsersClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('UsersClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationUsers[]>(\n `organizations/${organizationId}/users`\n );\n };\n\n postOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationCreateUser>> => {\n return this.robotcloudApi.post<RobotCloudOrganizationCreateUser>(\n `organizations/${organizationId}/users`\n );\n };\n\n\n getUsers = (): Promise<AxiosResponse<RobotCloudUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudUsers[]>(`users`)\n };\n\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return this.robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n putUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPutUserDetails>> => {\n return this.robotcloudApi.put<RobotCloudPutUserDetails>(`users/${username}`);\n };\n\n deleteUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`users/${username}`);\n };\n\n getUserOrganizations = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserOrganization[]>> => {\n return this.robotcloudApi.get<RobotCloudUserOrganization[]>(`users/${username}/organizations`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return this.robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n\n postUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPostUserProject>> => {\n return this.robotcloudApi.post<RobotCloudPostUserProject>(\n `users/${username}/projects`\n );\n };\n\n getProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudUserProject>> => {\n return this.robotcloudApi.get<RobotCloudUserProject>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n putProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudPutProjectUser>> => {\n return this.robotcloudApi.put<RobotCloudPutProjectUser>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n deleteProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `users/${username}/projects/${projectId}`\n );\n }\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudDescribedItem,\n RobotCloudCreateApplication,\n RobotCloudGetApplication,\n RobotCloudPutApplication,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class ApplicationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('ApplicationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n getApplications = (): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n return this.robotcloudApi.get<RobotCloudDescribedItem[]>(`application/register`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateApplication>> => {\n return this.robotcloudApi.post<RobotCloudCreateApplication>(`application/register`)\n };\n\n getApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudGetApplication>> => {\n return this.robotcloudApi.get<RobotCloudGetApplication>(`application/register/${applicationId}`)\n };\n\n putApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudPutApplication>> => {\n return this.robotcloudApi.put<RobotCloudPutApplication>(`application/register/${applicationId}`)\n };\n\n deleteApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`application/register/${applicationId}`)\n };\n\n}","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { ServiceDataMeasurement, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceAlertsClient, ServiceInstanceHistoricClient, HistoricAggregateFunction } from \"../../../types/services\";\nimport { ServiceDataRequestParams, ServiceInstanceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceAlertRequestParams, ServiceInstanceHistoricParams, ServiceInstanceHistoricAggregateParams } from \"../../../types/request-params\";\n\n\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n project_id: string,\n instance_id: string\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.get<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\n );\n }\n\n put(\n project_id: string,\n instance_id: string,\n new_config: T\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.put<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\n new_config\n );\n }\n}\n\nexport class GenericInstanceDataClient<T> implements ServiceInstanceDataClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceAlertClient<T> implements ServiceInstanceAlertsClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceHistoricClient<T> implements ServiceInstanceHistoricClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAggregate(\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<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/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 headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}","import { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\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 RoomClimeDataClient extends GenericInstanceDataClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeAlertClient extends GenericInstanceAlertClient<RoomClime1AlertEventValue> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeHistoricClient extends GenericInstanceHistoricClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient implements ServiceTypeClient<RoomClime1Data, RoomClime1AlertEventValue, RoomClimeConfigurationParams> {\n private _configurationClient: RoomClimeConfigClient;\n private _dataClient: RoomClimeDataClient;\n private _alertClient: RoomClimeAlertClient;\n private _historicClient: RoomClimeHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n this._dataClient = new RoomClimeDataClient();\n this._alertClient = new RoomClimeAlertClient();\n this._historicClient = new RoomClimeHistoricClient();\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGuestStatus1AlertEventValue, ServiceTypeClient } from \"../../../types/services\";\n\n\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusDataClient extends GenericInstanceDataClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusAlertClient extends GenericInstanceAlertClient<RoomGuestStatus1AlertEventValue> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusHistoricClient extends GenericInstanceHistoricClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusClient implements ServiceTypeClient<RoomGuestStatus1Data, RoomGuestStatus1AlertEventValue, RoomGuestStatusConfigurationParams> {\n private _configurationClient: RoomGuestStatusConfigClient;\n private _dataClient: RoomGuestStatusDataClient;\n private _alertClient: RoomGuestStatusAlertClient;\n private _historicClient: RoomGuestStatusHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n this._dataClient = new RoomGuestStatusDataClient();\n this._alertClient = new RoomGuestStatusAlertClient();\n this._historicClient = new RoomGuestStatusHistoricClient();\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n ServiceTypeClient\n} from \"../../../types/services\";\nimport { AirQualityConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\n\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<AirQualityConfigurationParams> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityDataClient extends GenericInstanceDataClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityAlertClient extends GenericInstanceAlertClient<AirQuality1AlertEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityHistoricClient extends GenericInstanceHistoricClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityClient implements ServiceTypeClient<AirQuality1DataEventValue, AirQuality1AlertEventValue, AirQualityConfigurationParams> {\n private _configurationClient: AirQualityConfigClient;\n private _dataClient: AirQualityDataClient;\n private _alertClient: AirQualityAlertClient;\n private _historicClient: AirQualityHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n this._dataClient = new AirQualityDataClient();\n this._alertClient = new AirQualityAlertClient();\n this._historicClient = new AirQualityHistoricClient();\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { ServiceTypeClient } from \"../../../types/services\";\nimport { RoomConsumesConfigurationParams } from \"../../../types/services-configuration\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<RoomConsumesConfigurationParams> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesDataClient extends GenericInstanceDataClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesAlertClient extends GenericInstanceAlertClient<RoomConsumes1AlertEventValue> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesHistoricClient extends GenericInstanceHistoricClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Data, RoomConsumes1AlertEventValue, RoomConsumesConfigurationParams> {\n private _configurationClient: RoomConsumesConfigClient;\n private _dataClient: RoomConsumesDataClient;\n private _alertClient: RoomConsumesAlertClient;\n private _historicClient: RoomConsumesHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n this._dataClient = new RoomConsumesDataClient();\n this._alertClient = new RoomConsumesAlertClient();\n this._historicClient = new RoomConsumesHistoricClient();\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import {\n RoomGrouping1DataEventValue\n} from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGroupingConfigurationParams } from \"../../../types/services-configuration\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\nexport class RoomGroupingConfigClient extends GenericInstanceConfigClient<RoomGroupingConfigurationParams> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingDataClient extends GenericInstanceDataClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingAlertClient extends GenericInstanceAlertClient<{}> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingHistoricClient extends GenericInstanceHistoricClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingClient implements ServiceTypeClient<RoomGrouping1DataEventValue, {}, RoomGroupingConfigurationParams> {\n private _configurationClient: RoomGroupingConfigClient;\n private _dataClient: RoomGroupingDataClient;\n private _alertClient: RoomGroupingAlertClient;\n private _historicClient: RoomGroupingHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGroupingConfigClient();\n this._dataClient = new RoomGroupingDataClient();\n this._alertClient = new RoomGroupingAlertClient();\n this._historicClient = new RoomGroupingHistoricClient();\n }\n}\n\nexport const roomGroupingClient = new RoomGroupingClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ClassifierCreate,\n ClassifierModify\n} from \"../../../types/ProjectClassifer\";\nimport {\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierDetails>> => {\n return robotcloudApi.get<ClassifierDetails>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n putClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierModify>> => {\n return robotcloudApi.put<ClassifierModify>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n postClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierCreate>> => {\n return robotcloudApi.post<ClassifierCreate>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n deleteClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudDeviceDetails, \n RobotCloudNamedItem,\n RobotCloudRobotCloudDeviceCreate,\n RobotCloudRobotCloudDeviceModify,\n RobotCloudDelete,\n RobotCloudDeviceConfiguration\n} from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n\n getProjectDevicesLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`locations/${locationId}/devices`);\n };\n\n postProjectDeviceLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceCreate>> => {\n return robotcloudApi.post<RobotCloudRobotCloudDeviceCreate>(`locations/${locationId}/devices`);\n };\n\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n\n putDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceModify>> => {\n return robotcloudApi.put<RobotCloudRobotCloudDeviceModify>(`devices/${deviceId}`);\n };\n\n deleteDevice = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`devices/${deviceId}`);\n };\n\n getDeviceConfiguration = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceConfiguration>> => {\n return robotcloudApi.get<RobotCloudDeviceConfiguration>(`devices/${deviceId}/compatibleconfigurationtypes`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance,\n CreateServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudLocationDetails,\n RobotCloudLocationModify,\n RobotCloudLocationCreate\n} from \"../../../types/ProjectLocation\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\nclass LocationsClient {\n\n getAll = (\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 post = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudLocationCreate[]>> => {\n return robotcloudApi.post<RobotCloudLocationCreate[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n get = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n\n put = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationModify>> => {\n return robotcloudApi.put<RobotCloudLocationModify>(\n `locations/${locationId}`,\n {}\n );\n };\n\n delete = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `locations/${locationId}`,\n {}\n );\n };\n\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 postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance[]>> => {\n return robotcloudApi.post<CreateServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudPutProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n RobotCloudDelete,\n RobotCloudProjectUsers,\n RobotCloudProjectInstances,\n RobotCloudProjectApplications,\n RobotCloudApplicationEnable,\n RobotCloudCreateProject\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n\n postOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudCreateProject>> => {\n return robotcloudApi.post<RobotCloudCreateProject>(\n `organizations/${organizationId}/projects`\n );\n };\n\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n putProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudPutProject>> => {\n return robotcloudApi.put<RobotCloudPutProject>(`projects/${prjId}`, {\n params,\n });\n };\n\n deleteProject = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectUsers = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectUsers>> => {\n return robotcloudApi.get<RobotCloudProjectUsers>(`projects/${prjId}/users`, {\n params,\n });\n };\n\n getProjectApplications = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectApplications[]>> => {\n return robotcloudApi.get<RobotCloudProjectApplications[]>(`projects/${prjId}/applications`, {\n params,\n });\n };\n\n getProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudProjectApplications>> => {\n return robotcloudApi.get<RobotCloudProjectApplications>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n putProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudApplicationEnable>> => {\n return robotcloudApi.put<RobotCloudApplicationEnable>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n getProjectInstances = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectInstances[]>> => {\n return robotcloudApi.get<RobotCloudProjectInstances[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n CreateServiceInstance,\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ModifyServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n ProjectSizeInstances\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudServiceTypeDetails,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\nimport { ServiceDataMeasurement } from \"../../../types/services\";\nimport { ServiceInstanceRead } from \"../../../types/ServiceInstanceRead\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n\n getAll = (\n prjId: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance>> => {\n return robotcloudApi.post<CreateServiceInstance>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n putServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<ModifyServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n deleteServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n putServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n getServiceAllInstancesData(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/data`);\n };\n\n getServiceInstancesData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/data`);\n };\n \n\n getServiceAllInstancesAlerts(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceInstanceRead<any>[]>> {\n return robotcloudApi.get<ServiceInstanceRead<any>[]>(\n `projects/${prjId}/services/${service_type}/alert`);\n };\n\n getServiceInstancesAlerts(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/alert`);\n };\n\n getServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n putServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.put<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n getServiceInstancesHistoricData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data`);\n };\n\n getServiceInstancesHistoricDataAggregate(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data/aggregate`);\n };\n\n getServiceLocation (\n prjId: string,\n locationId: string\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/locations/${locationId}/services`);\n };\n\n getSizeProjectInstances (\n prjId: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/instances`);\n };\n\n getSizeProjectServicesInstances (\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/services/${service_type}/instances`);\n };\n\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n putProjectSubsystem\n} from \"../../../types/ProjectSubsystem\";\nimport {\n ProjectLocations\n} from \"../../../types/ProjectLocation\";\nimport { RobotCloudDescribedItem, RobotCloudDelete } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass SubsystemsClient {\n getProjectSubsystems = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n logger.info(`Get project ${prjId} subsystems`);\n return robotcloudApi.get<RobotCloudDescribedItem[]>(\n `projects/${prjId}/subsystems`\n );\n };\n\n getProjectSubsystem = (\n prjId: string,\n subsysId: string\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Get subsystem ${subsysId} from project ${prjId}`);\n return robotcloudApi.get<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n postProjectSubsystem = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Create subsystem in project ${prjId}`);\n return robotcloudApi.post<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems`\n );\n };\n\n putProjectSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<putProjectSubsystem>> => {\n logger.info(`Update subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.put<putProjectSubsystem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n deleteSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}/subsystems/${subsysId}`);\n };\n\n getProjectSubsystemLocations = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<ProjectLocations>> => {\n logger.info(`Get subsystems locations ${subsysId} in project ${prjId}`);\n return robotcloudApi.get<ProjectLocations>(\n `projects/${prjId}/subsystems/${subsysId}/locations`\n );\n };\n\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n ProjectModifyTag,\n} from \"../../../types/ProjectTag\";\nimport {\n RobotCloudDelete,\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n\n getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n\n postTag = (\n prjId: string,\n ): Promise<AxiosResponse<ProjectTag>> => {\n logger.info(`Create tag for project ${prjId}`);\n return robotcloudApi.post<ProjectTag>(`projects/${prjId}/tags`);\n };\n\n putTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectModifyTag>> => {\n logger.info(`Modify project ${prjId} tag ${tagId}`);\n return robotcloudApi.put<ProjectModifyTag>(`tags/${tagId}`);\n };\n\n deleteTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete project ${prjId} tag ${tagId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`tags/${tagId}`);\n };\n\n}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"robotCloudApi\";\nimport { LoginClient, LoginClientImpl } from \"./login\";\nimport { AlertsClientImpl } from \"./alerts\";\nimport { OrganizationsClient } from \"./organizations\";\nimport { UsersClient } from \"./users\";\nimport { AlertsClient } from \"../../types/alerts\";\nimport { ApplicationsClient } from \"./applications\";\n\nexport * from \"./services\"\nexport * from \"./projects\"\nexport { OrganizationsClient } from \"./organizations\"\nexport { UsersClient } from \"./users\"\nexport { LoginClient } from \"./login\"\nexport { ApplicationsClient } from \"./applications\"\n\nexport const applicationsClient: ApplicationsClient = new ApplicationsClient(robotcloudApi);\nexport const loginClient: LoginClient = new LoginClientImpl(robotcloudApi);\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\nexport const organizationsClient: OrganizationsClient = new OrganizationsClient(robotcloudApi);\nexport const usersClient: UsersClient = new UsersClient(robotcloudApi);\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","import_axios","robotcloudApi","axios","robotcloudApi","robotcloudApi","robotcloudApi","robotcloudApi","logger","logger","logger","logger","logger","logger","axios","logger","tagsClient","i"]}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/login.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/client/applications.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/services/room-grouping-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/index.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\";\nimport { loginClient } from \"@/client\";\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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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 { data } = await loginClient.renewToken(renew_token)\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 { useLogger } from \"@/utils/logger\";\nimport axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { SessionTokenResponse } from \"../../types/Token\";\n\nexport interface LoginClient {\n login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>>;\n renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>>;\n}\n\nexport class LoginClientImpl implements LoginClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('LoginClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n public async login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n const encoded = btoa(`${username}:${password}`)\n const basicString = `Basic ${encoded}`\n\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login', {\n headers: {\n Authorization: basicString,\n \"x-api-key\": apiKey\n }\n });\n } catch (error) {\n this.logger.error('Error logging in', error);\n throw error;\n }\n }\n\n public async renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login/renew', {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n } catch (error) {\n this.logger.error('Error renewing token', error);\n throw error;\n\n }\n }\n}","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport {\n RobotCloudServiceTypeDetails,\n} from \"../../types/RobotCloudClient\";\nimport {\n AlertAggregatedLogsRequestParams,\n AlertLogsListRequestParams,\n AlertsByLocationRequestParams,\n AlertsProjectStatsRequestParams,\n SubsystemRequestParams\n} from \"../../types/request-params\";\nimport { useLogger } from \"utils/logger\";\nimport {\n AlertLogAckAlerts,\n AlertsByLocation,\n AlertsClient,\n AlertsLogsAggregated,\n AlertsLogsList,\n AlertsLogsStats\n} from \"../../types/alerts\";\n\nconst ALERTS_BY_SERVICE_TYPE = {\n \"RoomBLEPairing_1\": [],\n \"RoomClime_1\": [\n \"high_temperature\",\n \"low_temperature\",\n \"high_humidity\",\n \"fancoil_on_overtime\"\n ],\n \"RoomConsumes_1\": [\n \"high_daily_energy_electric\",\n \"high_daily_energy_thermal\",\n \"high_daily_hot_water\",\n \"high_daily_cold_water\"\n ],\n \"RoomDiagnostics_1\": [\n \"low_peripheral_num\"\n ],\n \"RoomGrouping_1\": [],\n \"RoomGuestStatus_1\": [\n \"door_open_overtime\",\n \"window_open_overtime\",\n \"medical_alarm\"\n ],\n}\nexport class AlertsClientImpl implements AlertsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('AlertsClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getProjectStats(projectId: string, params?: AlertsProjectStatsRequestParams): Promise<AxiosResponse<AlertsLogsStats>> {\n return this.robotcloudApi.get<AlertsLogsStats>(\n `projects/${projectId}/alerts/stats`,\n { params: params ?? {} }\n );\n }\n\n getProjectLog(\n projectId: string,\n params: AlertLogsListRequestParams\n ): Promise<AxiosResponse<AlertsLogsList>> {\n return this.robotcloudApi.get<AlertsLogsList>(\n `projects/${projectId}/alerts/log`,\n {\n params,\n }\n );\n }\n\n acknowledge(\n projectId: string,\n data: AlertLogAckAlerts\n ): Promise<AxiosResponse<AlertsLogsList>> {\n this.logger.debug(\"Sending put data: \", data);\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\n `projects/${projectId}/alerts/log`,\n data\n );\n }\n\n getAggregatedLogs(\n projectId: string,\n params: AlertAggregatedLogsRequestParams\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\n return this.robotcloudApi.get<AlertsLogsAggregated>(\n `projects/${projectId}/alerts/aggregate`,\n { params }\n );\n }\n\n async getAvailableAlerts(projectId: string, params?: SubsystemRequestParams): Promise<AxiosResponse<string[]>> {\n const { data } = await this.robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${projectId}/services`,\n { params: params ?? {} }\n );\n\n let alerts: string[] = [];\n for (const service of data) {\n if (!(service.name in ALERTS_BY_SERVICE_TYPE)) {\n this.logger.warn(`Service ${service.name} not found in ALERTS_BY_SERVICE_TYPE`);\n continue;\n }\n alerts.push(...ALERTS_BY_SERVICE_TYPE[service.name as keyof typeof ALERTS_BY_SERVICE_TYPE]);\n }\n return {\n data: alerts\n } as AxiosResponse<string[]>;\n }\n\n getAlertsByLocation(projectId: string, params?: AlertsByLocationRequestParams): Promise<AxiosResponse<AlertsByLocation>> {\n return this.robotcloudApi.get<AlertsByLocation>(\n `projects/${projectId}/alerts/bylocation`,\n { params }\n );\n }\n\n getServiceTypeAlertKeys(serviceType: string): string[] {\n return ALERTS_BY_SERVICE_TYPE[serviceType as keyof typeof ALERTS_BY_SERVICE_TYPE];\n }\n}\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudOrganizations,\n RobotCloudCreateOrganization,\n RobotCloudPutOrganization,\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class OrganizationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('OrganizationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizations = (): Promise<AxiosResponse<RobotCloudOrganizations[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizations[]>(`organizations`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateOrganization>> => {\n return this.robotcloudApi.post<RobotCloudCreateOrganization>(`organizations`)\n };\n\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n putOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudPutOrganization>> => {\n return this.robotcloudApi.put<RobotCloudPutOrganization>(\n `organizations/${organizationId}`\n );\n };\n\n deleteOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `organizations/${organizationId}`\n );\n };\n\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudUserOrganization,\n RobotCloudUsers,\n RobotCloudUserDetails,\n RobotCloudPutUserDetails,\n RobotCloudUserProject,\n RobotCloudPostUserProject,\n RobotCloudPutProjectUser,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class UsersClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('UsersClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationUsers[]>(\n `organizations/${organizationId}/users`\n );\n };\n\n postOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationCreateUser>> => {\n return this.robotcloudApi.post<RobotCloudOrganizationCreateUser>(\n `organizations/${organizationId}/users`\n );\n };\n\n\n getUsers = (): Promise<AxiosResponse<RobotCloudUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudUsers[]>(`users`)\n };\n\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return this.robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n putUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPutUserDetails>> => {\n return this.robotcloudApi.put<RobotCloudPutUserDetails>(`users/${username}`);\n };\n\n deleteUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`users/${username}`);\n };\n\n getUserOrganizations = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserOrganization[]>> => {\n return this.robotcloudApi.get<RobotCloudUserOrganization[]>(`users/${username}/organizations`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return this.robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n\n postUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPostUserProject>> => {\n return this.robotcloudApi.post<RobotCloudPostUserProject>(\n `users/${username}/projects`\n );\n };\n\n getProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudUserProject>> => {\n return this.robotcloudApi.get<RobotCloudUserProject>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n putProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudPutProjectUser>> => {\n return this.robotcloudApi.put<RobotCloudPutProjectUser>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n deleteProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `users/${username}/projects/${projectId}`\n );\n }\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudDescribedItem,\n RobotCloudCreateApplication,\n RobotCloudGetApplication,\n RobotCloudPutApplication,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class ApplicationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('ApplicationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n getApplications = (): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n return this.robotcloudApi.get<RobotCloudDescribedItem[]>(`application/register`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateApplication>> => {\n return this.robotcloudApi.post<RobotCloudCreateApplication>(`application/register`)\n };\n\n getApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudGetApplication>> => {\n return this.robotcloudApi.get<RobotCloudGetApplication>(`application/register/${applicationId}`)\n };\n\n putApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudPutApplication>> => {\n return this.robotcloudApi.put<RobotCloudPutApplication>(`application/register/${applicationId}`)\n };\n\n deleteApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`application/register/${applicationId}`)\n };\n\n}","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { ServiceDataMeasurement, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceAlertsClient, ServiceInstanceHistoricClient, HistoricAggregateFunction } from \"../../../types/services\";\nimport { ServiceDataRequestParams, ServiceInstanceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceAlertRequestParams, ServiceInstanceHistoricParams, ServiceInstanceHistoricAggregateParams } from \"../../../types/request-params\";\n\n\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n project_id: string,\n instance_id: string\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.get<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\n );\n }\n\n put(\n project_id: string,\n instance_id: string,\n new_config: T\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.put<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\n new_config\n );\n }\n}\n\nexport class GenericInstanceDataClient<T> implements ServiceInstanceDataClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceAlertClient<T> implements ServiceInstanceAlertsClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceHistoricClient<T> implements ServiceInstanceHistoricClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAggregate(\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<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/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 headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}","import { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\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 RoomClimeDataClient extends GenericInstanceDataClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeAlertClient extends GenericInstanceAlertClient<RoomClime1AlertEventValue> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeHistoricClient extends GenericInstanceHistoricClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient implements ServiceTypeClient<RoomClime1Data, RoomClime1AlertEventValue, RoomClimeConfigurationParams> {\n private _configurationClient: RoomClimeConfigClient;\n private _dataClient: RoomClimeDataClient;\n private _alertClient: RoomClimeAlertClient;\n private _historicClient: RoomClimeHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n this._dataClient = new RoomClimeDataClient();\n this._alertClient = new RoomClimeAlertClient();\n this._historicClient = new RoomClimeHistoricClient();\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGuestStatus1AlertEventValue, ServiceTypeClient } from \"../../../types/services\";\n\n\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusDataClient extends GenericInstanceDataClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusAlertClient extends GenericInstanceAlertClient<RoomGuestStatus1AlertEventValue> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusHistoricClient extends GenericInstanceHistoricClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusClient implements ServiceTypeClient<RoomGuestStatus1Data, RoomGuestStatus1AlertEventValue, RoomGuestStatusConfigurationParams> {\n private _configurationClient: RoomGuestStatusConfigClient;\n private _dataClient: RoomGuestStatusDataClient;\n private _alertClient: RoomGuestStatusAlertClient;\n private _historicClient: RoomGuestStatusHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n this._dataClient = new RoomGuestStatusDataClient();\n this._alertClient = new RoomGuestStatusAlertClient();\n this._historicClient = new RoomGuestStatusHistoricClient();\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n ServiceTypeClient\n} from \"../../../types/services\";\nimport { AirQualityConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\n\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<AirQualityConfigurationParams> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityDataClient extends GenericInstanceDataClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityAlertClient extends GenericInstanceAlertClient<AirQuality1AlertEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityHistoricClient extends GenericInstanceHistoricClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityClient implements ServiceTypeClient<AirQuality1DataEventValue, AirQuality1AlertEventValue, AirQualityConfigurationParams> {\n private _configurationClient: AirQualityConfigClient;\n private _dataClient: AirQualityDataClient;\n private _alertClient: AirQualityAlertClient;\n private _historicClient: AirQualityHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n this._dataClient = new AirQualityDataClient();\n this._alertClient = new AirQualityAlertClient();\n this._historicClient = new AirQualityHistoricClient();\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { ServiceTypeClient } from \"../../../types/services\";\nimport { RoomConsumesConfigurationParams } from \"../../../types/services-configuration\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<RoomConsumesConfigurationParams> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesDataClient extends GenericInstanceDataClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesAlertClient extends GenericInstanceAlertClient<RoomConsumes1AlertEventValue> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesHistoricClient extends GenericInstanceHistoricClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Data, RoomConsumes1AlertEventValue, RoomConsumesConfigurationParams> {\n private _configurationClient: RoomConsumesConfigClient;\n private _dataClient: RoomConsumesDataClient;\n private _alertClient: RoomConsumesAlertClient;\n private _historicClient: RoomConsumesHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n this._dataClient = new RoomConsumesDataClient();\n this._alertClient = new RoomConsumesAlertClient();\n this._historicClient = new RoomConsumesHistoricClient();\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import {\n RoomGrouping1DataEventValue\n} from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGroupingConfigurationParams } from \"../../../types/services-configuration\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\nexport class RoomGroupingConfigClient extends GenericInstanceConfigClient<RoomGroupingConfigurationParams> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingDataClient extends GenericInstanceDataClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingAlertClient extends GenericInstanceAlertClient<{}> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingHistoricClient extends GenericInstanceHistoricClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingClient implements ServiceTypeClient<RoomGrouping1DataEventValue, {}, RoomGroupingConfigurationParams> {\n private _configurationClient: RoomGroupingConfigClient;\n private _dataClient: RoomGroupingDataClient;\n private _alertClient: RoomGroupingAlertClient;\n private _historicClient: RoomGroupingHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGroupingConfigClient();\n this._dataClient = new RoomGroupingDataClient();\n this._alertClient = new RoomGroupingAlertClient();\n this._historicClient = new RoomGroupingHistoricClient();\n }\n}\n\nexport const roomGroupingClient = new RoomGroupingClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ClassifierCreate,\n ClassifierModify\n} from \"../../../types/ProjectClassifer\";\nimport {\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierDetails>> => {\n return robotcloudApi.get<ClassifierDetails>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n putClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierModify>> => {\n return robotcloudApi.put<ClassifierModify>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n postClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierCreate>> => {\n return robotcloudApi.post<ClassifierCreate>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n deleteClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudDeviceDetails, \n RobotCloudNamedItem,\n RobotCloudRobotCloudDeviceCreate,\n RobotCloudRobotCloudDeviceModify,\n RobotCloudDelete,\n RobotCloudDeviceConfiguration\n} from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n\n getProjectDevicesLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`locations/${locationId}/devices`);\n };\n\n postProjectDeviceLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceCreate>> => {\n return robotcloudApi.post<RobotCloudRobotCloudDeviceCreate>(`locations/${locationId}/devices`);\n };\n\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n\n putDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceModify>> => {\n return robotcloudApi.put<RobotCloudRobotCloudDeviceModify>(`devices/${deviceId}`);\n };\n\n deleteDevice = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`devices/${deviceId}`);\n };\n\n getDeviceConfiguration = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceConfiguration>> => {\n return robotcloudApi.get<RobotCloudDeviceConfiguration>(`devices/${deviceId}/compatibleconfigurationtypes`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance,\n CreateServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudLocationDetails,\n RobotCloudLocationModify,\n RobotCloudLocationCreate\n} from \"../../../types/ProjectLocation\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\nclass LocationsClient {\n\n getAll = (\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 post = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudLocationCreate[]>> => {\n return robotcloudApi.post<RobotCloudLocationCreate[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n get = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n\n put = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationModify>> => {\n return robotcloudApi.put<RobotCloudLocationModify>(\n `locations/${locationId}`,\n {}\n );\n };\n\n delete = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `locations/${locationId}`,\n {}\n );\n };\n\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 postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance[]>> => {\n return robotcloudApi.post<CreateServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudPutProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n RobotCloudDelete,\n RobotCloudProjectUsers,\n RobotCloudProjectInstances,\n RobotCloudProjectApplications,\n RobotCloudApplicationEnable,\n RobotCloudCreateProject\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n\n postOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudCreateProject>> => {\n return robotcloudApi.post<RobotCloudCreateProject>(\n `organizations/${organizationId}/projects`\n );\n };\n\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n putProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudPutProject>> => {\n return robotcloudApi.put<RobotCloudPutProject>(`projects/${prjId}`, {\n params,\n });\n };\n\n deleteProject = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectUsers = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectUsers>> => {\n return robotcloudApi.get<RobotCloudProjectUsers>(`projects/${prjId}/users`, {\n params,\n });\n };\n\n getProjectApplications = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectApplications[]>> => {\n return robotcloudApi.get<RobotCloudProjectApplications[]>(`projects/${prjId}/applications`, {\n params,\n });\n };\n\n getProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudProjectApplications>> => {\n return robotcloudApi.get<RobotCloudProjectApplications>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n putProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudApplicationEnable>> => {\n return robotcloudApi.put<RobotCloudApplicationEnable>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n getProjectInstances = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectInstances[]>> => {\n return robotcloudApi.get<RobotCloudProjectInstances[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n CreateServiceInstance,\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ModifyServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n ProjectSizeInstances\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudServiceTypeDetails,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\nimport { ServiceDataMeasurement } from \"../../../types/services\";\nimport { ServiceInstanceRead } from \"../../../types/ServiceInstanceRead\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n\n getAll = (\n prjId: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance>> => {\n return robotcloudApi.post<CreateServiceInstance>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n putServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<ModifyServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n deleteServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n putServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n getServiceAllInstancesData(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/data`);\n };\n\n getServiceInstancesData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/data`);\n };\n \n\n getServiceAllInstancesAlerts(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceInstanceRead<any>[]>> {\n return robotcloudApi.get<ServiceInstanceRead<any>[]>(\n `projects/${prjId}/services/${service_type}/alert`);\n };\n\n getServiceInstancesAlerts(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/alert`);\n };\n\n getServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n putServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.put<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n getServiceInstancesHistoricData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data`);\n };\n\n getServiceInstancesHistoricDataAggregate(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data/aggregate`);\n };\n\n getServiceLocation (\n prjId: string,\n locationId: string\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/locations/${locationId}/services`);\n };\n\n getSizeProjectInstances (\n prjId: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/instances`);\n };\n\n getSizeProjectServicesInstances (\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/services/${service_type}/instances`);\n };\n\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n putProjectSubsystem\n} from \"../../../types/ProjectSubsystem\";\nimport {\n ProjectLocations\n} from \"../../../types/ProjectLocation\";\nimport { RobotCloudDescribedItem, RobotCloudDelete } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass SubsystemsClient {\n getProjectSubsystems = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n logger.info(`Get project ${prjId} subsystems`);\n return robotcloudApi.get<RobotCloudDescribedItem[]>(\n `projects/${prjId}/subsystems`\n );\n };\n\n getProjectSubsystem = (\n prjId: string,\n subsysId: string\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Get subsystem ${subsysId} from project ${prjId}`);\n return robotcloudApi.get<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n postProjectSubsystem = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Create subsystem in project ${prjId}`);\n return robotcloudApi.post<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems`\n );\n };\n\n putProjectSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<putProjectSubsystem>> => {\n logger.info(`Update subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.put<putProjectSubsystem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n deleteSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}/subsystems/${subsysId}`);\n };\n\n getProjectSubsystemLocations = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<ProjectLocations>> => {\n logger.info(`Get subsystems locations ${subsysId} in project ${prjId}`);\n return robotcloudApi.get<ProjectLocations>(\n `projects/${prjId}/subsystems/${subsysId}/locations`\n );\n };\n\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n ProjectModifyTag,\n} from \"../../../types/ProjectTag\";\nimport {\n RobotCloudDelete,\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n\n getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n\n postTag = (\n prjId: string,\n ): Promise<AxiosResponse<ProjectTag>> => {\n logger.info(`Create tag for project ${prjId}`);\n return robotcloudApi.post<ProjectTag>(`projects/${prjId}/tags`);\n };\n\n putTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectModifyTag>> => {\n logger.info(`Modify project ${prjId} tag ${tagId}`);\n return robotcloudApi.put<ProjectModifyTag>(`tags/${tagId}`);\n };\n\n deleteTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete project ${prjId} tag ${tagId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`tags/${tagId}`);\n };\n\n}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"robotCloudApi\";\nimport { LoginClient, LoginClientImpl } from \"./login\";\nimport { AlertsClientImpl } from \"./alerts\";\nimport { OrganizationsClient } from \"./organizations\";\nimport { UsersClient } from \"./users\";\nimport { AlertsClient } from \"../../types/alerts\";\nimport { ApplicationsClient } from \"./applications\";\n\nexport * from \"./services\"\nexport * from \"./projects\"\nexport { OrganizationsClient } from \"./organizations\"\nexport { UsersClient } from \"./users\"\nexport { LoginClient } from \"./login\"\nexport { ApplicationsClient } from \"./applications\"\n\nexport const applicationsClient: ApplicationsClient = new ApplicationsClient(robotcloudApi);\nexport const loginClient: LoginClient = new LoginClientImpl(robotcloudApi);\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\nexport const organizationsClient: OrganizationsClient = new OrganizationsClient(robotcloudApi);\nexport const usersClient: UsersClient = new UsersClient(robotcloudApi);\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","axios","robotcloudApi","robotcloudApi","robotcloudApi","robotcloudApi","robotcloudApi","logger","logger","logger","logger","logger","logger","axios","logger","tagsClient","i"]}
|
|
1
|
+
{"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/login.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/client/applications.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/services/room-grouping-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/index.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, RobotCloudRenewJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\nimport { loginClient } from \"@/client\";\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 | RobotCloudRenewJWTPayload | 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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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 { data } = await loginClient.renewToken(renew_token)\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 { useLogger } from \"@/utils/logger\";\nimport axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { SessionTokenResponse } from \"../../types/Token\";\n\nexport interface LoginClient {\n login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>>;\n renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>>;\n}\n\nexport class LoginClientImpl implements LoginClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('LoginClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n public async login(username: string, password: string, apiKey: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n const encoded = btoa(`${username}:${password}`)\n const basicString = `Basic ${encoded}`\n\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login', {\n headers: {\n Authorization: basicString,\n \"x-api-key\": apiKey\n }\n });\n } catch (error) {\n this.logger.error('Error logging in', error);\n throw error;\n }\n }\n\n public async renewToken(token: string): Promise<AxiosResponse<SessionTokenResponse>> {\n try {\n // Do not run interceptors\n const cloudUrl = this.robotcloudApi.defaults.baseURL\n return await axios.get<SessionTokenResponse>(cloudUrl + 'login/renew', {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n } catch (error) {\n this.logger.error('Error renewing token', error);\n throw error;\n\n }\n }\n}","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport {\n RobotCloudServiceTypeDetails,\n} from \"../../types/RobotCloudClient\";\nimport {\n AlertAggregatedLogsRequestParams,\n AlertLogsListRequestParams,\n AlertsByLocationRequestParams,\n AlertsProjectStatsRequestParams,\n SubsystemRequestParams\n} from \"../../types/request-params\";\nimport { useLogger } from \"utils/logger\";\nimport {\n AlertLogAckAlerts,\n AlertsByLocation,\n AlertsClient,\n AlertsLogsAggregated,\n AlertsLogsList,\n AlertsLogsStats\n} from \"../../types/alerts\";\n\nconst ALERTS_BY_SERVICE_TYPE = {\n \"RoomBLEPairing_1\": [],\n \"RoomClime_1\": [\n \"high_temperature\",\n \"low_temperature\",\n \"high_humidity\",\n \"fancoil_on_overtime\"\n ],\n \"RoomConsumes_1\": [\n \"high_daily_energy_electric\",\n \"high_daily_energy_thermal\",\n \"high_daily_hot_water\",\n \"high_daily_cold_water\"\n ],\n \"RoomDiagnostics_1\": [\n \"low_peripheral_num\"\n ],\n \"RoomGrouping_1\": [],\n \"RoomGuestStatus_1\": [\n \"door_open_overtime\",\n \"window_open_overtime\",\n \"medical_alarm\"\n ],\n}\nexport class AlertsClientImpl implements AlertsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('AlertsClientImpl')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getProjectStats(projectId: string, params?: AlertsProjectStatsRequestParams): Promise<AxiosResponse<AlertsLogsStats>> {\n return this.robotcloudApi.get<AlertsLogsStats>(\n `projects/${projectId}/alerts/stats`,\n { params: params ?? {} }\n );\n }\n\n getProjectLog(\n projectId: string,\n params: AlertLogsListRequestParams\n ): Promise<AxiosResponse<AlertsLogsList>> {\n return this.robotcloudApi.get<AlertsLogsList>(\n `projects/${projectId}/alerts/log`,\n {\n params,\n }\n );\n }\n\n acknowledge(\n projectId: string,\n data: AlertLogAckAlerts\n ): Promise<AxiosResponse<AlertsLogsList>> {\n this.logger.debug(\"Sending put data: \", data);\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\n `projects/${projectId}/alerts/log`,\n data\n );\n }\n\n getAggregatedLogs(\n projectId: string,\n params: AlertAggregatedLogsRequestParams\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\n return this.robotcloudApi.get<AlertsLogsAggregated>(\n `projects/${projectId}/alerts/aggregate`,\n { params }\n );\n }\n\n async getAvailableAlerts(projectId: string, params?: SubsystemRequestParams): Promise<AxiosResponse<string[]>> {\n const { data } = await this.robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${projectId}/services`,\n { params: params ?? {} }\n );\n\n let alerts: string[] = [];\n for (const service of data) {\n if (!(service.name in ALERTS_BY_SERVICE_TYPE)) {\n this.logger.warn(`Service ${service.name} not found in ALERTS_BY_SERVICE_TYPE`);\n continue;\n }\n alerts.push(...ALERTS_BY_SERVICE_TYPE[service.name as keyof typeof ALERTS_BY_SERVICE_TYPE]);\n }\n return {\n data: alerts\n } as AxiosResponse<string[]>;\n }\n\n getAlertsByLocation(projectId: string, params?: AlertsByLocationRequestParams): Promise<AxiosResponse<AlertsByLocation>> {\n return this.robotcloudApi.get<AlertsByLocation>(\n `projects/${projectId}/alerts/bylocation`,\n { params }\n );\n }\n\n getServiceTypeAlertKeys(serviceType: string): string[] {\n return ALERTS_BY_SERVICE_TYPE[serviceType as keyof typeof ALERTS_BY_SERVICE_TYPE];\n }\n}\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudOrganizations,\n RobotCloudCreateOrganization,\n RobotCloudPutOrganization,\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class OrganizationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('OrganizationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizations = (): Promise<AxiosResponse<RobotCloudOrganizations[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizations[]>(`organizations`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateOrganization>> => {\n return this.robotcloudApi.post<RobotCloudCreateOrganization>(`organizations`)\n };\n\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n putOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudPutOrganization>> => {\n return this.robotcloudApi.put<RobotCloudPutOrganization>(\n `organizations/${organizationId}`\n );\n };\n\n deleteOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `organizations/${organizationId}`\n );\n };\n\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudUserOrganization,\n RobotCloudUsers,\n RobotCloudUserDetails,\n RobotCloudPutUserDetails,\n RobotCloudUserProject,\n RobotCloudPostUserProject,\n RobotCloudPutProjectUser,\n RobotCloudOrganizationUsers,\n RobotCloudOrganizationCreateUser,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class UsersClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('UsersClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n\n getOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudOrganizationUsers[]>(\n `organizations/${organizationId}/users`\n );\n };\n\n postOrganizationUsers = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationCreateUser>> => {\n return this.robotcloudApi.post<RobotCloudOrganizationCreateUser>(\n `organizations/${organizationId}/users`\n );\n };\n\n\n getUsers = (): Promise<AxiosResponse<RobotCloudUsers[]>> => {\n return this.robotcloudApi.get<RobotCloudUsers[]>(`users`)\n };\n\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return this.robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n putUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPutUserDetails>> => {\n return this.robotcloudApi.put<RobotCloudPutUserDetails>(`users/${username}`);\n };\n\n deleteUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`users/${username}`);\n };\n\n getUserOrganizations = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserOrganization[]>> => {\n return this.robotcloudApi.get<RobotCloudUserOrganization[]>(`users/${username}/organizations`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return this.robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n\n postUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudPostUserProject>> => {\n return this.robotcloudApi.post<RobotCloudPostUserProject>(\n `users/${username}/projects`\n );\n };\n\n getProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudUserProject>> => {\n return this.robotcloudApi.get<RobotCloudUserProject>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n putProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudPutProjectUser>> => {\n return this.robotcloudApi.put<RobotCloudPutProjectUser>(\n `users/${username}/projects/${projectId}`\n );\n }\n\n deleteProjectToUser = (\n username: string,\n projectId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(\n `users/${username}/projects/${projectId}`\n );\n }\n}\n\n","import type { AxiosInstance, AxiosResponse } from \"axios\";\n\nimport {\n RobotCloudDescribedItem,\n RobotCloudCreateApplication,\n RobotCloudGetApplication,\n RobotCloudPutApplication,\n RobotCloudDelete\n} from \"../../types/RobotCloudClient\";\nimport { useLogger } from \"@/utils/logger\";\n\nexport class ApplicationsClient {\n private robotcloudApi: AxiosInstance;\n private logger = useLogger('ApplicationsClient')\n\n constructor(robotcloudApi: AxiosInstance) {\n this.robotcloudApi = robotcloudApi;\n }\n getApplications = (): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n return this.robotcloudApi.get<RobotCloudDescribedItem[]>(`application/register`)\n };\n\n postOrganizations = (): Promise<AxiosResponse<RobotCloudCreateApplication>> => {\n return this.robotcloudApi.post<RobotCloudCreateApplication>(`application/register`)\n };\n\n getApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudGetApplication>> => {\n return this.robotcloudApi.get<RobotCloudGetApplication>(`application/register/${applicationId}`)\n };\n\n putApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudPutApplication>> => {\n return this.robotcloudApi.put<RobotCloudPutApplication>(`application/register/${applicationId}`)\n };\n\n deleteApplication = (\n applicationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return this.robotcloudApi.delete<RobotCloudDelete>(`application/register/${applicationId}`)\n };\n\n}","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { ServiceDataMeasurement, ServiceInstanceConfigClient, ServiceInstanceDataClient, ServiceInstanceAlertsClient, ServiceInstanceHistoricClient, HistoricAggregateFunction } from \"../../../types/services\";\nimport { ServiceDataRequestParams, ServiceInstanceDataRequestParams, ServiceInstanceAlertRequestParams, ServiceAlertRequestParams, ServiceInstanceHistoricParams, ServiceInstanceHistoricAggregateParams } from \"../../../types/request-params\";\n\n\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n project_id: string,\n instance_id: string\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.get<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\n );\n }\n\n put(\n project_id: string,\n instance_id: string,\n new_config: T\n ): Promise<AxiosResponse<T>> {\n return robotcloudApi.put<T>(\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\n new_config\n );\n }\n}\n\nexport class GenericInstanceDataClient<T> implements ServiceInstanceDataClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/data`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceAlertClient<T> implements ServiceInstanceAlertsClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAll(\n prjId: string,\n params?: ServiceAlertRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/alert`,\n {\n params,\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}\n\nexport class GenericInstanceHistoricClient<T> implements ServiceInstanceHistoricClient<T> {\n private readonly serviceName: string;\n\n constructor(serviceName: string) {\n this.serviceName = serviceName;\n }\n\n get(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/instances/${instanceId}/historic/data`,\n {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params,\n },\n headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n\n getAggregate(\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<T>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<T>[]>(\n `/projects/${prjId}/services/${this.serviceName}/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 headers: {\n Accept: \"application/json\",\n },\n }\n );\n }\n}","import { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\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 RoomClimeDataClient extends GenericInstanceDataClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeAlertClient extends GenericInstanceAlertClient<RoomClime1AlertEventValue> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeHistoricClient extends GenericInstanceHistoricClient<RoomClime1Data> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient implements ServiceTypeClient<RoomClime1Data, RoomClime1AlertEventValue, RoomClimeConfigurationParams> {\n private _configurationClient: RoomClimeConfigClient;\n private _dataClient: RoomClimeDataClient;\n private _alertClient: RoomClimeAlertClient;\n private _historicClient: RoomClimeHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n this._dataClient = new RoomClimeDataClient();\n this._alertClient = new RoomClimeAlertClient();\n this._historicClient = new RoomClimeHistoricClient();\n }\n}\n\nexport const roomClimeClient = new RoomClimeClient();\n\n","import { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGuestStatus1AlertEventValue, ServiceTypeClient } from \"../../../types/services\";\n\n\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusDataClient extends GenericInstanceDataClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusAlertClient extends GenericInstanceAlertClient<RoomGuestStatus1AlertEventValue> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusHistoricClient extends GenericInstanceHistoricClient<RoomGuestStatus1Data> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nexport class RoomGuestStatusClient implements ServiceTypeClient<RoomGuestStatus1Data, RoomGuestStatus1AlertEventValue, RoomGuestStatusConfigurationParams> {\n private _configurationClient: RoomGuestStatusConfigClient;\n private _dataClient: RoomGuestStatusDataClient;\n private _alertClient: RoomGuestStatusAlertClient;\n private _historicClient: RoomGuestStatusHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n this._dataClient = new RoomGuestStatusDataClient();\n this._alertClient = new RoomGuestStatusAlertClient();\n this._historicClient = new RoomGuestStatusHistoricClient();\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient();\n\n","import {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n ServiceTypeClient\n} from \"../../../types/services\";\nimport { AirQualityConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceAlertClient, GenericInstanceHistoricClient } from \"./generics\";\n\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<AirQualityConfigurationParams> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityDataClient extends GenericInstanceDataClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityAlertClient extends GenericInstanceAlertClient<AirQuality1AlertEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityHistoricClient extends GenericInstanceHistoricClient<AirQuality1DataEventValue> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nexport class AirQualityClient implements ServiceTypeClient<AirQuality1DataEventValue, AirQuality1AlertEventValue, AirQualityConfigurationParams> {\n private _configurationClient: AirQualityConfigClient;\n private _dataClient: AirQualityDataClient;\n private _alertClient: AirQualityAlertClient;\n private _historicClient: AirQualityHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n this._dataClient = new AirQualityDataClient();\n this._alertClient = new AirQualityAlertClient();\n this._historicClient = new AirQualityHistoricClient();\n }\n}\n\nexport const airQualityClient = new AirQualityClient();\n\n","import { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { ServiceTypeClient } from \"../../../types/services\";\nimport { RoomConsumesConfigurationParams } from \"../../../types/services-configuration\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<RoomConsumesConfigurationParams> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesDataClient extends GenericInstanceDataClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesAlertClient extends GenericInstanceAlertClient<RoomConsumes1AlertEventValue> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesHistoricClient extends GenericInstanceHistoricClient<RoomConsumes1Data> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nexport class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Data, RoomConsumes1AlertEventValue, RoomConsumesConfigurationParams> {\n private _configurationClient: RoomConsumesConfigClient;\n private _dataClient: RoomConsumesDataClient;\n private _alertClient: RoomConsumesAlertClient;\n private _historicClient: RoomConsumesHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n this._dataClient = new RoomConsumesDataClient();\n this._alertClient = new RoomConsumesAlertClient();\n this._historicClient = new RoomConsumesHistoricClient();\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import {\n RoomGrouping1DataEventValue\n} from \"../../../types/services-data\";\nimport { GenericInstanceAlertClient, GenericInstanceConfigClient, GenericInstanceDataClient, GenericInstanceHistoricClient } from \"./generics\";\nimport { RoomGroupingConfigurationParams } from \"../../../types/services-configuration\";\nimport { ServiceTypeClient } from \"../../../types/services\";\n\nexport class RoomGroupingConfigClient extends GenericInstanceConfigClient<RoomGroupingConfigurationParams> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingDataClient extends GenericInstanceDataClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingAlertClient extends GenericInstanceAlertClient<{}> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingHistoricClient extends GenericInstanceHistoricClient<RoomGrouping1DataEventValue> {\n constructor() {\n super(\"RoomGrouping_1\");\n }\n}\n\nexport class RoomGroupingClient implements ServiceTypeClient<RoomGrouping1DataEventValue, {}, RoomGroupingConfigurationParams> {\n private _configurationClient: RoomGroupingConfigClient;\n private _dataClient: RoomGroupingDataClient;\n private _alertClient: RoomGroupingAlertClient;\n private _historicClient: RoomGroupingHistoricClient;\n\n get configuration() {\n return this._configurationClient;\n }\n get data() {\n return this._dataClient;\n }\n get alerts() {\n return this._alertClient;\n }\n get historic() {\n return this._historicClient;\n }\n\n constructor() {\n this._configurationClient = new RoomGroupingConfigClient();\n this._dataClient = new RoomGroupingDataClient();\n this._alertClient = new RoomGroupingAlertClient();\n this._historicClient = new RoomGroupingHistoricClient();\n }\n}\n\nexport const roomGroupingClient = new RoomGroupingClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ClassifierCreate,\n ClassifierModify\n} from \"../../../types/ProjectClassifer\";\nimport {\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierDetails>> => {\n return robotcloudApi.get<ClassifierDetails>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n putClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierModify>> => {\n return robotcloudApi.put<ClassifierModify>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n postClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<ClassifierCreate>> => {\n return robotcloudApi.post<ClassifierCreate>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n\n deleteClassifier = (\n classifierId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `classifiers/${classifierId}`,\n {}\n );\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudDeviceDetails, \n RobotCloudNamedItem,\n RobotCloudRobotCloudDeviceCreate,\n RobotCloudRobotCloudDeviceModify,\n RobotCloudDelete,\n RobotCloudDeviceConfiguration\n} from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n\n getProjectDevicesLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`locations/${locationId}/devices`);\n };\n\n postProjectDeviceLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceCreate>> => {\n return robotcloudApi.post<RobotCloudRobotCloudDeviceCreate>(`locations/${locationId}/devices`);\n };\n\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n\n putDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudRobotCloudDeviceModify>> => {\n return robotcloudApi.put<RobotCloudRobotCloudDeviceModify>(`devices/${deviceId}`);\n };\n\n deleteDevice = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`devices/${deviceId}`);\n };\n\n getDeviceConfiguration = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceConfiguration>> => {\n return robotcloudApi.get<RobotCloudDeviceConfiguration>(`devices/${deviceId}/compatibleconfigurationtypes`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance,\n CreateServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudLocationDetails,\n RobotCloudLocationModify,\n RobotCloudLocationCreate\n} from \"../../../types/ProjectLocation\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\nclass LocationsClient {\n\n getAll = (\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 post = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudLocationCreate[]>> => {\n return robotcloudApi.post<RobotCloudLocationCreate[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n get = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n\n put = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationModify>> => {\n return robotcloudApi.put<RobotCloudLocationModify>(\n `locations/${locationId}`,\n {}\n );\n };\n\n delete = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `locations/${locationId}`,\n {}\n );\n };\n\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 postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance[]>> => {\n return robotcloudApi.post<CreateServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudPutProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n RobotCloudDelete,\n RobotCloudProjectUsers,\n RobotCloudProjectInstances,\n RobotCloudProjectApplications,\n RobotCloudApplicationEnable,\n RobotCloudCreateProject\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n\n postOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudCreateProject>> => {\n return robotcloudApi.post<RobotCloudCreateProject>(\n `organizations/${organizationId}/projects`\n );\n };\n\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n putProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudPutProject>> => {\n return robotcloudApi.put<RobotCloudPutProject>(`projects/${prjId}`, {\n params,\n });\n };\n\n deleteProject = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectUsers = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectUsers>> => {\n return robotcloudApi.get<RobotCloudProjectUsers>(`projects/${prjId}/users`, {\n params,\n });\n };\n\n getProjectApplications = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectApplications[]>> => {\n return robotcloudApi.get<RobotCloudProjectApplications[]>(`projects/${prjId}/applications`, {\n params,\n });\n };\n\n getProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudProjectApplications>> => {\n return robotcloudApi.get<RobotCloudProjectApplications>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n putProjectApplication = (\n prjId: string,\n appId: string\n ): Promise<AxiosResponse<RobotCloudApplicationEnable>> => {\n return robotcloudApi.put<RobotCloudApplicationEnable>(`projects/${prjId}/applications/${appId}`,\n {}\n );\n };\n\n getProjectInstances = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectInstances[]>> => {\n return robotcloudApi.get<RobotCloudProjectInstances[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n CreateServiceInstance,\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ModifyServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n ProjectSizeInstances\n} from \"../../../types/ServiceInstance\";\nimport {\n RobotCloudServiceTypeDetails,\n RobotCloudDelete\n} from \"../../../types/RobotCloudClient\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\nimport { ServiceDataMeasurement } from \"../../../types/services\";\nimport { ServiceInstanceRead } from \"../../../types/ServiceInstanceRead\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n\n getAll = (\n prjId: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n\n\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n postLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: string,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<CreateServiceInstance>> => {\n return robotcloudApi.post<CreateServiceInstance>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n putServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<ModifyServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n deleteServiceInstance = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.delete<RobotCloudDelete>(\n `projects/${prjId}/services/${service_type}/instances/${instance_id}`\n );\n };\n\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n putServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n instance_id: string\n ) => {\n return robotcloudApi.put<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/deviceconf`);\n };\n\n getServiceAllInstancesData(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/data`);\n };\n\n getServiceInstancesData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/data`);\n };\n \n\n getServiceAllInstancesAlerts(\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ServiceInstanceRead<any>[]>> {\n return robotcloudApi.get<ServiceInstanceRead<any>[]>(\n `projects/${prjId}/services/${service_type}/alert`);\n };\n\n getServiceInstancesAlerts(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/alert`);\n };\n\n getServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n putServiceInstancesConfiguration(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.put<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/configuration`);\n };\n\n getServiceInstancesHistoricData(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data`);\n };\n\n getServiceInstancesHistoricDataAggregate(\n prjId: string,\n service_type: string,\n instance_id: string\n ): Promise<AxiosResponse<ServiceDataMeasurement<any>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<any>[]>(`projects/${prjId}/services/${service_type}/instances/${instance_id}/historic/data/aggregate`);\n };\n\n getServiceLocation (\n prjId: string,\n locationId: string\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/locations/${locationId}/services`);\n };\n\n getSizeProjectInstances (\n prjId: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/instances`);\n };\n\n getSizeProjectServicesInstances (\n prjId: string,\n service_type: string\n ): Promise<AxiosResponse<ProjectSizeInstances>> {\n return robotcloudApi.get<ProjectSizeInstances>(\n `size/projects/${prjId}/services/${service_type}/instances`);\n };\n\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n putProjectSubsystem\n} from \"../../../types/ProjectSubsystem\";\nimport {\n ProjectLocations\n} from \"../../../types/ProjectLocation\";\nimport { RobotCloudDescribedItem, RobotCloudDelete } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass SubsystemsClient {\n getProjectSubsystems = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem[]>> => {\n logger.info(`Get project ${prjId} subsystems`);\n return robotcloudApi.get<RobotCloudDescribedItem[]>(\n `projects/${prjId}/subsystems`\n );\n };\n\n getProjectSubsystem = (\n prjId: string,\n subsysId: string\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Get subsystem ${subsysId} from project ${prjId}`);\n return robotcloudApi.get<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n postProjectSubsystem = (\n prjId: string,\n ): Promise<AxiosResponse<RobotCloudDescribedItem>> => {\n logger.info(`Create subsystem in project ${prjId}`);\n return robotcloudApi.post<RobotCloudDescribedItem>(\n `projects/${prjId}/subsystems`\n );\n };\n\n putProjectSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<putProjectSubsystem>> => {\n logger.info(`Update subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.put<putProjectSubsystem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n\n deleteSubsystem = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete subsystem ${subsysId} in project ${prjId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`projects/${prjId}/subsystems/${subsysId}`);\n };\n\n getProjectSubsystemLocations = (\n prjId: string,\n subsysId: string,\n ): Promise<AxiosResponse<ProjectLocations>> => {\n logger.info(`Get subsystems locations ${subsysId} in project ${prjId}`);\n return robotcloudApi.get<ProjectLocations>(\n `projects/${prjId}/subsystems/${subsysId}/locations`\n );\n };\n\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n ProjectModifyTag,\n} from \"../../../types/ProjectTag\";\nimport {\n RobotCloudDelete,\n} from \"../../../types/RobotCloudClient\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n\n getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n\n postTag = (\n prjId: string,\n ): Promise<AxiosResponse<ProjectTag>> => {\n logger.info(`Create tag for project ${prjId}`);\n return robotcloudApi.post<ProjectTag>(`projects/${prjId}/tags`);\n };\n\n putTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectModifyTag>> => {\n logger.info(`Modify project ${prjId} tag ${tagId}`);\n return robotcloudApi.put<ProjectModifyTag>(`tags/${tagId}`);\n };\n\n deleteTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<RobotCloudDelete>> => {\n logger.info(`Delete project ${prjId} tag ${tagId}`);\n return robotcloudApi.delete<RobotCloudDelete>(`tags/${tagId}`);\n };\n\n}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"robotCloudApi\";\nimport { LoginClient, LoginClientImpl } from \"./login\";\nimport { AlertsClientImpl } from \"./alerts\";\nimport { OrganizationsClient } from \"./organizations\";\nimport { UsersClient } from \"./users\";\nimport { AlertsClient } from \"../../types/alerts\";\nimport { ApplicationsClient } from \"./applications\";\n\nexport * from \"./services\"\nexport * from \"./projects\"\nexport { OrganizationsClient } from \"./organizations\"\nexport { UsersClient } from \"./users\"\nexport { LoginClient } from \"./login\"\nexport { ApplicationsClient } from \"./applications\"\n\nexport const applicationsClient: ApplicationsClient = new ApplicationsClient(robotcloudApi);\nexport const loginClient: LoginClient = new LoginClientImpl(robotcloudApi);\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\nexport const organizationsClient: OrganizationsClient = new OrganizationsClient(robotcloudApi);\nexport const usersClient: UsersClient = new UsersClient(robotcloudApi);\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","axios","robotcloudApi","robotcloudApi","robotcloudApi","robotcloudApi","robotcloudApi","logger","logger","logger","logger","logger","logger","axios","logger","tagsClient","i"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robotbas/robotcloud-client",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.12",
|
|
4
4
|
"description": "RobotCloud API client",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Bernat Galmés Rubert",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsup",
|
|
18
18
|
"test": "jest",
|
|
19
|
-
"publish-patch": "pnpm version patch && tsup && npm publish"
|
|
19
|
+
"publish-patch": "pnpm version patch && tsup && pnpm login && npm publish"
|
|
20
20
|
},
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
package/types/Token.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { OrganizationAccessLevel, ProjectAccessLevel } from "./RobotCloudClient";
|
|
2
|
+
|
|
1
3
|
export interface TokenResponse {
|
|
2
4
|
token: string;
|
|
3
5
|
expiration: string; // ISO 8601 date string (YYYY-MM-DDTHH:MM:SS.SSSZ)
|
|
@@ -14,7 +16,16 @@ export interface CheckTokenResponse {
|
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
export interface RobotCloudJWTPayload {
|
|
17
|
-
|
|
19
|
+
oac: OrganizationAccessLevel; // Organization Access Level
|
|
18
20
|
sub: string; // username
|
|
21
|
+
aud: string; // audience (app api key id)
|
|
22
|
+
aac: ProjectAccessLevel; // Default project Access Level
|
|
19
23
|
org: string; // organization
|
|
24
|
+
exp: number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface RobotCloudRenewJWTPayload {
|
|
28
|
+
sub: string; // username
|
|
29
|
+
aud: string; // audience (app api key id)
|
|
30
|
+
exp: number;
|
|
20
31
|
}
|