@robotbas/robotcloud-client 1.0.0-rc.1 → 1.0.0-rc.2
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/{RobotCloudClient.d--IA4S5ZR.d.mts → RobotCloudClient.d-tle3DEZp.d.mts} +8 -35
- package/dist/{RobotCloudClient.d--IA4S5ZR.d.ts → RobotCloudClient.d-tle3DEZp.d.ts} +8 -35
- package/dist/helpers/index.d.mts +1 -1
- package/dist/helpers/index.d.ts +1 -1
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/index.mjs.map +1 -1
- package/dist/index.d.mts +124 -29
- package/dist/index.d.ts +124 -29
- package/dist/index.js +549 -153
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +547 -143
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
- package/types/ProjectClassifer.d.ts +5 -0
- package/types/ProjectTag.d.ts +14 -0
- package/types/RobotCloudClient.d.ts +175 -0
- package/types/ServiceInstance.d.ts +12 -0
- package/types/ServiceInstanceRead.d.ts +5 -0
- package/types/Token.d.ts +12 -0
- package/types/helpers.d.ts +5 -0
- package/types/services.d.ts +108 -0
|
@@ -6,6 +6,9 @@ type AppAccessLevel = "BLOCKED" | "STANDARD" | "ADVANCED" | "ADMIN"
|
|
|
6
6
|
|
|
7
7
|
type RobotCloudServiceType = "RoomClime_1"|"RoomGuestStatus_1"
|
|
8
8
|
|
|
9
|
+
// Desired fancoil speed (0 = Auto, 1..3 = Manual Speed)
|
|
10
|
+
type FancoilSpeedState = 0|1|2|3;
|
|
11
|
+
|
|
9
12
|
interface ProjectRequestParams {
|
|
10
13
|
|
|
11
14
|
}
|
|
@@ -26,8 +29,9 @@ interface ProjectLocationsRequestParams extends SubsystemRequestParams, Paginabl
|
|
|
26
29
|
tag_id?: string | string[];
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
|
|
33
|
+
interface ServiceInstanceDataRequestParams {
|
|
34
|
+
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
interface ProjectTagRequestParams extends PaginableRequestParams {
|
|
@@ -61,16 +65,6 @@ interface RoomClimeInstanceConfigParams {
|
|
|
61
65
|
temperature_units?: TemperatureUnit;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
|
-
interface RoomGuestStatusInstanceConfigParams {
|
|
65
|
-
sold?: boolean;
|
|
66
|
-
do_not_disturb?: boolean;
|
|
67
|
-
make_up_room?: boolean;
|
|
68
|
-
remote_occupation?: boolean;
|
|
69
|
-
door_open_time_limit?: number;
|
|
70
|
-
window_open_time_limit?: number;
|
|
71
|
-
medical_alarm?: boolean;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
68
|
|
|
75
69
|
/** RESPONSE **/
|
|
76
70
|
|
|
@@ -140,28 +134,7 @@ interface RoomClime1EventValue {
|
|
|
140
134
|
regim: RegimState;
|
|
141
135
|
eco_mode: "STANDBY"|"ECO"|"VIP";
|
|
142
136
|
}
|
|
143
|
-
|
|
144
|
-
door_open_overtime: boolean;
|
|
145
|
-
window_open_overtime: boolean;
|
|
146
|
-
medical_alarm: boolean;
|
|
147
|
-
}
|
|
148
|
-
interface RoomGuestStatus1EventValue {
|
|
149
|
-
sold: boolean;
|
|
150
|
-
occupied: boolean;
|
|
151
|
-
do_not_disturb: boolean;
|
|
152
|
-
make_up_room: boolean;
|
|
153
|
-
tray_status: "IDLE"|'READY'|'FINISH';
|
|
154
|
-
remote_occupation: boolean;
|
|
155
|
-
door_open: boolean;
|
|
156
|
-
window_open: boolean;
|
|
157
|
-
medical_alarm: boolean; // TODO: ???
|
|
158
|
-
}
|
|
159
|
-
interface AirQuality1DataEventValue {
|
|
160
|
-
co2: number;
|
|
161
|
-
}
|
|
162
|
-
interface AirQuality1AlertEventValue {
|
|
163
|
-
high_co2: boolean;
|
|
164
|
-
}
|
|
137
|
+
|
|
165
138
|
interface RoomConsumes1AlertEventValue {
|
|
166
139
|
high_daily_energy_electric: boolean;
|
|
167
140
|
high_daily_energy_thermal: boolean;
|
|
@@ -200,4 +173,4 @@ interface RoomGrouping1InstanceDeviceConfig {
|
|
|
200
173
|
Replica_3: ServiceInstanceDeviceConfig;
|
|
201
174
|
}
|
|
202
175
|
|
|
203
|
-
export type {
|
|
176
|
+
export type { AppAccessLevel as A, FancoilSpeedState as F, LocationServiceInstancesRequestParams as L, ProjectRequestParams as P, RobotCloudNamedItem as R, SubsystemRequestParams as S, TemperatureUnit as T, RobotCloudServiceType as a, RobotCloudUserDetails as b, RobotCloudProject as c, ProjectDetailsRequestParams as d, RobotCloudProjectDetails as e, ProjectLocationsRequestParams as f, ServiceInstancesRequestParams as g, ProjectTagRequestParams as h, RobotCloudDeviceDetails as i, RoomGrouping1DataEventValue as j, ServiceInstanceDataRequestParams as k, RoomConsumes1DataEventValue as l, RoomGrouping1InstanceDeviceConfig as m, RoomConsumes1AlertEventValue as n, RoomClime1AlertEventValue as o, RoomClime1EventValue as p, RoomClimeInstanceConfigParams as q, RegimState as r, ProjectAccessLevel as s, PaginableRequestParams as t, ServiceInstanceDeviceConfig as u };
|
|
@@ -6,6 +6,9 @@ type AppAccessLevel = "BLOCKED" | "STANDARD" | "ADVANCED" | "ADMIN"
|
|
|
6
6
|
|
|
7
7
|
type RobotCloudServiceType = "RoomClime_1"|"RoomGuestStatus_1"
|
|
8
8
|
|
|
9
|
+
// Desired fancoil speed (0 = Auto, 1..3 = Manual Speed)
|
|
10
|
+
type FancoilSpeedState = 0|1|2|3;
|
|
11
|
+
|
|
9
12
|
interface ProjectRequestParams {
|
|
10
13
|
|
|
11
14
|
}
|
|
@@ -26,8 +29,9 @@ interface ProjectLocationsRequestParams extends SubsystemRequestParams, Paginabl
|
|
|
26
29
|
tag_id?: string | string[];
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
|
|
33
|
+
interface ServiceInstanceDataRequestParams {
|
|
34
|
+
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
interface ProjectTagRequestParams extends PaginableRequestParams {
|
|
@@ -61,16 +65,6 @@ interface RoomClimeInstanceConfigParams {
|
|
|
61
65
|
temperature_units?: TemperatureUnit;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
|
-
interface RoomGuestStatusInstanceConfigParams {
|
|
65
|
-
sold?: boolean;
|
|
66
|
-
do_not_disturb?: boolean;
|
|
67
|
-
make_up_room?: boolean;
|
|
68
|
-
remote_occupation?: boolean;
|
|
69
|
-
door_open_time_limit?: number;
|
|
70
|
-
window_open_time_limit?: number;
|
|
71
|
-
medical_alarm?: boolean;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
68
|
|
|
75
69
|
/** RESPONSE **/
|
|
76
70
|
|
|
@@ -140,28 +134,7 @@ interface RoomClime1EventValue {
|
|
|
140
134
|
regim: RegimState;
|
|
141
135
|
eco_mode: "STANDBY"|"ECO"|"VIP";
|
|
142
136
|
}
|
|
143
|
-
|
|
144
|
-
door_open_overtime: boolean;
|
|
145
|
-
window_open_overtime: boolean;
|
|
146
|
-
medical_alarm: boolean;
|
|
147
|
-
}
|
|
148
|
-
interface RoomGuestStatus1EventValue {
|
|
149
|
-
sold: boolean;
|
|
150
|
-
occupied: boolean;
|
|
151
|
-
do_not_disturb: boolean;
|
|
152
|
-
make_up_room: boolean;
|
|
153
|
-
tray_status: "IDLE"|'READY'|'FINISH';
|
|
154
|
-
remote_occupation: boolean;
|
|
155
|
-
door_open: boolean;
|
|
156
|
-
window_open: boolean;
|
|
157
|
-
medical_alarm: boolean; // TODO: ???
|
|
158
|
-
}
|
|
159
|
-
interface AirQuality1DataEventValue {
|
|
160
|
-
co2: number;
|
|
161
|
-
}
|
|
162
|
-
interface AirQuality1AlertEventValue {
|
|
163
|
-
high_co2: boolean;
|
|
164
|
-
}
|
|
137
|
+
|
|
165
138
|
interface RoomConsumes1AlertEventValue {
|
|
166
139
|
high_daily_energy_electric: boolean;
|
|
167
140
|
high_daily_energy_thermal: boolean;
|
|
@@ -200,4 +173,4 @@ interface RoomGrouping1InstanceDeviceConfig {
|
|
|
200
173
|
Replica_3: ServiceInstanceDeviceConfig;
|
|
201
174
|
}
|
|
202
175
|
|
|
203
|
-
export type {
|
|
176
|
+
export type { AppAccessLevel as A, FancoilSpeedState as F, LocationServiceInstancesRequestParams as L, ProjectRequestParams as P, RobotCloudNamedItem as R, SubsystemRequestParams as S, TemperatureUnit as T, RobotCloudServiceType as a, RobotCloudUserDetails as b, RobotCloudProject as c, ProjectDetailsRequestParams as d, RobotCloudProjectDetails as e, ProjectLocationsRequestParams as f, ServiceInstancesRequestParams as g, ProjectTagRequestParams as h, RobotCloudDeviceDetails as i, RoomGrouping1DataEventValue as j, ServiceInstanceDataRequestParams as k, RoomConsumes1DataEventValue as l, RoomGrouping1InstanceDeviceConfig as m, RoomConsumes1AlertEventValue as n, RoomClime1AlertEventValue as o, RoomClime1EventValue as p, RoomClimeInstanceConfigParams as q, RegimState as r, ProjectAccessLevel as s, PaginableRequestParams as t, ServiceInstanceDeviceConfig as u };
|
package/dist/helpers/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { s as ProjectAccessLevel } from '../RobotCloudClient.d-tle3DEZp.mjs';
|
|
2
2
|
|
|
3
3
|
interface RobotCloudPermissionsHelper {
|
|
4
4
|
checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { s as ProjectAccessLevel } from '../RobotCloudClient.d-tle3DEZp.js';
|
|
2
2
|
|
|
3
3
|
interface RobotCloudPermissionsHelper {
|
|
4
4
|
checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["export { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\n\nexport type * from \"../../types/helpers\";","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';\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 \nlet checkToken = async (): Promise<string> => { return ''}\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(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 const setCheckTokenFunction = (fun: () => Promise<string>) => {\n checkToken = fun\n}\n\nexport default robotcloudApi;\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { AirQuality1AlertEventValue, AirQuality1DataEventValue, LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudUserDetails, RoomClime1AlertEventValue, RoomClime1EventValue, RoomClimeInstanceConfigParams, RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, RoomGuestStatus1EventValue, RoomGuestStatusInstanceConfigParams, ServiceDataRequestParams, ServiceInstancesRequestParams } from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement } from \"../types/ServiceDataMeasurement\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const 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\nexport const 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 getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const 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 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 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\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomClimeServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomGuestStatusServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getAirQualityServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n/* SERVICES INSTANCES ALERTS ENDPOINTS */\n\nexport const getRoomClimeServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomGuestStatusServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getAirQualityServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES CONFIGURATION ENDPOINTS */\n\nexport const getRoomClimeServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string\n): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> => {\n return robotcloudApi.get<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n}\n\nexport const getRoomGuestStatusServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string\n): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> => {\n return robotcloudApi.get<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n}\n\nexport const putRoomClimeServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string,\n data: RoomClimeInstanceConfigParams\n): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> => {\n return robotcloudApi.put<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n}\n\nexport const putRoomGuestStatusServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusInstanceConfigParams\n): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> => {\n return robotcloudApi.put<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n}\n\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { ProjectAccessLevel } from \"../../types/RobotCloudClient\";\n\n\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\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}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA8B;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,UAAM,8BAAc,OAAO,EAAE,QAAQ,GAAG,QAAI,8BAAc,OAAO;AAC5E;;;ACLA,mBAAkB;AAGlB,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,aAAAA,QAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAaC,aAA+C;AACvE,QAAM,eAAe,MAAMA,YAAW;AACtC,SAAO;AACT;AAGF,IAAI,aAAa,YAA6B;AAAE,SAAO;AAAE;AAGzD,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IACrE;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAMH,IAAO,wBAAQ;;;ACjCf,IAAMC,UAAS,UAAU,mBAAmB;AAwCrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;ACrDA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAM,mBAAmB,OAAe,yBAA+D;AAEnG,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EAEJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["axios","checkToken","logger"]}
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["export { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\n\nexport type * from \"../../types/helpers\";","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';\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 \nlet checkToken = async (): Promise<string> => { return ''}\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(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 const setCheckTokenFunction = (fun: () => Promise<string>) => {\n checkToken = fun\n}\n\nexport default robotcloudApi;\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudUserDetails, \n RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig, ServiceInstanceDataRequestParams, \n ServiceInstancesRequestParams \n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const 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\nexport const 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 getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const 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 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 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\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesInstanceServiceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { ProjectAccessLevel } from \"../../types/RobotCloudClient\";\n\n// TODO: For security reasons remove it from this public package\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\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}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA8B;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,UAAM,8BAAc,OAAO,EAAE,QAAQ,GAAG,QAAI,8BAAc,OAAO;AAC5E;;;ACLA,mBAAkB;AAGlB,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,aAAAA,QAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAaC,aAA+C;AACvE,QAAM,eAAe,MAAMA,YAAW;AACtC,SAAO;AACT;AAGF,IAAI,aAAa,YAA6B;AAAE,SAAO;AAAE;AAGzD,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IACrE;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAMH,IAAO,wBAAQ;;;AC1Bf,IAAMC,UAAS,UAAU,mBAAmB;AAwCrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;AC5DA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAM,mBAAmB,OAAe,yBAA+D;AAEnG,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EAEJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["axios","checkToken","logger"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport { 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 \nlet checkToken = async (): Promise<string> => { return ''}\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(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 const setCheckTokenFunction = (fun: () => Promise<string>) => {\n checkToken = fun\n}\n\nexport default robotcloudApi;\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { AirQuality1AlertEventValue, AirQuality1DataEventValue, LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudUserDetails, RoomClime1AlertEventValue, RoomClime1EventValue, RoomClimeInstanceConfigParams, RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, RoomGuestStatus1EventValue, RoomGuestStatusInstanceConfigParams, ServiceDataRequestParams, ServiceInstancesRequestParams } from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement } from \"../types/ServiceDataMeasurement\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const 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\nexport const 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 getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const 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 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 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\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomClimeServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomGuestStatusServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getAirQualityServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n/* SERVICES INSTANCES ALERTS ENDPOINTS */\n\nexport const getRoomClimeServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomGuestStatusServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getAirQualityServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesServiceAlert = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES CONFIGURATION ENDPOINTS */\n\nexport const getRoomClimeServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string\n): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> => {\n return robotcloudApi.get<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n}\n\nexport const getRoomGuestStatusServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string\n): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> => {\n return robotcloudApi.get<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n}\n\nexport const putRoomClimeServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string,\n data: RoomClimeInstanceConfigParams\n): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> => {\n return robotcloudApi.put<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n}\n\nexport const putRoomGuestStatusServiceInstanceConfiguration = (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusInstanceConfigParams\n): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> => {\n return robotcloudApi.put<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n}\n\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { ProjectAccessLevel } from \"../../types/RobotCloudClient\";\n\n\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\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}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";AAAA,SAAS,qBAAqB;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,MAAM,cAAc,OAAO,EAAE,QAAQ,GAAG,IAAI,cAAc,OAAO;AAC5E;;;ACLA,OAAO,WAAW;AAGlB,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,MAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAaA,aAA+C;AACvE,QAAM,eAAe,MAAMA,YAAW;AACtC,SAAO;AACT;AAGF,IAAI,aAAa,YAA6B;AAAE,SAAO;AAAE;AAGzD,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IACrE;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAMH,IAAO,wBAAQ;;;ACjCf,IAAMC,UAAS,UAAU,mBAAmB;AAwCrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;ACrDA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAM,mBAAmB,OAAe,yBAA+D;AAEnG,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EAEJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["checkToken","logger"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport { 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 \nlet checkToken = async (): Promise<string> => { return ''}\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(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 const setCheckTokenFunction = (fun: () => Promise<string>) => {\n checkToken = fun\n}\n\nexport default robotcloudApi;\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudUserDetails, \n RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig, ServiceInstanceDataRequestParams, \n ServiceInstancesRequestParams \n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const 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\nexport const 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 getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const 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 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 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\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesInstanceServiceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { ProjectAccessLevel } from \"../../types/RobotCloudClient\";\n\n// TODO: For security reasons remove it from this public package\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\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}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";AAAA,SAAS,qBAAqB;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,MAAM,cAAc,OAAO,EAAE,QAAQ,GAAG,IAAI,cAAc,OAAO;AAC5E;;;ACLA,OAAO,WAAW;AAGlB,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,MAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAaA,aAA+C;AACvE,QAAM,eAAe,MAAMA,YAAW;AACtC,SAAO;AACT;AAGF,IAAI,aAAa,YAA6B;AAAE,SAAO;AAAE;AAGzD,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IACrE;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAMH,IAAO,wBAAQ;;;AC1Bf,IAAMC,UAAS,UAAU,mBAAmB;AAwCrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;AC5DA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAM,mBAAmB,OAAe,yBAA+D;AAEnG,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EAEJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["checkToken","logger"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as axios from 'axios';
|
|
2
2
|
import { AxiosResponse } from 'axios';
|
|
3
|
-
import { R as RobotCloudNamedItem, a as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, b as RobotCloudUserDetails, P as ProjectRequestParams, c as RobotCloudProject, d as ProjectDetailsRequestParams, e as RobotCloudProjectDetails, f as ProjectLocationsRequestParams,
|
|
4
|
-
export {
|
|
3
|
+
import { R as RobotCloudNamedItem, S as SubsystemRequestParams, a as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, b as RobotCloudUserDetails, P as ProjectRequestParams, c as RobotCloudProject, d as ProjectDetailsRequestParams, e as RobotCloudProjectDetails, f as ProjectLocationsRequestParams, g as ServiceInstancesRequestParams, h as ProjectTagRequestParams, i as RobotCloudDeviceDetails, j as RoomGrouping1DataEventValue, k as ServiceInstanceDataRequestParams, l as RoomConsumes1DataEventValue, m as RoomGrouping1InstanceDeviceConfig, n as RoomConsumes1AlertEventValue, o as RoomClime1AlertEventValue, p as RoomClime1EventValue, q as RoomClimeInstanceConfigParams } from './RobotCloudClient.d-tle3DEZp.mjs';
|
|
4
|
+
export { A as AppAccessLevel, F as FancoilSpeedState, t as PaginableRequestParams, s as ProjectAccessLevel, r as RegimState, u as ServiceInstanceDeviceConfig, T as TemperatureUnit } from './RobotCloudClient.d-tle3DEZp.mjs';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
|
+
declare const setCheckTokenFunction: (fun: () => Promise<string>) => void;
|
|
7
8
|
|
|
8
9
|
interface RobotCloudServiceInstance extends RobotCloudNamedItem {
|
|
9
10
|
service: string;
|
|
@@ -43,8 +44,109 @@ interface ServiceInstanceRead<T> {
|
|
|
43
44
|
value: T;
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
type MeasurementStatus = "GOOD"|"NOT_MEASURED"|"INVALID_VALUE"|"DEVICE_ERROR";
|
|
48
|
+
|
|
46
49
|
interface ServiceDataMeasurement<T> extends ServiceInstanceRead<T> {
|
|
47
|
-
status:
|
|
50
|
+
status: MeasurementStatus;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
interface ServiceDataRequestParams extends SubsystemRequestParams {
|
|
54
|
+
tag_id?: string | string[];
|
|
55
|
+
}
|
|
56
|
+
interface ServiceInstanceHistoricAggregateParams {
|
|
57
|
+
offset?: string;
|
|
58
|
+
property?: any[];
|
|
59
|
+
maxSize?: number;
|
|
60
|
+
}
|
|
61
|
+
interface ServiceInstanceHistoricParams {
|
|
62
|
+
status?: MeasurementStatus;
|
|
63
|
+
property?: any[];
|
|
64
|
+
maxSize?: number;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
interface AirQuality1DataEventValue {
|
|
68
|
+
co2: number;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
interface AirQuality1AlertEventValue {
|
|
72
|
+
high_co2: boolean;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
interface RoomGuestStatus1AlertEventValue {
|
|
77
|
+
door_open_overtime: boolean;
|
|
78
|
+
window_open_overtime: boolean;
|
|
79
|
+
medical_alarm: boolean;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
interface RoomGuestStatus1EventValue {
|
|
83
|
+
sold: boolean;
|
|
84
|
+
occupied: boolean;
|
|
85
|
+
do_not_disturb: boolean;
|
|
86
|
+
make_up_room: boolean;
|
|
87
|
+
tray_status: "IDLE"|'READY'|'FINISH';
|
|
88
|
+
remote_occupation: boolean;
|
|
89
|
+
door_open: boolean;
|
|
90
|
+
window_open: boolean;
|
|
91
|
+
medical_alarm: boolean; // TODO: ???
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
interface RoomGuestStatusInstanceConfigParams {
|
|
95
|
+
sold?: boolean;
|
|
96
|
+
do_not_disturb?: boolean;
|
|
97
|
+
make_up_room?: boolean;
|
|
98
|
+
remote_occupation?: boolean;
|
|
99
|
+
door_open_time_limit?: number;
|
|
100
|
+
window_open_time_limit?: number;
|
|
101
|
+
medical_alarm?: boolean;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
////
|
|
106
|
+
// Generic interface types
|
|
107
|
+
////
|
|
108
|
+
|
|
109
|
+
type HistoricAggregateFunction = "count"|"increase"|"mean"|"first"|"last"|"max"|"min"|"amax"|"amin"|"pmax"|"pmin"|"nmax"|"nmin";
|
|
110
|
+
|
|
111
|
+
interface ServiceTypeClient<T_ALERTS, T_DATA, T_CONFIG> {
|
|
112
|
+
getAlerts(
|
|
113
|
+
prjId: string,
|
|
114
|
+
params?: ServiceDataRequestParams
|
|
115
|
+
): Promise<AxiosResponse<ServiceDataMeasurement<T_ALERTS>[]>>;
|
|
116
|
+
|
|
117
|
+
getData (
|
|
118
|
+
prjId: string,
|
|
119
|
+
params?: ServiceDataRequestParams
|
|
120
|
+
): Promise<AxiosResponse<ServiceDataMeasurement<T_DATA>[]>>;
|
|
121
|
+
|
|
122
|
+
getInstanceConfiguration (
|
|
123
|
+
prjId: string,
|
|
124
|
+
instanceId: string
|
|
125
|
+
): Promise<AxiosResponse<T_CONFIG>>;
|
|
126
|
+
|
|
127
|
+
putInstanceConfiguration (
|
|
128
|
+
prjId: string,
|
|
129
|
+
instanceId: string,
|
|
130
|
+
data: T_CONFIG
|
|
131
|
+
): Promise<AxiosResponse<T_CONFIG>>;
|
|
132
|
+
|
|
133
|
+
getInstanceHistoric (
|
|
134
|
+
prjId: string,
|
|
135
|
+
instanceId: string,
|
|
136
|
+
startTime: Date,
|
|
137
|
+
endTime: Date,
|
|
138
|
+
params: ServiceInstanceHistoricParams
|
|
139
|
+
): Promise<AxiosResponse<ServiceDataMeasurement<T_DATA>[]>>;
|
|
140
|
+
|
|
141
|
+
getInstanceHistoricAggregate(
|
|
142
|
+
prjId: string,
|
|
143
|
+
instanceId: string,
|
|
144
|
+
startTime: Date,
|
|
145
|
+
endTime: Date,
|
|
146
|
+
aggFunction: HistoricAggregateFunction,
|
|
147
|
+
periode: string,
|
|
148
|
+
params: ServiceInstanceHistoricAggregateParams
|
|
149
|
+
): Promise<AxiosResponse<ServiceDataMeasurement<T_DATA>[]>>;
|
|
48
150
|
}
|
|
49
151
|
|
|
50
152
|
interface RobotCloudLocationDetails {
|
|
@@ -68,23 +170,10 @@ declare const getTags: (prjId: string, params?: ProjectTagRequestParams) => Prom
|
|
|
68
170
|
declare const getTagsTree: (prjId: string, maxDepth?: number, params?: ProjectTagRequestParams) => Promise<ProjectTagsTree>;
|
|
69
171
|
declare const getTagsChildren: (prjId: string, level?: number, parent_id?: string, params?: ProjectTagRequestParams, maxDepth?: number) => Promise<ProjectTagTreeNode[]>;
|
|
70
172
|
declare const getDeviceDetails: (deviceId: string) => Promise<AxiosResponse<RobotCloudDeviceDetails>>;
|
|
71
|
-
declare const getRoomClimeServiceData: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>>;
|
|
72
|
-
declare const getRoomGuestStatusServiceData: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>>;
|
|
73
|
-
declare const getAirQualityServiceData: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>>;
|
|
74
173
|
declare const getRoomGrouping1ServiceData: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>>;
|
|
75
|
-
declare const
|
|
76
|
-
declare const getRoomClimeServiceAlert: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>>;
|
|
77
|
-
declare const getRoomGuestStatusServiceAlert: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>>;
|
|
78
|
-
declare const getAirQualityServiceAlert: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>>;
|
|
79
|
-
declare const getRoomConsumesServiceAlert: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>>;
|
|
80
|
-
declare const getRoomClimeServiceInstanceConfiguration: (prjId: string, instanceId: string) => Promise<AxiosResponse<RoomClimeInstanceConfigParams>>;
|
|
81
|
-
declare const getRoomGuestStatusServiceInstanceConfiguration: (prjId: string, instanceId: string) => Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>>;
|
|
82
|
-
declare const putRoomClimeServiceInstanceConfiguration: (prjId: string, instanceId: string, data: RoomClimeInstanceConfigParams) => Promise<AxiosResponse<RoomClimeInstanceConfigParams>>;
|
|
83
|
-
declare const putRoomGuestStatusServiceInstanceConfiguration: (prjId: string, instanceId: string, data: RoomGuestStatusInstanceConfigParams) => Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>>;
|
|
174
|
+
declare const getRoomConsumesInstanceServiceData: (prjId: string, instanceId: string, params?: ServiceInstanceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>>;
|
|
84
175
|
declare const getRoomGrouping1InstanceDeviceConfig: (prjId: string, instanceId: string) => Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>>;
|
|
85
176
|
|
|
86
|
-
declare const robotCloudClient_getAirQualityServiceAlert: typeof getAirQualityServiceAlert;
|
|
87
|
-
declare const robotCloudClient_getAirQualityServiceData: typeof getAirQualityServiceData;
|
|
88
177
|
declare const robotCloudClient_getClassifier: typeof getClassifier;
|
|
89
178
|
declare const robotCloudClient_getDeviceDetails: typeof getDeviceDetails;
|
|
90
179
|
declare const robotCloudClient_getLocation: typeof getLocation;
|
|
@@ -93,26 +182,17 @@ declare const robotCloudClient_getLocations: typeof getLocations;
|
|
|
93
182
|
declare const robotCloudClient_getProjectDetails: typeof getProjectDetails;
|
|
94
183
|
declare const robotCloudClient_getProjectSubsystem: typeof getProjectSubsystem;
|
|
95
184
|
declare const robotCloudClient_getProjects: typeof getProjects;
|
|
96
|
-
declare const
|
|
97
|
-
declare const robotCloudClient_getRoomClimeServiceData: typeof getRoomClimeServiceData;
|
|
98
|
-
declare const robotCloudClient_getRoomClimeServiceInstanceConfiguration: typeof getRoomClimeServiceInstanceConfiguration;
|
|
99
|
-
declare const robotCloudClient_getRoomConsumesServiceAlert: typeof getRoomConsumesServiceAlert;
|
|
100
|
-
declare const robotCloudClient_getRoomConsumesServiceData: typeof getRoomConsumesServiceData;
|
|
185
|
+
declare const robotCloudClient_getRoomConsumesInstanceServiceData: typeof getRoomConsumesInstanceServiceData;
|
|
101
186
|
declare const robotCloudClient_getRoomGrouping1InstanceDeviceConfig: typeof getRoomGrouping1InstanceDeviceConfig;
|
|
102
187
|
declare const robotCloudClient_getRoomGrouping1ServiceData: typeof getRoomGrouping1ServiceData;
|
|
103
|
-
declare const robotCloudClient_getRoomGuestStatusServiceAlert: typeof getRoomGuestStatusServiceAlert;
|
|
104
|
-
declare const robotCloudClient_getRoomGuestStatusServiceData: typeof getRoomGuestStatusServiceData;
|
|
105
|
-
declare const robotCloudClient_getRoomGuestStatusServiceInstanceConfiguration: typeof getRoomGuestStatusServiceInstanceConfiguration;
|
|
106
188
|
declare const robotCloudClient_getServiceInstance: typeof getServiceInstance;
|
|
107
189
|
declare const robotCloudClient_getServiceInstances: typeof getServiceInstances;
|
|
108
190
|
declare const robotCloudClient_getTags: typeof getTags;
|
|
109
191
|
declare const robotCloudClient_getTagsChildren: typeof getTagsChildren;
|
|
110
192
|
declare const robotCloudClient_getTagsTree: typeof getTagsTree;
|
|
111
193
|
declare const robotCloudClient_getUser: typeof getUser;
|
|
112
|
-
declare const robotCloudClient_putRoomClimeServiceInstanceConfiguration: typeof putRoomClimeServiceInstanceConfiguration;
|
|
113
|
-
declare const robotCloudClient_putRoomGuestStatusServiceInstanceConfiguration: typeof putRoomGuestStatusServiceInstanceConfiguration;
|
|
114
194
|
declare namespace robotCloudClient {
|
|
115
|
-
export {
|
|
195
|
+
export { robotCloudClient_getClassifier as getClassifier, robotCloudClient_getDeviceDetails as getDeviceDetails, robotCloudClient_getLocation as getLocation, robotCloudClient_getLocationServiceInstances as getLocationServiceInstances, robotCloudClient_getLocations as getLocations, robotCloudClient_getProjectDetails as getProjectDetails, robotCloudClient_getProjectSubsystem as getProjectSubsystem, robotCloudClient_getProjects as getProjects, robotCloudClient_getRoomConsumesInstanceServiceData as getRoomConsumesInstanceServiceData, robotCloudClient_getRoomGrouping1InstanceDeviceConfig as getRoomGrouping1InstanceDeviceConfig, robotCloudClient_getRoomGrouping1ServiceData as getRoomGrouping1ServiceData, robotCloudClient_getServiceInstance as getServiceInstance, robotCloudClient_getServiceInstances as getServiceInstances, robotCloudClient_getTags as getTags, robotCloudClient_getTagsChildren as getTagsChildren, robotCloudClient_getTagsTree as getTagsTree, robotCloudClient_getUser as getUser };
|
|
116
196
|
}
|
|
117
197
|
|
|
118
198
|
interface CheckTokenResponse {
|
|
@@ -146,4 +226,19 @@ declare namespace robotCloudToken {
|
|
|
146
226
|
export { type robotCloudToken_RobotCloudNewTokenResponse as RobotCloudNewTokenResponse, robotCloudToken_decodeToken as decodeToken, robotCloudToken_isTokenExpired as isTokenExpired, robotCloudToken_renewToken as renewToken, robotCloudToken_validateToken as validateToken };
|
|
147
227
|
}
|
|
148
228
|
|
|
149
|
-
|
|
229
|
+
declare class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, any> {
|
|
230
|
+
getAlerts(prjId: string, params?: ServiceDataRequestParams): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>>;
|
|
231
|
+
getData(prjId: string, params?: ServiceDataRequestParams): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>>;
|
|
232
|
+
getInstanceData: (prjId: string, instanceId: string, params?: ServiceInstanceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>>;
|
|
233
|
+
getInstanceConfiguration<T>(prjId: string, instanceId: string): Promise<AxiosResponse<T>>;
|
|
234
|
+
putInstanceConfiguration<T>(prjId: string, instanceId: string, data: T): Promise<AxiosResponse<T>>;
|
|
235
|
+
getInstanceHistoric(prjId: string, instanceId: string, startTime: Date, endTime: Date, params: ServiceInstanceHistoricParams): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>>;
|
|
236
|
+
getInstanceHistoricAggregate(prjId: string, instanceId: string, startTime: Date, endTime: Date, aggFunction: HistoricAggregateFunction, periode: string, params: ServiceInstanceHistoricAggregateParams): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>>;
|
|
237
|
+
}
|
|
238
|
+
declare const roomConsumesClient: RoomConsumesClient;
|
|
239
|
+
|
|
240
|
+
declare const roomClimeClient: ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1EventValue, RoomClimeInstanceConfigParams>;
|
|
241
|
+
declare const roomGuestStatusClient: ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1EventValue, RoomGuestStatusInstanceConfigParams>;
|
|
242
|
+
declare const airQualityClient: ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue, any>;
|
|
243
|
+
|
|
244
|
+
export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, type ProjectTag, ProjectTagRequestParams, type ProjectTagTreeNode, type ProjectTagsTree, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudUserDetails, RoomClime1AlertEventValue, RoomClime1EventValue, RoomClimeInstanceConfigParams, RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1EventValue, type RoomGuestStatusInstanceConfigParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, airQualityClient, robotCloudToken, robotcloudApi, robotCloudClient as robotcloudClient, roomClimeClient, roomConsumesClient, roomGuestStatusClient, setCheckTokenFunction };
|