@robotbas/robotcloud-client 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/index.d.mts +2 -1
- package/dist/helpers/index.d.ts +2 -1
- package/dist/helpers/index.js +63 -2
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/index.mjs +61 -1
- package/dist/helpers/index.mjs.map +1 -1
- package/dist/{index-phKRvmfC.d.mts → index-rOMDEfBU.d.mts} +32 -1
- package/dist/{index-phKRvmfC.d.ts → index-rOMDEfBU.d.ts} +32 -1
- package/dist/index.d.mts +11 -19
- package/dist/index.d.ts +11 -19
- package/dist/index.js +99 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +95 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/helpers/index.d.mts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { q as RobotCloudPermissionsHelper, r as robotCloudPermissionsHelper, p as tagsHelper } from '../index-rOMDEfBU.mjs';
|
|
2
|
+
import 'axios';
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { q as RobotCloudPermissionsHelper, r as robotCloudPermissionsHelper, p as tagsHelper } from '../index-rOMDEfBU.js';
|
|
2
|
+
import 'axios';
|
package/dist/helpers/index.js
CHANGED
|
@@ -30,7 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/helpers/index.ts
|
|
31
31
|
var helpers_exports = {};
|
|
32
32
|
__export(helpers_exports, {
|
|
33
|
-
robotCloudPermissionsHelper: () => robotCloudPermissionsHelper
|
|
33
|
+
robotCloudPermissionsHelper: () => robotCloudPermissionsHelper,
|
|
34
|
+
tagsHelper: () => tagsHelper
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(helpers_exports);
|
|
36
37
|
|
|
@@ -221,6 +222,62 @@ var TagsClient = class {
|
|
|
221
222
|
};
|
|
222
223
|
var tagsClient = new TagsClient();
|
|
223
224
|
|
|
225
|
+
// src/helpers/tags.ts
|
|
226
|
+
var logger6 = useLogger("tags-helper");
|
|
227
|
+
var TagsHelper = class {
|
|
228
|
+
constructor(tagsClient2) {
|
|
229
|
+
this.getTagsTree = async (prjId, maxDepth = 2, params) => {
|
|
230
|
+
logger6.info(`Get project ${prjId} tags tree`);
|
|
231
|
+
if (!params) {
|
|
232
|
+
params = {};
|
|
233
|
+
}
|
|
234
|
+
params.no_parent = true;
|
|
235
|
+
const tags = await this.getTagsChildren(
|
|
236
|
+
prjId,
|
|
237
|
+
0,
|
|
238
|
+
void 0,
|
|
239
|
+
void 0,
|
|
240
|
+
maxDepth
|
|
241
|
+
);
|
|
242
|
+
return { root: tags };
|
|
243
|
+
};
|
|
244
|
+
this.getTagsChildren = async (prjId, level = 0, parent_id, params, maxDepth) => {
|
|
245
|
+
logger6.debug(`Get project ${prjId} tags children: ${parent_id}`);
|
|
246
|
+
if (!params) {
|
|
247
|
+
params = {};
|
|
248
|
+
}
|
|
249
|
+
params.no_parent = !parent_id;
|
|
250
|
+
params.parent_tag = parent_id;
|
|
251
|
+
const tags = await this.tagsClient.getTags(prjId, params);
|
|
252
|
+
if (tags.data.length == 0) {
|
|
253
|
+
return [];
|
|
254
|
+
}
|
|
255
|
+
const response = [];
|
|
256
|
+
const requests = [];
|
|
257
|
+
for (let i2 = 0; i2 < tags.data.length; i2++) {
|
|
258
|
+
const element = tags.data[i2];
|
|
259
|
+
const node = {
|
|
260
|
+
tag: element
|
|
261
|
+
};
|
|
262
|
+
response.push(node);
|
|
263
|
+
if (maxDepth && level < maxDepth) {
|
|
264
|
+
requests.push(
|
|
265
|
+
this.getTagsChildren(prjId, level + 1, element.id, params, maxDepth)
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const responses = await Promise.all(requests);
|
|
270
|
+
let i = 0;
|
|
271
|
+
responses.forEach((element) => {
|
|
272
|
+
response[i].children = element;
|
|
273
|
+
i++;
|
|
274
|
+
});
|
|
275
|
+
return response;
|
|
276
|
+
};
|
|
277
|
+
this.tagsClient = tagsClient2;
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
224
281
|
// src/helpers/robotCloudPermissionsHelper.ts
|
|
225
282
|
var RobotCloudPermissionsHelperImpl = class {
|
|
226
283
|
async checkProjectAccess(prjId, required_project_access) {
|
|
@@ -260,8 +317,12 @@ var RobotCloudPermissionsHelperImpl = class {
|
|
|
260
317
|
}
|
|
261
318
|
};
|
|
262
319
|
var robotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl();
|
|
320
|
+
|
|
321
|
+
// src/helpers/index.ts
|
|
322
|
+
var tagsHelper = new TagsHelper(tagsClient);
|
|
263
323
|
// Annotate the CommonJS export names for ESM import in node:
|
|
264
324
|
0 && (module.exports = {
|
|
265
|
-
robotCloudPermissionsHelper
|
|
325
|
+
robotCloudPermissionsHelper,
|
|
326
|
+
tagsHelper
|
|
266
327
|
});
|
|
267
328
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/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 Classifier,\n ClassifierDetails,\n ProjectClassifiersRequestParams,\n} from \"../../../types/ProjectClassifer\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n LocationServiceInstancesRequestParams,\n ProjectLocationsRequestParams,\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectRequestParams,\n RobotCloudProject,\n RobotCloudProjectDetails,\n ProjectDetailsRequestParams,\n RobotCloudServiceTypeDetails,\n SubsystemRequestParams,\n} from \"../../../types/RobotCloudClient\";\n\nclass ProjectsClient {\n\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 type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudServiceInstance, ServiceInstanceDetails, ServiceInstancesRequestParams \n} from \"../../../types/ServiceInstance\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\ngetServiceInstances = (\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\ngetServiceInstance = (\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}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { ProjectTagRequestParams } from \"../../../types/RobotCloudClient\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { 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","logger","logger","logger","logger"]}
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ProjectClassifiersRequestParams,\n} from \"../../../types/ProjectClassifer\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n LocationServiceInstancesRequestParams,\n ProjectLocationsRequestParams,\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectRequestParams,\n RobotCloudProject,\n RobotCloudProjectDetails,\n ProjectDetailsRequestParams,\n RobotCloudServiceTypeDetails,\n SubsystemRequestParams,\n} from \"../../../types/RobotCloudClient\";\n\nclass ProjectsClient {\n\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 type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudServiceInstance, ServiceInstanceDetails, ServiceInstancesRequestParams \n} from \"../../../types/ServiceInstance\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\ngetServiceInstances = (\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\ngetServiceInstance = (\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}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { ProjectTagRequestParams } from \"../../../types/RobotCloudClient\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { ProjectTagRequestParams } from \"../../types/RobotCloudClient\";\nimport { tagsClient, TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n ): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = true;\n\n const tags = await this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n ): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await this.tagsClient.getTags(prjId, params);\n if (tags.data.length == 0) {\n return [];\n }\n\n const response: ProjectTagTreeNode[] = [];\n const requests: any[] = [];\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i];\n const node = {\n tag: element,\n } as ProjectTagTreeNode;\n response.push(node);\n if (maxDepth && level < maxDepth) {\n requests.push(\n this.getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n );\n }\n }\n\n const responses = await Promise.all(requests);\n let i = 0;\n responses.forEach((element) => {\n response[i].children = element;\n i++;\n });\n\n return response;\n };\n}\n","import { projectsClient } from \"client/projects\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await projectsClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["axios","logger","logger","logger","logger","logger","tagsClient","i"]}
|
package/dist/helpers/index.mjs
CHANGED
|
@@ -185,6 +185,62 @@ var TagsClient = class {
|
|
|
185
185
|
};
|
|
186
186
|
var tagsClient = new TagsClient();
|
|
187
187
|
|
|
188
|
+
// src/helpers/tags.ts
|
|
189
|
+
var logger6 = useLogger("tags-helper");
|
|
190
|
+
var TagsHelper = class {
|
|
191
|
+
constructor(tagsClient2) {
|
|
192
|
+
this.getTagsTree = async (prjId, maxDepth = 2, params) => {
|
|
193
|
+
logger6.info(`Get project ${prjId} tags tree`);
|
|
194
|
+
if (!params) {
|
|
195
|
+
params = {};
|
|
196
|
+
}
|
|
197
|
+
params.no_parent = true;
|
|
198
|
+
const tags = await this.getTagsChildren(
|
|
199
|
+
prjId,
|
|
200
|
+
0,
|
|
201
|
+
void 0,
|
|
202
|
+
void 0,
|
|
203
|
+
maxDepth
|
|
204
|
+
);
|
|
205
|
+
return { root: tags };
|
|
206
|
+
};
|
|
207
|
+
this.getTagsChildren = async (prjId, level = 0, parent_id, params, maxDepth) => {
|
|
208
|
+
logger6.debug(`Get project ${prjId} tags children: ${parent_id}`);
|
|
209
|
+
if (!params) {
|
|
210
|
+
params = {};
|
|
211
|
+
}
|
|
212
|
+
params.no_parent = !parent_id;
|
|
213
|
+
params.parent_tag = parent_id;
|
|
214
|
+
const tags = await this.tagsClient.getTags(prjId, params);
|
|
215
|
+
if (tags.data.length == 0) {
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
const response = [];
|
|
219
|
+
const requests = [];
|
|
220
|
+
for (let i2 = 0; i2 < tags.data.length; i2++) {
|
|
221
|
+
const element = tags.data[i2];
|
|
222
|
+
const node = {
|
|
223
|
+
tag: element
|
|
224
|
+
};
|
|
225
|
+
response.push(node);
|
|
226
|
+
if (maxDepth && level < maxDepth) {
|
|
227
|
+
requests.push(
|
|
228
|
+
this.getTagsChildren(prjId, level + 1, element.id, params, maxDepth)
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const responses = await Promise.all(requests);
|
|
233
|
+
let i = 0;
|
|
234
|
+
responses.forEach((element) => {
|
|
235
|
+
response[i].children = element;
|
|
236
|
+
i++;
|
|
237
|
+
});
|
|
238
|
+
return response;
|
|
239
|
+
};
|
|
240
|
+
this.tagsClient = tagsClient2;
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
|
|
188
244
|
// src/helpers/robotCloudPermissionsHelper.ts
|
|
189
245
|
var RobotCloudPermissionsHelperImpl = class {
|
|
190
246
|
async checkProjectAccess(prjId, required_project_access) {
|
|
@@ -224,7 +280,11 @@ var RobotCloudPermissionsHelperImpl = class {
|
|
|
224
280
|
}
|
|
225
281
|
};
|
|
226
282
|
var robotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl();
|
|
283
|
+
|
|
284
|
+
// src/helpers/index.ts
|
|
285
|
+
var tagsHelper = new TagsHelper(tagsClient);
|
|
227
286
|
export {
|
|
228
|
-
robotCloudPermissionsHelper
|
|
287
|
+
robotCloudPermissionsHelper,
|
|
288
|
+
tagsHelper
|
|
229
289
|
};
|
|
230
290
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/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 Classifier,\n ClassifierDetails,\n ProjectClassifiersRequestParams,\n} from \"../../../types/ProjectClassifer\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n LocationServiceInstancesRequestParams,\n ProjectLocationsRequestParams,\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectRequestParams,\n RobotCloudProject,\n RobotCloudProjectDetails,\n ProjectDetailsRequestParams,\n RobotCloudServiceTypeDetails,\n SubsystemRequestParams,\n} from \"../../../types/RobotCloudClient\";\n\nclass ProjectsClient {\n\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 type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudServiceInstance, ServiceInstanceDetails, ServiceInstancesRequestParams \n} from \"../../../types/ServiceInstance\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\ngetServiceInstances = (\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\ngetServiceInstance = (\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}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { ProjectTagRequestParams } from \"../../../types/RobotCloudClient\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { 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":["logger","logger","logger","logger"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts","../../src/helpers/index.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails,\n ProjectClassifiersRequestParams,\n} from \"../../../types/ProjectClassifer\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n ): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`);\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n };\n\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n LocationServiceInstancesRequestParams,\n ProjectLocationsRequestParams,\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectRequestParams,\n RobotCloudProject,\n RobotCloudProjectDetails,\n ProjectDetailsRequestParams,\n RobotCloudServiceTypeDetails,\n SubsystemRequestParams,\n} from \"../../../types/RobotCloudClient\";\n\nclass ProjectsClient {\n\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 type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RobotCloudServiceInstance, ServiceInstanceDetails, ServiceInstancesRequestParams \n} from \"../../../types/ServiceInstance\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\ngetServiceInstances = (\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\ngetServiceInstance = (\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}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { ProjectTagRequestParams } from \"../../../types/RobotCloudClient\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n ): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`);\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { ProjectTagRequestParams } from \"../../types/RobotCloudClient\";\nimport { tagsClient, TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n ): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = true;\n\n const tags = await this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n ): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`);\n if (!params) {\n params = {} as ProjectTagRequestParams;\n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await this.tagsClient.getTags(prjId, params);\n if (tags.data.length == 0) {\n return [];\n }\n\n const response: ProjectTagTreeNode[] = [];\n const requests: any[] = [];\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i];\n const node = {\n tag: element,\n } as ProjectTagTreeNode;\n response.push(node);\n if (maxDepth && level < maxDepth) {\n requests.push(\n this.getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n );\n }\n }\n\n const responses = await Promise.all(requests);\n let i = 0;\n responses.forEach((element) => {\n response[i].children = element;\n i++;\n });\n\n return response;\n };\n}\n","import { projectsClient } from \"client/projects\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await projectsClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["logger","logger","logger","logger","logger","tagsClient","i"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
|
|
1
3
|
type TemperatureUnit = "CELSIUS" | "FAHRENHEIT"
|
|
2
4
|
type RegimState = "COLD"|"HEAT"|"AUTO"
|
|
3
5
|
|
|
@@ -136,6 +138,33 @@ interface RoomConsumes1AlertEventValue {
|
|
|
136
138
|
high_daily_cold_water: boolean;
|
|
137
139
|
}
|
|
138
140
|
|
|
141
|
+
interface ProjectTagTreeNode {
|
|
142
|
+
tag: ProjectTag;
|
|
143
|
+
children: ProjectTagTreeNode[];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
interface ProjectTagsTree {
|
|
147
|
+
root: ProjectTagTreeNode[]
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
interface ProjectTag {
|
|
151
|
+
id: string;
|
|
152
|
+
name: string;
|
|
153
|
+
parent_id: string;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
declare class TagsClient {
|
|
157
|
+
getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
|
|
158
|
+
}
|
|
159
|
+
declare const tagsClient: TagsClient;
|
|
160
|
+
|
|
161
|
+
declare class TagsHelper {
|
|
162
|
+
private tagsClient;
|
|
163
|
+
constructor(tagsClient: TagsClient);
|
|
164
|
+
getTagsTree: (prjId: string, maxDepth?: number, params?: ProjectTagRequestParams) => Promise<ProjectTagsTree>;
|
|
165
|
+
getTagsChildren: (prjId: string, level?: number, parent_id?: string, params?: ProjectTagRequestParams, maxDepth?: number) => Promise<ProjectTagTreeNode[]>;
|
|
166
|
+
}
|
|
167
|
+
|
|
139
168
|
interface RobotCloudPermissionsHelper {
|
|
140
169
|
checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
|
|
141
170
|
hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel): boolean;
|
|
@@ -144,4 +173,6 @@ interface RobotCloudPermissionsHelper {
|
|
|
144
173
|
|
|
145
174
|
declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
|
|
146
175
|
|
|
147
|
-
|
|
176
|
+
declare const tagsHelper: TagsHelper;
|
|
177
|
+
|
|
178
|
+
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 RobotCloudDeviceDetails as d, type RobotCloudNamedItem as e, type RobotCloudServiceType as f, type ProjectLocationsRequestParams as g, type ProjectRequestParams as h, type RobotCloudProject as i, type ProjectDetailsRequestParams as j, type RobotCloudProjectDetails as k, type RobotCloudServiceTypeDetails as l, type RobotCloudUserDetails as m, type RobotCloudUserProject as n, type RobotCloudOrganizationDetails as o, tagsHelper as p, type RobotCloudPermissionsHelper as q, robotCloudPermissionsHelper as r, type ProjectTagTreeNode as s, tagsClient as t, type ProjectTagsTree as u, type ProjectTag as v, type ProjectAccessLevel as w, type ProjectTagRequestParams as x, type RobotCloudUserAppAccess as y };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
|
|
1
3
|
type TemperatureUnit = "CELSIUS" | "FAHRENHEIT"
|
|
2
4
|
type RegimState = "COLD"|"HEAT"|"AUTO"
|
|
3
5
|
|
|
@@ -136,6 +138,33 @@ interface RoomConsumes1AlertEventValue {
|
|
|
136
138
|
high_daily_cold_water: boolean;
|
|
137
139
|
}
|
|
138
140
|
|
|
141
|
+
interface ProjectTagTreeNode {
|
|
142
|
+
tag: ProjectTag;
|
|
143
|
+
children: ProjectTagTreeNode[];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
interface ProjectTagsTree {
|
|
147
|
+
root: ProjectTagTreeNode[]
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
interface ProjectTag {
|
|
151
|
+
id: string;
|
|
152
|
+
name: string;
|
|
153
|
+
parent_id: string;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
declare class TagsClient {
|
|
157
|
+
getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
|
|
158
|
+
}
|
|
159
|
+
declare const tagsClient: TagsClient;
|
|
160
|
+
|
|
161
|
+
declare class TagsHelper {
|
|
162
|
+
private tagsClient;
|
|
163
|
+
constructor(tagsClient: TagsClient);
|
|
164
|
+
getTagsTree: (prjId: string, maxDepth?: number, params?: ProjectTagRequestParams) => Promise<ProjectTagsTree>;
|
|
165
|
+
getTagsChildren: (prjId: string, level?: number, parent_id?: string, params?: ProjectTagRequestParams, maxDepth?: number) => Promise<ProjectTagTreeNode[]>;
|
|
166
|
+
}
|
|
167
|
+
|
|
139
168
|
interface RobotCloudPermissionsHelper {
|
|
140
169
|
checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
|
|
141
170
|
hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel): boolean;
|
|
@@ -144,4 +173,6 @@ interface RobotCloudPermissionsHelper {
|
|
|
144
173
|
|
|
145
174
|
declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
|
|
146
175
|
|
|
147
|
-
|
|
176
|
+
declare const tagsHelper: TagsHelper;
|
|
177
|
+
|
|
178
|
+
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 RobotCloudDeviceDetails as d, type RobotCloudNamedItem as e, type RobotCloudServiceType as f, type ProjectLocationsRequestParams as g, type ProjectRequestParams as h, type RobotCloudProject as i, type ProjectDetailsRequestParams as j, type RobotCloudProjectDetails as k, type RobotCloudServiceTypeDetails as l, type RobotCloudUserDetails as m, type RobotCloudUserProject as n, type RobotCloudOrganizationDetails as o, tagsHelper as p, type RobotCloudPermissionsHelper as q, robotCloudPermissionsHelper as r, type ProjectTagTreeNode as s, tagsClient as t, type ProjectTagsTree as u, type ProjectTag as v, type ProjectAccessLevel as w, type ProjectTagRequestParams as x, type RobotCloudUserAppAccess as y };
|
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 { S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, R as RegimState, T as TemperatureUnit, b as RoomClime1AlertEventValue, c as RoomConsumes1AlertEventValue, P as PaginableRequestParams, d as RobotCloudDeviceDetails, e as RobotCloudNamedItem, f as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, g as ProjectLocationsRequestParams, h as ProjectRequestParams, i as RobotCloudProject, j as ProjectDetailsRequestParams, k as RobotCloudProjectDetails, l as RobotCloudServiceTypeDetails, m as
|
|
4
|
-
export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel,
|
|
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 RobotCloudDeviceDetails, e as RobotCloudNamedItem, f as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, g as ProjectLocationsRequestParams, h as ProjectRequestParams, i as RobotCloudProject, j as ProjectDetailsRequestParams, k as RobotCloudProjectDetails, l as RobotCloudServiceTypeDetails, m as RobotCloudUserDetails, n as RobotCloudUserProject, o as RobotCloudOrganizationDetails } from './index-rOMDEfBU.mjs';
|
|
4
|
+
export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, w as ProjectAccessLevel, v as ProjectTag, x as ProjectTagRequestParams, s as ProjectTagTreeNode, u as ProjectTagsTree, q as RobotCloudPermissionsHelper, y as RobotCloudUserAppAccess, r as robotCloudPermissionsHelper, t as tagsClient, p as tagsHelper } from './index-rOMDEfBU.mjs';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
7
|
|
|
@@ -363,24 +363,16 @@ declare class SubsystemsClient {
|
|
|
363
363
|
}
|
|
364
364
|
declare const subsystemsClient: SubsystemsClient;
|
|
365
365
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
366
|
+
declare class UsersClient {
|
|
367
|
+
getUser: (username: string) => Promise<AxiosResponse<RobotCloudUserDetails>>;
|
|
368
|
+
getUserProjects: (username: string) => Promise<AxiosResponse<RobotCloudUserProject[]>>;
|
|
369
369
|
}
|
|
370
|
+
declare const usersClient: UsersClient;
|
|
370
371
|
|
|
371
|
-
|
|
372
|
-
|
|
372
|
+
declare class OrganizationsClient {
|
|
373
|
+
getOrganization: (organizationId: string) => Promise<AxiosResponse<RobotCloudOrganizationDetails>>;
|
|
374
|
+
getOrganizationProjects: (organizationId: string) => Promise<AxiosResponse<RobotCloudProject[]>>;
|
|
373
375
|
}
|
|
376
|
+
declare const organizationsClient: OrganizationsClient;
|
|
374
377
|
|
|
375
|
-
|
|
376
|
-
id: string;
|
|
377
|
-
name: string;
|
|
378
|
-
parent_id: string;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
declare class TagsClient {
|
|
382
|
-
getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
|
|
383
|
-
}
|
|
384
|
-
declare const tagsClient: TagsClient;
|
|
385
|
-
|
|
386
|
-
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, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, 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, classifiersClient, clientConfig, devicesClient, locationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, tagsClient };
|
|
378
|
+
export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, 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, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as axios from 'axios';
|
|
2
2
|
import { AxiosResponse } from 'axios';
|
|
3
|
-
import { S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, R as RegimState, T as TemperatureUnit, b as RoomClime1AlertEventValue, c as RoomConsumes1AlertEventValue, P as PaginableRequestParams, d as RobotCloudDeviceDetails, e as RobotCloudNamedItem, f as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, g as ProjectLocationsRequestParams, h as ProjectRequestParams, i as RobotCloudProject, j as ProjectDetailsRequestParams, k as RobotCloudProjectDetails, l as RobotCloudServiceTypeDetails, m as
|
|
4
|
-
export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel,
|
|
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 RobotCloudDeviceDetails, e as RobotCloudNamedItem, f as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, g as ProjectLocationsRequestParams, h as ProjectRequestParams, i as RobotCloudProject, j as ProjectDetailsRequestParams, k as RobotCloudProjectDetails, l as RobotCloudServiceTypeDetails, m as RobotCloudUserDetails, n as RobotCloudUserProject, o as RobotCloudOrganizationDetails } from './index-rOMDEfBU.js';
|
|
4
|
+
export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, w as ProjectAccessLevel, v as ProjectTag, x as ProjectTagRequestParams, s as ProjectTagTreeNode, u as ProjectTagsTree, q as RobotCloudPermissionsHelper, y as RobotCloudUserAppAccess, r as robotCloudPermissionsHelper, t as tagsClient, p as tagsHelper } from './index-rOMDEfBU.js';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
7
|
|
|
@@ -363,24 +363,16 @@ declare class SubsystemsClient {
|
|
|
363
363
|
}
|
|
364
364
|
declare const subsystemsClient: SubsystemsClient;
|
|
365
365
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
366
|
+
declare class UsersClient {
|
|
367
|
+
getUser: (username: string) => Promise<AxiosResponse<RobotCloudUserDetails>>;
|
|
368
|
+
getUserProjects: (username: string) => Promise<AxiosResponse<RobotCloudUserProject[]>>;
|
|
369
369
|
}
|
|
370
|
+
declare const usersClient: UsersClient;
|
|
370
371
|
|
|
371
|
-
|
|
372
|
-
|
|
372
|
+
declare class OrganizationsClient {
|
|
373
|
+
getOrganization: (organizationId: string) => Promise<AxiosResponse<RobotCloudOrganizationDetails>>;
|
|
374
|
+
getOrganizationProjects: (organizationId: string) => Promise<AxiosResponse<RobotCloudProject[]>>;
|
|
373
375
|
}
|
|
376
|
+
declare const organizationsClient: OrganizationsClient;
|
|
374
377
|
|
|
375
|
-
|
|
376
|
-
id: string;
|
|
377
|
-
name: string;
|
|
378
|
-
parent_id: string;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
declare class TagsClient {
|
|
382
|
-
getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
|
|
383
|
-
}
|
|
384
|
-
declare const tagsClient: TagsClient;
|
|
385
|
-
|
|
386
|
-
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, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, 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, classifiersClient, clientConfig, devicesClient, locationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, tagsClient };
|
|
378
|
+
export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, 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, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|