@robotbas/robotcloud-client 0.1.0 → 0.1.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.
@@ -1 +1 @@
1
- export { u as RobotCloudPermissionsHelper, t as robotCloudPermissionsHelper } from '../index-X-E5BIKC.mjs';
1
+ export { e as RobotCloudPermissionsHelper, r as robotCloudPermissionsHelper } from '../index-xgxgpqYZ.mjs';
@@ -1 +1 @@
1
- export { u as RobotCloudPermissionsHelper, t as robotCloudPermissionsHelper } from '../index-X-E5BIKC.js';
1
+ export { e as RobotCloudPermissionsHelper, r as robotCloudPermissionsHelper } from '../index-xgxgpqYZ.js';
@@ -34,12 +34,6 @@ __export(helpers_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(helpers_exports);
36
36
 
37
- // src/utils/logger.ts
38
- var import_consola = require("consola");
39
- function useLogger(tag, options = { level: 1e3 }) {
40
- return tag ? (0, import_consola.createConsola)(options).withTag(tag) : (0, import_consola.createConsola)(options);
41
- }
42
-
43
37
  // src/robotCloudApi.ts
44
38
  var import_axios = __toESM(require("axios"));
45
39
 
@@ -68,6 +62,12 @@ var RobotCloudClientConfig = class {
68
62
  var clientConfig = new RobotCloudClientConfig();
69
63
  var config_default = clientConfig;
70
64
 
65
+ // src/utils/logger.ts
66
+ var import_consola = require("consola");
67
+ function useLogger(tag, options = { level: 1e3 }) {
68
+ return tag ? (0, import_consola.createConsola)(options).withTag(tag) : (0, import_consola.createConsola)(options);
69
+ }
70
+
71
71
  // src/robotCloudApi.ts
72
72
  var logger = useLogger("robotcloud-api");
73
73
  var robotcloudApi = import_axios.default.create();
@@ -97,18 +97,35 @@ robotcloudApi.interceptors.request.use(
97
97
  );
98
98
  var robotCloudApi_default = robotcloudApi;
99
99
 
100
- // src/robotCloudClient.ts
101
- var logger2 = useLogger("robotcloud-client");
102
- var getProjectDetails = (prjId, params) => {
103
- return robotCloudApi_default.get(`projects/${prjId}`, {
104
- params
105
- });
100
+ // src/client/projects/index.ts
101
+ var ProjectsClient = class {
102
+ constructor() {
103
+ this.getProjects = (params) => {
104
+ return robotCloudApi_default.get("projects", {
105
+ params
106
+ });
107
+ };
108
+ this.getProjectDetails = (prjId, params) => {
109
+ return robotCloudApi_default.get(`projects/${prjId}`, {
110
+ params
111
+ });
112
+ };
113
+ this.getProjectServiceTypes = (prjId, params) => {
114
+ return robotCloudApi_default.get(
115
+ `projects/${prjId}/services`,
116
+ {
117
+ params
118
+ }
119
+ );
120
+ };
121
+ }
106
122
  };
123
+ var projectsClient = new ProjectsClient();
107
124
 
108
125
  // src/helpers/robotCloudPermissionsHelper.ts
109
126
  var RobotCloudPermissionsHelperImpl = class {
110
127
  async checkProjectAccess(prjId, required_project_access) {
111
- const { data: project } = await getProjectDetails(prjId);
128
+ const { data: project } = await projectsClient.getProjectDetails(prjId);
112
129
  if (project.access_level == required_project_access) {
113
130
  return true;
114
131
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.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 clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudOrganizationDetails, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RobotCloudUserProject, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } 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};\nexport const getUserProjects = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(`users/${username}/projects`);\n};\n\n\n// ORGANIZATIONS ENDPOINTS\nexport const getOrganization = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(`organizations/${organizationId}`);\n};\n\nexport const getOrganizationProjects = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(`organizations/${organizationId}/projects`);\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 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\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 ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\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\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 { \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 robotCloudClient.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()"],"mappings":"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","names":["axios","logger"]}
1
+ {"version":3,"sources":["../../src/helpers/index.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/utils/logger.ts","../../src/client/projects/index.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["export { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\n\nexport type * from \"../../types/helpers\";","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 type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectRequestParams,\n RobotCloudProject,\n RobotCloudProjectDetails,\n ProjectDetailsRequestParams,\n RobotCloudServiceTypeDetails,\n SubsystemRequestParams,\n} from \"../../../types/RobotCloudClient\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n","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()"],"mappings":"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","names":["axios"]}
@@ -1,9 +1,3 @@
1
- // src/utils/logger.ts
2
- import { createConsola } from "consola";
3
- function useLogger(tag, options = { level: 1e3 }) {
4
- return tag ? createConsola(options).withTag(tag) : createConsola(options);
5
- }
6
-
7
1
  // src/robotCloudApi.ts
8
2
  import axios from "axios";
9
3
 
@@ -32,6 +26,12 @@ var RobotCloudClientConfig = class {
32
26
  var clientConfig = new RobotCloudClientConfig();
33
27
  var config_default = clientConfig;
34
28
 
29
+ // src/utils/logger.ts
30
+ import { createConsola } from "consola";
31
+ function useLogger(tag, options = { level: 1e3 }) {
32
+ return tag ? createConsola(options).withTag(tag) : createConsola(options);
33
+ }
34
+
35
35
  // src/robotCloudApi.ts
36
36
  var logger = useLogger("robotcloud-api");
37
37
  var robotcloudApi = axios.create();
@@ -61,18 +61,35 @@ robotcloudApi.interceptors.request.use(
61
61
  );
62
62
  var robotCloudApi_default = robotcloudApi;
63
63
 
64
- // src/robotCloudClient.ts
65
- var logger2 = useLogger("robotcloud-client");
66
- var getProjectDetails = (prjId, params) => {
67
- return robotCloudApi_default.get(`projects/${prjId}`, {
68
- params
69
- });
64
+ // src/client/projects/index.ts
65
+ var ProjectsClient = class {
66
+ constructor() {
67
+ this.getProjects = (params) => {
68
+ return robotCloudApi_default.get("projects", {
69
+ params
70
+ });
71
+ };
72
+ this.getProjectDetails = (prjId, params) => {
73
+ return robotCloudApi_default.get(`projects/${prjId}`, {
74
+ params
75
+ });
76
+ };
77
+ this.getProjectServiceTypes = (prjId, params) => {
78
+ return robotCloudApi_default.get(
79
+ `projects/${prjId}/services`,
80
+ {
81
+ params
82
+ }
83
+ );
84
+ };
85
+ }
70
86
  };
87
+ var projectsClient = new ProjectsClient();
71
88
 
72
89
  // src/helpers/robotCloudPermissionsHelper.ts
73
90
  var RobotCloudPermissionsHelperImpl = class {
74
91
  async checkProjectAccess(prjId, required_project_access) {
75
- const { data: project } = await getProjectDetails(prjId);
92
+ const { data: project } = await projectsClient.getProjectDetails(prjId);
76
93
  if (project.access_level == required_project_access) {
77
94
  return true;
78
95
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.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 clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudOrganizationDetails, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RobotCloudUserProject, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } 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};\nexport const getUserProjects = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(`users/${username}/projects`);\n};\n\n\n// ORGANIZATIONS ENDPOINTS\nexport const getOrganization = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(`organizations/${organizationId}`);\n};\n\nexport const getOrganizationProjects = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(`organizations/${organizationId}/projects`);\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 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\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 ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\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\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 { \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 robotCloudClient.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()"],"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;;;ACEX,IAAM,yBAAN,MAA6B;AAAA,EAA7B;AAEH,SAAQ,cAAc,YAA6B;AAAE,aAAO;AAAA,IAAE;AAE9D,SAAO,oCAA4C;AAAA;AAAA,EAGnD,IAAI,QAAQ,OAAc;AACtB,0BAAc,SAAS,UAAU;AACjC,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,IAAI,UAA8B;AAC9B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW,KAA4B;AACvC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,aAAoC;AACpC,WAAO,KAAK;AAAA,EAChB;AACJ;AAEA,IAAM,eAAe,IAAI,uBAAuB;AAChD,IAAO,iBAAQ;;;ADxBf,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,MAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAa,YAA+C;AACvE,QAAM,eAAe,MAAM,WAAW;AACtC,SAAO;AACX;AAIA,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,eAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IAClF;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;AAEH,IAAO,wBAAQ;;;AElBf,IAAMA,UAAS,UAAU,mBAAmB;AA2DrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;AC1EA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAa,mBAAmB,OAAe,yBAA+D;AAE1G,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,WAAO,KAAK,eAAe,SAAS,uBAAuB;AAAA,EAC/D;AAAA,EAEO,eAAe,SAAmC,yBAA6C;AAElG,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,EACJ;AAAA,EAEO,kBAAkB,SAAmC,6BAAsD;AAC9G,YAAQ,6BAA6B;AAAA,MACjC,KAAK;AACD,eAAO,QAAQ,oBAAoB;AAAA,MACvC,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB;AAAA,MACjF,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB,cACrE,QAAQ,oBAAoB;AAAA,MACxC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["logger"]}
1
+ {"version":3,"sources":["../../src/robotCloudApi.ts","../../src/config.ts","../../src/utils/logger.ts","../../src/client/projects/index.ts","../../src/helpers/robotCloudPermissionsHelper.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 type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectRequestParams,\n RobotCloudProject,\n RobotCloudProjectDetails,\n ProjectDetailsRequestParams,\n RobotCloudServiceTypeDetails,\n SubsystemRequestParams,\n} from \"../../../types/RobotCloudClient\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n","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()"],"mappings":"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","names":[]}
@@ -40,13 +40,6 @@ interface ProjectTagRequestParams extends PaginableRequestParams {
40
40
  no_parent?: boolean;
41
41
  }
42
42
 
43
- interface ServiceInstancesRequestParams extends SubsystemRequestParams, PaginableRequestParams {
44
- id?: string;
45
- name?: string;
46
- location_id?: string;
47
- device_id?: string;
48
- tag_id?: string[];
49
- }
50
43
 
51
44
  interface LocationServiceInstancesRequestParams extends SubsystemRequestParams, PaginableRequestParams {
52
45
  tag_id?: string[];
@@ -143,24 +136,6 @@ interface RoomConsumes1AlertEventValue {
143
136
  high_daily_cold_water: boolean;
144
137
  }
145
138
 
146
- interface RoomGrouping1DataEventValue {
147
- replica_1_active: boolean;
148
- replica_2_active: boolean;
149
- replica_3_active: boolean;
150
- }
151
-
152
- /** SERVICE INSTANCES DEVICE CONFIG */
153
- interface ServiceInstanceDeviceConfig {
154
- device: string;
155
- }
156
-
157
- interface RoomGrouping1InstanceDeviceConfig {
158
- Main: ServiceInstanceDeviceConfig;
159
- Replica_1: ServiceInstanceDeviceConfig;
160
- Replica_2: ServiceInstanceDeviceConfig;
161
- Replica_3: ServiceInstanceDeviceConfig;
162
- }
163
-
164
139
  interface RobotCloudPermissionsHelper {
165
140
  checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
166
141
  hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel): boolean;
@@ -169,4 +144,4 @@ interface RobotCloudPermissionsHelper {
169
144
 
170
145
  declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
171
146
 
172
- export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RobotCloudNamedItem as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RobotCloudServiceType as b, type RobotCloudUserDetails as c, type RobotCloudUserProject as d, type RobotCloudOrganizationDetails as e, type RobotCloudProject as f, type ProjectRequestParams as g, type ProjectDetailsRequestParams as h, type RobotCloudProjectDetails as i, type ProjectLocationsRequestParams as j, type ServiceInstancesRequestParams as k, type ProjectTagRequestParams as l, type RobotCloudDeviceDetails as m, type RobotCloudServiceTypeDetails as n, type RoomGrouping1DataEventValue as o, type RoomGrouping1InstanceDeviceConfig as p, type RegimState as q, type RoomClime1AlertEventValue as r, type RoomConsumes1AlertEventValue as s, robotCloudPermissionsHelper as t, type RobotCloudPermissionsHelper as u, type ProjectAccessLevel as v, type RobotCloudUserAppAccess as w, type ServiceInstanceDeviceConfig as x };
147
+ export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RegimState as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RoomClime1AlertEventValue as b, type RoomConsumes1AlertEventValue as c, type RobotCloudNamedItem as d, type RobotCloudPermissionsHelper as e, type ProjectAccessLevel as f, type RobotCloudServiceType as g, type ProjectRequestParams as h, type ProjectDetailsRequestParams as i, type ProjectLocationsRequestParams as j, type ProjectTagRequestParams as k, type RobotCloudProject as l, type RobotCloudUserAppAccess as m, type RobotCloudUserDetails as n, type RobotCloudUserProject as o, type RobotCloudOrganizationDetails as p, type RobotCloudProjectDetails as q, robotCloudPermissionsHelper as r, type RobotCloudDeviceDetails as s, type RobotCloudServiceTypeDetails as t };
@@ -40,13 +40,6 @@ interface ProjectTagRequestParams extends PaginableRequestParams {
40
40
  no_parent?: boolean;
41
41
  }
42
42
 
43
- interface ServiceInstancesRequestParams extends SubsystemRequestParams, PaginableRequestParams {
44
- id?: string;
45
- name?: string;
46
- location_id?: string;
47
- device_id?: string;
48
- tag_id?: string[];
49
- }
50
43
 
51
44
  interface LocationServiceInstancesRequestParams extends SubsystemRequestParams, PaginableRequestParams {
52
45
  tag_id?: string[];
@@ -143,24 +136,6 @@ interface RoomConsumes1AlertEventValue {
143
136
  high_daily_cold_water: boolean;
144
137
  }
145
138
 
146
- interface RoomGrouping1DataEventValue {
147
- replica_1_active: boolean;
148
- replica_2_active: boolean;
149
- replica_3_active: boolean;
150
- }
151
-
152
- /** SERVICE INSTANCES DEVICE CONFIG */
153
- interface ServiceInstanceDeviceConfig {
154
- device: string;
155
- }
156
-
157
- interface RoomGrouping1InstanceDeviceConfig {
158
- Main: ServiceInstanceDeviceConfig;
159
- Replica_1: ServiceInstanceDeviceConfig;
160
- Replica_2: ServiceInstanceDeviceConfig;
161
- Replica_3: ServiceInstanceDeviceConfig;
162
- }
163
-
164
139
  interface RobotCloudPermissionsHelper {
165
140
  checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
166
141
  hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel): boolean;
@@ -169,4 +144,4 @@ interface RobotCloudPermissionsHelper {
169
144
 
170
145
  declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
171
146
 
172
- export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RobotCloudNamedItem as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RobotCloudServiceType as b, type RobotCloudUserDetails as c, type RobotCloudUserProject as d, type RobotCloudOrganizationDetails as e, type RobotCloudProject as f, type ProjectRequestParams as g, type ProjectDetailsRequestParams as h, type RobotCloudProjectDetails as i, type ProjectLocationsRequestParams as j, type ServiceInstancesRequestParams as k, type ProjectTagRequestParams as l, type RobotCloudDeviceDetails as m, type RobotCloudServiceTypeDetails as n, type RoomGrouping1DataEventValue as o, type RoomGrouping1InstanceDeviceConfig as p, type RegimState as q, type RoomClime1AlertEventValue as r, type RoomConsumes1AlertEventValue as s, robotCloudPermissionsHelper as t, type RobotCloudPermissionsHelper as u, type ProjectAccessLevel as v, type RobotCloudUserAppAccess as w, type ServiceInstanceDeviceConfig as x };
147
+ export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RegimState as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RoomClime1AlertEventValue as b, type RoomConsumes1AlertEventValue as c, type RobotCloudNamedItem as d, type RobotCloudPermissionsHelper as e, type ProjectAccessLevel as f, type RobotCloudServiceType as g, type ProjectRequestParams as h, type ProjectDetailsRequestParams as i, type ProjectLocationsRequestParams as j, type ProjectTagRequestParams as k, type RobotCloudProject as l, type RobotCloudUserAppAccess as m, type RobotCloudUserDetails as n, type RobotCloudUserProject as o, type RobotCloudOrganizationDetails as p, type RobotCloudProjectDetails as q, robotCloudPermissionsHelper as r, type RobotCloudDeviceDetails as s, type RobotCloudServiceTypeDetails as t };
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as axios from 'axios';
2
2
  import { AxiosResponse } from 'axios';
3
- import { R as RobotCloudNamedItem, P as PaginableRequestParams, S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, b as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, c as RobotCloudUserDetails, d as RobotCloudUserProject, e as RobotCloudOrganizationDetails, f as RobotCloudProject, g as ProjectRequestParams, h as ProjectDetailsRequestParams, i as RobotCloudProjectDetails, j as ProjectLocationsRequestParams, k as ServiceInstancesRequestParams, l as ProjectTagRequestParams, m as RobotCloudDeviceDetails, n as RobotCloudServiceTypeDetails, o as RoomGrouping1DataEventValue, p as RoomGrouping1InstanceDeviceConfig, q as RegimState, T as TemperatureUnit, r as RoomClime1AlertEventValue, s as RoomConsumes1AlertEventValue } from './index-X-E5BIKC.mjs';
4
- export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, v as ProjectAccessLevel, u as RobotCloudPermissionsHelper, w as RobotCloudUserAppAccess, x as ServiceInstanceDeviceConfig, t as robotCloudPermissionsHelper } from './index-X-E5BIKC.mjs';
3
+ import { S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, R as RegimState, T as TemperatureUnit, b as RoomClime1AlertEventValue, c as RoomConsumes1AlertEventValue, P as PaginableRequestParams, d as RobotCloudNamedItem } from './index-xgxgpqYZ.mjs';
4
+ export { A as AppAccessLevel, F as FancoilSpeedState, L as LocationServiceInstancesRequestParams, O as OrganizationAccessLevel, f as ProjectAccessLevel, i as ProjectDetailsRequestParams, j as ProjectLocationsRequestParams, h as ProjectRequestParams, k as ProjectTagRequestParams, s as RobotCloudDeviceDetails, p as RobotCloudOrganizationDetails, e as RobotCloudPermissionsHelper, l as RobotCloudProject, q as RobotCloudProjectDetails, g as RobotCloudServiceType, t as RobotCloudServiceTypeDetails, m as RobotCloudUserAppAccess, n as RobotCloudUserDetails, o as RobotCloudUserProject, r as robotCloudPermissionsHelper } from './index-xgxgpqYZ.mjs';
5
5
 
6
6
  declare const robotcloudApi: axios.AxiosInstance;
7
7
 
@@ -16,43 +16,35 @@ declare class RobotCloudClientConfig {
16
16
  }
17
17
  declare const clientConfig: RobotCloudClientConfig;
18
18
 
19
- interface RobotCloudServiceInstance extends RobotCloudNamedItem {
20
- service: string;
21
- }
22
-
23
- interface ServiceInstanceDetails extends RobotCloudServiceInstance {
24
- description: string;
25
- tags: string[];
26
- subsystems: string[];
27
- classifier: string;
28
- }
29
-
30
- interface ProjectClassifiersRequestParams extends PaginableRequestParams {
31
-
32
- }
33
-
34
- interface Classifier {
35
- id: string;
36
- name: string;
37
- description: string;
38
- }
39
-
40
- interface ClassifierDetails extends Classifier {
19
+ interface CheckTokenResponse {
20
+ renewed: boolean;
21
+ invalid: boolean;
22
+ access: string;
23
+ renew: string;
41
24
  }
42
25
 
43
- interface ProjectTagTreeNode {
44
- tag: ProjectTag;
45
- children: ProjectTagTreeNode[];
26
+ interface RobotCloudJWTPayload {
27
+ exp: number;
28
+ sub: string; // username
29
+ org: string; // organization
46
30
  }
47
31
 
48
- interface ProjectTagsTree {
49
- root: ProjectTagTreeNode[]
32
+ interface RobotCloudNewTokenResponse {
33
+ access: string;
34
+ renew: string;
50
35
  }
36
+ declare const decodeToken: (token: string) => RobotCloudJWTPayload | undefined;
37
+ declare const needRenew: (payload: RobotCloudJWTPayload) => boolean;
38
+ declare const renewToken: (renew_token: string) => Promise<CheckTokenResponse>;
39
+ declare const validateToken: (access_token: string) => Promise<boolean>;
51
40
 
52
- interface ProjectTag {
53
- id: string;
54
- name: string;
55
- parent_id: string;
41
+ type robotCloudToken_RobotCloudNewTokenResponse = RobotCloudNewTokenResponse;
42
+ declare const robotCloudToken_decodeToken: typeof decodeToken;
43
+ declare const robotCloudToken_needRenew: typeof needRenew;
44
+ declare const robotCloudToken_renewToken: typeof renewToken;
45
+ declare const robotCloudToken_validateToken: typeof validateToken;
46
+ declare namespace robotCloudToken {
47
+ export { type robotCloudToken_RobotCloudNewTokenResponse as RobotCloudNewTokenResponse, robotCloudToken_decodeToken as decodeToken, robotCloudToken_needRenew as needRenew, robotCloudToken_renewToken as renewToken, robotCloudToken_validateToken as validateToken };
56
48
  }
57
49
 
58
50
  interface ServiceInstanceRead<T> {
@@ -152,91 +144,6 @@ interface ServiceTypeClient<T_ALERTS, T_DATA, T_CONFIG> {
152
144
  ): Promise<AxiosResponse<ServiceDataMeasurement<T_DATA>[]>>;
153
145
  }
154
146
 
155
- interface RobotCloudLocationDetails {
156
- id: string;
157
- name: string;
158
- description: string;
159
- project: string;
160
- tags: string[];
161
- }
162
- declare const getLocationServiceInstances: (prjId: string, locId: string, service_type: RobotCloudServiceType, params?: LocationServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
163
- declare const getUser: (username: string) => Promise<AxiosResponse<RobotCloudUserDetails>>;
164
- declare const getUserProjects: (username: string) => Promise<AxiosResponse<RobotCloudUserProject[]>>;
165
- declare const getOrganization: (organizationId: string) => Promise<AxiosResponse<RobotCloudOrganizationDetails>>;
166
- declare const getOrganizationProjects: (organizationId: string) => Promise<AxiosResponse<RobotCloudProject[]>>;
167
- declare const getProjects: (params?: ProjectRequestParams) => Promise<AxiosResponse<RobotCloudProject[]>>;
168
- declare const getProjectDetails: (prjId: string, params?: ProjectDetailsRequestParams) => Promise<AxiosResponse<RobotCloudProjectDetails>>;
169
- declare const getProjectSubsystem: (prjId: string, subsysId: string) => Promise<AxiosResponse<RobotCloudNamedItem, any>>;
170
- declare const getLocations: (prjId: string, params?: ProjectLocationsRequestParams) => Promise<AxiosResponse<RobotCloudNamedItem[]>>;
171
- declare const getLocation: (locationId: string) => Promise<AxiosResponse<RobotCloudLocationDetails>>;
172
- declare const getServiceInstances: (prjId: string, service_type: string, params?: ServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
173
- declare const getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any>>;
174
- declare const getProjectClassifiers: (prjId: string, params?: ProjectClassifiersRequestParams) => Promise<AxiosResponse<Classifier[]>>;
175
- declare const getClassifier: (classifierId: string) => Promise<AxiosResponse<ClassifierDetails, any>>;
176
- declare const getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
177
- declare const getTagsTree: (prjId: string, maxDepth?: number, params?: ProjectTagRequestParams) => Promise<ProjectTagsTree>;
178
- declare const getTagsChildren: (prjId: string, level?: number, parent_id?: string, params?: ProjectTagRequestParams, maxDepth?: number) => Promise<ProjectTagTreeNode[]>;
179
- declare const getDeviceDetails: (deviceId: string) => Promise<AxiosResponse<RobotCloudDeviceDetails>>;
180
- declare const getProjectServiceTypes: (prjId: string, params?: SubsystemRequestParams) => Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>>;
181
- declare const getRoomGrouping1ServiceData: (prjId: string, params?: ServiceDataRequestParams) => Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>>;
182
- declare const getRoomGrouping1InstanceDeviceConfig: (prjId: string, instanceId: string) => Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>>;
183
-
184
- declare const robotCloudClient_getClassifier: typeof getClassifier;
185
- declare const robotCloudClient_getDeviceDetails: typeof getDeviceDetails;
186
- declare const robotCloudClient_getLocation: typeof getLocation;
187
- declare const robotCloudClient_getLocationServiceInstances: typeof getLocationServiceInstances;
188
- declare const robotCloudClient_getLocations: typeof getLocations;
189
- declare const robotCloudClient_getOrganization: typeof getOrganization;
190
- declare const robotCloudClient_getOrganizationProjects: typeof getOrganizationProjects;
191
- declare const robotCloudClient_getProjectClassifiers: typeof getProjectClassifiers;
192
- declare const robotCloudClient_getProjectDetails: typeof getProjectDetails;
193
- declare const robotCloudClient_getProjectServiceTypes: typeof getProjectServiceTypes;
194
- declare const robotCloudClient_getProjectSubsystem: typeof getProjectSubsystem;
195
- declare const robotCloudClient_getProjects: typeof getProjects;
196
- declare const robotCloudClient_getRoomGrouping1InstanceDeviceConfig: typeof getRoomGrouping1InstanceDeviceConfig;
197
- declare const robotCloudClient_getRoomGrouping1ServiceData: typeof getRoomGrouping1ServiceData;
198
- declare const robotCloudClient_getServiceInstance: typeof getServiceInstance;
199
- declare const robotCloudClient_getServiceInstances: typeof getServiceInstances;
200
- declare const robotCloudClient_getTags: typeof getTags;
201
- declare const robotCloudClient_getTagsChildren: typeof getTagsChildren;
202
- declare const robotCloudClient_getTagsTree: typeof getTagsTree;
203
- declare const robotCloudClient_getUser: typeof getUser;
204
- declare const robotCloudClient_getUserProjects: typeof getUserProjects;
205
- declare namespace robotCloudClient {
206
- export { robotCloudClient_getClassifier as getClassifier, robotCloudClient_getDeviceDetails as getDeviceDetails, robotCloudClient_getLocation as getLocation, robotCloudClient_getLocationServiceInstances as getLocationServiceInstances, robotCloudClient_getLocations as getLocations, robotCloudClient_getOrganization as getOrganization, robotCloudClient_getOrganizationProjects as getOrganizationProjects, robotCloudClient_getProjectClassifiers as getProjectClassifiers, robotCloudClient_getProjectDetails as getProjectDetails, robotCloudClient_getProjectServiceTypes as getProjectServiceTypes, robotCloudClient_getProjectSubsystem as getProjectSubsystem, robotCloudClient_getProjects as getProjects, 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, robotCloudClient_getUserProjects as getUserProjects };
207
- }
208
-
209
- interface CheckTokenResponse {
210
- renewed: boolean;
211
- invalid: boolean;
212
- access: string;
213
- renew: string;
214
- }
215
-
216
- interface RobotCloudJWTPayload {
217
- exp: number;
218
- sub: string; // username
219
- org: string; // organization
220
- }
221
-
222
- interface RobotCloudNewTokenResponse {
223
- access: string;
224
- renew: string;
225
- }
226
- declare const decodeToken: (token: string) => RobotCloudJWTPayload | undefined;
227
- declare const isTokenExpired: (payload: RobotCloudJWTPayload) => boolean;
228
- declare const renewToken: (renew_token: string) => Promise<CheckTokenResponse>;
229
- declare const validateToken: (access_token: string) => Promise<boolean>;
230
-
231
- type robotCloudToken_RobotCloudNewTokenResponse = RobotCloudNewTokenResponse;
232
- declare const robotCloudToken_decodeToken: typeof decodeToken;
233
- declare const robotCloudToken_isTokenExpired: typeof isTokenExpired;
234
- declare const robotCloudToken_renewToken: typeof renewToken;
235
- declare const robotCloudToken_validateToken: typeof validateToken;
236
- declare namespace robotCloudToken {
237
- export { type robotCloudToken_RobotCloudNewTokenResponse as RobotCloudNewTokenResponse, robotCloudToken_decodeToken as decodeToken, robotCloudToken_isTokenExpired as isTokenExpired, robotCloudToken_renewToken as renewToken, robotCloudToken_validateToken as validateToken };
238
- }
239
-
240
147
  interface RoomClime1Data {
241
148
  demandRF: boolean;
242
149
  eco_mode: "STANDBY"|"ECO"|"VIP";
@@ -287,6 +194,23 @@ interface RoomGuestStatus1Data {
287
194
  medical_alarm: boolean;
288
195
  }
289
196
 
197
+ interface ServiceInstanceDeviceConfig {
198
+ device: string;
199
+ }
200
+
201
+ interface RoomGrouping1InstanceDeviceConfig {
202
+ Main: ServiceInstanceDeviceConfig;
203
+ Replica_1: ServiceInstanceDeviceConfig;
204
+ Replica_2: ServiceInstanceDeviceConfig;
205
+ Replica_3: ServiceInstanceDeviceConfig;
206
+ }
207
+
208
+ interface RoomGrouping1DataEventValue {
209
+ replica_1_active: boolean;
210
+ replica_2_active: boolean;
211
+ replica_3_active: boolean;
212
+ }
213
+
290
214
  interface RoomClimeConfigurationParams {
291
215
  temperature_set_point?: number;
292
216
  humidity_set_point?: number;
@@ -363,4 +287,52 @@ declare class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Alert
363
287
  }
364
288
  declare const roomConsumesClient: RoomConsumesClient;
365
289
 
366
- export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, type ProjectTag, ProjectTagRequestParams, type ProjectTagTreeNode, type ProjectTagsTree, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, clientConfig, robotCloudToken, robotcloudApi, robotCloudClient as robotcloudClient, roomClimeClient, roomConsumesClient, roomGuestStatusClient };
290
+ interface ProjectClassifiersRequestParams extends PaginableRequestParams {
291
+
292
+ }
293
+
294
+ interface Classifier {
295
+ id: string;
296
+ name: string;
297
+ description: string;
298
+ }
299
+
300
+ interface ClassifierDetails extends Classifier {
301
+ }
302
+
303
+ interface ProjectTagTreeNode {
304
+ tag: ProjectTag;
305
+ children: ProjectTagTreeNode[];
306
+ }
307
+
308
+ interface ProjectTagsTree {
309
+ root: ProjectTagTreeNode[]
310
+ }
311
+
312
+ interface ProjectTag {
313
+ id: string;
314
+ name: string;
315
+ parent_id: string;
316
+ }
317
+
318
+ interface RobotCloudServiceInstance extends RobotCloudNamedItem {
319
+ service: string;
320
+ }
321
+
322
+ interface ServiceInstanceDetails extends RobotCloudServiceInstance {
323
+ description: string;
324
+ tags: string[];
325
+ subsystems: string[];
326
+ classifier: string;
327
+ }
328
+
329
+ interface ServiceInstancesRequestParams extends SubsystemRequestParams,
330
+ PaginableRequestParams {
331
+ id?: string;
332
+ name?: string;
333
+ location_id?: string;
334
+ device_id?: string;
335
+ tag_id?: string[];
336
+ }
337
+
338
+ export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, type ProjectTag, type ProjectTagTreeNode, type ProjectTagsTree, RegimState, RobotCloudClientConfig, type RobotCloudJWTPayload, RobotCloudNamedItem, type RobotCloudServiceInstance, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, type ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, clientConfig, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient };