@robotbas/robotcloud-client 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,560 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ airQualityClient: () => airQualityClient,
34
+ robotCloudToken: () => robotCloudToken_exports,
35
+ robotcloudApi: () => robotCloudApi_default,
36
+ robotcloudClient: () => robotCloudClient_exports,
37
+ roomClimeClient: () => roomClimeClient,
38
+ roomConsumesClient: () => roomConsumesClient,
39
+ roomGuestStatusClient: () => roomGuestStatusClient,
40
+ setCheckTokenFunction: () => setCheckTokenFunction
41
+ });
42
+ module.exports = __toCommonJS(src_exports);
43
+
44
+ // src/robotCloudApi.ts
45
+ var import_axios = __toESM(require("axios"));
46
+
47
+ // src/utils/logger.ts
48
+ var import_consola = require("consola");
49
+ function useLogger(tag, options = { level: 1e3 }) {
50
+ return tag ? (0, import_consola.createConsola)(options).withTag(tag) : (0, import_consola.createConsola)(options);
51
+ }
52
+
53
+ // src/robotCloudApi.ts
54
+ var logger = useLogger("robotcloud-api");
55
+ var robotcloudApi = import_axios.default.create();
56
+ var checkTokenPromise = null;
57
+ var clearPromise = () => checkTokenPromise = null;
58
+ async function refreshToken(checkToken2) {
59
+ const access_token = await checkToken2();
60
+ return access_token;
61
+ }
62
+ var checkToken = async () => {
63
+ return "";
64
+ };
65
+ robotcloudApi.interceptors.request.use(
66
+ async (config) => {
67
+ logger.info("robotcloud api interceptor:", config.url);
68
+ if (!checkTokenPromise) {
69
+ checkTokenPromise = refreshToken(checkToken).finally(clearPromise);
70
+ }
71
+ const token = await checkTokenPromise;
72
+ if (!token) {
73
+ return config;
74
+ }
75
+ config.headers.authorization = `Bearer ${token}`;
76
+ return config;
77
+ },
78
+ (error) => {
79
+ logger.error(error);
80
+ Promise.reject(error);
81
+ }
82
+ );
83
+ var setCheckTokenFunction = (fun) => {
84
+ checkToken = fun;
85
+ };
86
+ var robotCloudApi_default = robotcloudApi;
87
+
88
+ // src/robotCloudClient.ts
89
+ var robotCloudClient_exports = {};
90
+ __export(robotCloudClient_exports, {
91
+ getClassifier: () => getClassifier,
92
+ getDeviceDetails: () => getDeviceDetails,
93
+ getLocation: () => getLocation,
94
+ getLocationServiceInstances: () => getLocationServiceInstances,
95
+ getLocations: () => getLocations,
96
+ getProjectDetails: () => getProjectDetails,
97
+ getProjectServiceTypes: () => getProjectServiceTypes,
98
+ getProjectSubsystem: () => getProjectSubsystem,
99
+ getProjects: () => getProjects,
100
+ getRoomConsumesInstanceServiceData: () => getRoomConsumesInstanceServiceData,
101
+ getRoomGrouping1InstanceDeviceConfig: () => getRoomGrouping1InstanceDeviceConfig,
102
+ getRoomGrouping1ServiceData: () => getRoomGrouping1ServiceData,
103
+ getServiceInstance: () => getServiceInstance,
104
+ getServiceInstances: () => getServiceInstances,
105
+ getTags: () => getTags,
106
+ getTagsChildren: () => getTagsChildren,
107
+ getTagsTree: () => getTagsTree,
108
+ getUser: () => getUser
109
+ });
110
+ var logger2 = useLogger("robotcloud-client");
111
+ var getLocationServiceInstances = (prjId, locId, service_type, params) => {
112
+ return robotCloudApi_default.get(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {
113
+ params
114
+ });
115
+ };
116
+ var getUser = (username) => {
117
+ return robotCloudApi_default.get(`users/${username}`);
118
+ };
119
+ var getProjects = (params) => {
120
+ return robotCloudApi_default.get("projects", {
121
+ params
122
+ });
123
+ };
124
+ var getProjectDetails = (prjId, params) => {
125
+ return robotCloudApi_default.get(`projects/${prjId}`, {
126
+ params
127
+ });
128
+ };
129
+ var getProjectSubsystem = (prjId, subsysId) => {
130
+ return robotCloudApi_default.get(`projects/${prjId}/subsystems/${subsysId}`);
131
+ };
132
+ var getLocations = (prjId, params) => {
133
+ return robotCloudApi_default.get(`projects/${prjId}/locations`, {
134
+ params
135
+ });
136
+ };
137
+ var getLocation = (locationId) => {
138
+ return robotCloudApi_default.get(`locations/${locationId}`, {});
139
+ };
140
+ var getServiceInstances = (prjId, service_type, params) => {
141
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances`, {
142
+ params
143
+ });
144
+ };
145
+ var getServiceInstance = (prjId, service_type, service_id) => {
146
+ return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${service_id}`);
147
+ };
148
+ var getClassifier = (classifierId) => {
149
+ return robotCloudApi_default.get(`classifiers/${classifierId}`);
150
+ };
151
+ var getTags = (prjId, params) => {
152
+ logger2.info(`Get project ${prjId} tags`);
153
+ return robotCloudApi_default.get(`projects/${prjId}/tags`, {
154
+ params
155
+ });
156
+ };
157
+ var getTagsTree = async (prjId, maxDepth = 2, params) => {
158
+ logger2.info(`Get project ${prjId} tags tree`);
159
+ if (!params) {
160
+ params = {};
161
+ }
162
+ params.no_parent = true;
163
+ const tags = await getTagsChildren(prjId, 0, void 0, void 0, maxDepth);
164
+ return { root: tags };
165
+ };
166
+ var getTagsChildren = async (prjId, level = 0, parent_id, params, maxDepth) => {
167
+ logger2.debug(`Get project ${prjId} tags children: ${parent_id}`);
168
+ if (!params) {
169
+ params = {};
170
+ }
171
+ params.no_parent = !parent_id;
172
+ params.parent_tag = parent_id;
173
+ const tags = await getTags(prjId, params);
174
+ if (tags.data.length == 0) {
175
+ return [];
176
+ }
177
+ const response = [];
178
+ const requests = [];
179
+ for (let i2 = 0; i2 < tags.data.length; i2++) {
180
+ const element = tags.data[i2];
181
+ const node = {
182
+ tag: element
183
+ };
184
+ response.push(node);
185
+ if (maxDepth && level < maxDepth) {
186
+ requests.push(
187
+ getTagsChildren(prjId, level + 1, element.id, params, maxDepth)
188
+ );
189
+ }
190
+ }
191
+ const responses = await Promise.all(requests);
192
+ let i = 0;
193
+ responses.forEach((element) => {
194
+ response[i].children = element;
195
+ i++;
196
+ });
197
+ return response;
198
+ };
199
+ var getDeviceDetails = (deviceId) => {
200
+ return robotCloudApi_default.get(`devices/${deviceId}`);
201
+ };
202
+ var getProjectServiceTypes = (prjId, params) => {
203
+ return robotCloudApi_default.get(`projects/${prjId}/services`, {
204
+ params
205
+ });
206
+ };
207
+ var getRoomGrouping1ServiceData = (prjId, params) => {
208
+ return robotCloudApi_default.get(
209
+ `/projects/${prjId}/services/RoomGrouping_1/data`,
210
+ {
211
+ params,
212
+ headers: {
213
+ "Accept": "application/json"
214
+ }
215
+ }
216
+ );
217
+ };
218
+ var getRoomConsumesInstanceServiceData = (prjId, instanceId, params) => {
219
+ return robotCloudApi_default.get(
220
+ `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,
221
+ {
222
+ params,
223
+ headers: {
224
+ "Accept": "application/json"
225
+ }
226
+ }
227
+ );
228
+ };
229
+ var getRoomGrouping1InstanceDeviceConfig = (prjId, instanceId) => {
230
+ return robotCloudApi_default.put(
231
+ `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`
232
+ );
233
+ };
234
+
235
+ // src/helpers/robotCloudToken.ts
236
+ var robotCloudToken_exports = {};
237
+ __export(robotCloudToken_exports, {
238
+ decodeToken: () => decodeToken,
239
+ isTokenExpired: () => isTokenExpired,
240
+ renewToken: () => renewToken,
241
+ validateToken: () => validateToken
242
+ });
243
+ var import_axios2 = __toESM(require("axios"));
244
+
245
+ // src/config.ts
246
+ var RobotCloudClientConfig = class {
247
+ };
248
+ RobotCloudClientConfig.tokenMinutesBeforeExpirationRenew = 20;
249
+
250
+ // src/helpers/robotCloudToken.ts
251
+ var logger3 = useLogger("robotcloud-token");
252
+ var MINUTES_BEFORE_EXPIRATION_RENEW = RobotCloudClientConfig.tokenMinutesBeforeExpirationRenew;
253
+ function parseJwt(token) {
254
+ if (!token) {
255
+ return;
256
+ }
257
+ return JSON.parse(atob(token.split(".")[1]));
258
+ }
259
+ var decodeToken = (token) => {
260
+ const payload = parseJwt(token);
261
+ if (!payload) {
262
+ return void 0;
263
+ }
264
+ return payload;
265
+ };
266
+ var isTokenExpired = (payload) => {
267
+ const expirationDate = new Date(payload.exp * 1e3);
268
+ expirationDate.setMinutes(
269
+ expirationDate.getMinutes() - MINUTES_BEFORE_EXPIRATION_RENEW
270
+ );
271
+ const currentDate = /* @__PURE__ */ new Date();
272
+ return currentDate >= expirationDate;
273
+ };
274
+ var renewToken = async (renew_token) => {
275
+ logger3.debug("Renewing token ...");
276
+ const cloudUrl = robotCloudApi_default.defaults.baseURL;
277
+ const { data } = await import_axios2.default.get(cloudUrl + "login/renew", {
278
+ headers: {
279
+ Authorization: `Bearer ${renew_token}`
280
+ }
281
+ });
282
+ return {
283
+ renewed: true,
284
+ access: data["access"]["token"],
285
+ renew: data["renew"]["token"]
286
+ };
287
+ };
288
+ var validateToken = async (access_token) => {
289
+ var _a, _b, _c;
290
+ logger3.debug("Validate token ...");
291
+ const payload = decodeToken(access_token);
292
+ if (!payload) {
293
+ return false;
294
+ }
295
+ const cloudUrl = robotCloudApi_default.defaults.baseURL;
296
+ try {
297
+ const { data } = await import_axios2.default.get(
298
+ cloudUrl + `users/${payload.sub}`,
299
+ {
300
+ headers: {
301
+ Authorization: `Bearer ${access_token}`
302
+ }
303
+ }
304
+ );
305
+ } catch (error) {
306
+ if (import_axios2.default.isAxiosError(error)) {
307
+ logger3.warn(`${error.message}: ${(_c = (_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.message) != null ? _c : ""}`);
308
+ } else {
309
+ logger3.warn(error);
310
+ }
311
+ return false;
312
+ }
313
+ return true;
314
+ };
315
+
316
+ // src/client/services/room-clime-1.ts
317
+ var RoomClimeClient = class {
318
+ getAlerts(prjId, params) {
319
+ return robotCloudApi_default.get(
320
+ `/projects/${prjId}/services/RoomClime_1/alert`,
321
+ {
322
+ params,
323
+ headers: {
324
+ "Accept": "application/json"
325
+ }
326
+ }
327
+ );
328
+ }
329
+ getData(prjId, params) {
330
+ return robotCloudApi_default.get(
331
+ `/projects/${prjId}/services/RoomClime_1/data`,
332
+ {
333
+ params,
334
+ headers: {
335
+ "Accept": "application/json"
336
+ }
337
+ }
338
+ );
339
+ }
340
+ getInstanceConfiguration(prjId, instanceId) {
341
+ return robotCloudApi_default.get(
342
+ `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`
343
+ );
344
+ }
345
+ putInstanceConfiguration(prjId, instanceId, data) {
346
+ return robotCloudApi_default.put(
347
+ `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,
348
+ data
349
+ );
350
+ }
351
+ getInstanceHistoric(prjId, instanceId, startTime, endTime, params) {
352
+ return robotCloudApi_default.get(
353
+ `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`,
354
+ {
355
+ params: {
356
+ start_time: startTime,
357
+ end_time: endTime,
358
+ ...params
359
+ }
360
+ }
361
+ );
362
+ }
363
+ getInstanceHistoricAggregate(prjId, instanceId, startTime, endTime, aggFunction, periode, params) {
364
+ return robotCloudApi_default.get(
365
+ `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`,
366
+ {
367
+ params: {
368
+ start_time: startTime,
369
+ end_time: endTime,
370
+ function: aggFunction,
371
+ periode,
372
+ ...params
373
+ }
374
+ }
375
+ );
376
+ }
377
+ };
378
+ var roomClimeClient = new RoomClimeClient();
379
+
380
+ // src/client/services/room-guest-status-1.ts
381
+ var RoomGuestStatusClient = class {
382
+ getAlerts(prjId, params) {
383
+ return robotCloudApi_default.get(
384
+ `/projects/${prjId}/services/RoomGuestStatus_1/alert`,
385
+ {
386
+ params,
387
+ headers: {
388
+ "Accept": "application/json"
389
+ }
390
+ }
391
+ );
392
+ }
393
+ getData(prjId, params) {
394
+ return robotCloudApi_default.get(
395
+ `/projects/${prjId}/services/RoomGuestStatus_1/data`,
396
+ {
397
+ params,
398
+ headers: {
399
+ "Accept": "application/json"
400
+ }
401
+ }
402
+ );
403
+ }
404
+ getInstanceConfiguration(prjId, instanceId) {
405
+ return robotCloudApi_default.get(
406
+ `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`
407
+ );
408
+ }
409
+ putInstanceConfiguration(prjId, instanceId, data) {
410
+ return robotCloudApi_default.put(
411
+ `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,
412
+ data
413
+ );
414
+ }
415
+ getInstanceHistoric(prjId, instanceId, startTime, endTime, params) {
416
+ return new Promise((resolve, reject) => {
417
+ fetch("./historic-guest-status-data-sample.json").then((response) => response.json()).then(
418
+ (json) => resolve({
419
+ data: json
420
+ })
421
+ );
422
+ });
423
+ }
424
+ getInstanceHistoricAggregate(prjId, instanceId, startTime, endTime, aggFunction, periode, params) {
425
+ return robotCloudApi_default.get(
426
+ `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`,
427
+ {
428
+ params: {
429
+ start_time: startTime,
430
+ end_time: endTime,
431
+ function: aggFunction,
432
+ periode,
433
+ ...params
434
+ }
435
+ }
436
+ );
437
+ }
438
+ };
439
+ var roomGuestStatusClient = new RoomGuestStatusClient();
440
+
441
+ // src/client/services/air-quality-1.ts
442
+ var AirQualityClient = class {
443
+ getAlerts(prjId, params) {
444
+ return robotCloudApi_default.get(
445
+ `/projects/${prjId}/services/AirQuality_1/alert`,
446
+ {
447
+ params,
448
+ headers: {
449
+ "Accept": "application/json"
450
+ }
451
+ }
452
+ );
453
+ }
454
+ getData(prjId, params) {
455
+ return robotCloudApi_default.get(
456
+ `/projects/${prjId}/services/AirQuality_1/data`,
457
+ {
458
+ params,
459
+ headers: {
460
+ "Accept": "application/json"
461
+ }
462
+ }
463
+ );
464
+ }
465
+ getInstanceConfiguration(prjId, instanceId) {
466
+ throw Error("Not implemented method");
467
+ }
468
+ putInstanceConfiguration(prjId, instanceId, data) {
469
+ throw Error("Not implemented method");
470
+ }
471
+ getInstanceHistoric(prjId, instanceId, startTime, endTime, params) {
472
+ return robotCloudApi_default.get(
473
+ `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,
474
+ {
475
+ params: {
476
+ start_time: startTime,
477
+ end_time: endTime,
478
+ ...params
479
+ }
480
+ }
481
+ );
482
+ }
483
+ getInstanceHistoricAggregate(prjId, instanceId, startTime, endTime, aggFunction, periode, params) {
484
+ throw Error("Not implemented method");
485
+ }
486
+ };
487
+ var airQualityClient = new AirQualityClient();
488
+
489
+ // src/client/services/room-consumes-1.ts
490
+ var RoomConsumesClient = class {
491
+ constructor() {
492
+ this.getInstanceData = (prjId, instanceId, params) => {
493
+ return robotCloudApi_default.get(
494
+ `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,
495
+ {
496
+ params,
497
+ headers: {
498
+ "Accept": "application/json"
499
+ }
500
+ }
501
+ );
502
+ };
503
+ }
504
+ getAlerts(prjId, params) {
505
+ return robotCloudApi_default.get(
506
+ `/projects/${prjId}/services/RoomConsumes_1/alert`,
507
+ {
508
+ params,
509
+ headers: {
510
+ "Accept": "application/json"
511
+ }
512
+ }
513
+ );
514
+ }
515
+ getData(prjId, params) {
516
+ return robotCloudApi_default.get(
517
+ `/projects/${prjId}/services/RoomConsumes_1/data`,
518
+ {
519
+ params,
520
+ headers: {
521
+ "Accept": "application/json"
522
+ }
523
+ }
524
+ );
525
+ }
526
+ getInstanceConfiguration(prjId, instanceId) {
527
+ throw Error("Not implemented method");
528
+ }
529
+ putInstanceConfiguration(prjId, instanceId, data) {
530
+ throw Error("Not implemented method");
531
+ }
532
+ getInstanceHistoric(prjId, instanceId, startTime, endTime, params) {
533
+ return robotCloudApi_default.get(
534
+ `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`,
535
+ {
536
+ params: {
537
+ start_time: startTime,
538
+ end_time: endTime,
539
+ ...params
540
+ }
541
+ }
542
+ );
543
+ }
544
+ getInstanceHistoricAggregate(prjId, instanceId, startTime, endTime, aggFunction, periode, params) {
545
+ throw Error("Not implemented method");
546
+ }
547
+ };
548
+ var roomConsumesClient = new RoomConsumesClient();
549
+ // Annotate the CommonJS export names for ESM import in node:
550
+ 0 && (module.exports = {
551
+ airQualityClient,
552
+ robotCloudToken,
553
+ robotcloudApi,
554
+ robotcloudClient,
555
+ roomClimeClient,
556
+ roomConsumesClient,
557
+ roomGuestStatusClient,
558
+ setCheckTokenFunction
559
+ });
560
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/robotCloudApi.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/config.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts"],"sourcesContent":["import { setCheckTokenFunction } from \"robotCloudApi\"\nimport robotcloudApi from \"robotCloudApi\"\n\nexport * as robotcloudClient from \"robotCloudClient\"\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\n\nexport {\n robotcloudApi,\n setCheckTokenFunction,\n}\n\nexport type * from \"../types/ProjectClassifer\"\nexport type * from \"../types/ProjectTag\"\nexport type * from \"../types/RobotCloudClient\"\nexport type * from \"../types/services\"\nexport type * from \"../types/ServiceInstance\"\nexport type * from \"../types/ServiceInstanceRead\"\nexport type * from \"../types/Token\"","import axios from \"axios\"\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n }\n\n \nlet checkToken = async (): Promise<string> => { return ''}\n\n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport const setCheckTokenFunction = (fun: () => Promise<string>) => {\n checkToken = fun\n}\n\nexport default robotcloudApi;\n","import { 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 { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig, ServiceInstanceDataRequestParams, \n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES 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\nexport const getRoomConsumesInstanceServiceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport { RobotCloudClientConfig } from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\nconst MINUTES_BEFORE_EXPIRATION_RENEW = RobotCloudClientConfig.tokenMinutesBeforeExpirationRenew;\n\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - MINUTES_BEFORE_EXPIRATION_RENEW\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","export class RobotCloudClientConfig {\n static tokenMinutesBeforeExpirationRenew: number = 20;\n}\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue, RoomClime1EventValue, RoomClimeInstanceConfigParams \n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1EventValue, \n RoomClimeInstanceConfigParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> {\n return robotcloudApi.get<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeInstanceConfigParams\n ): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> {\n return robotcloudApi.put<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n RoomGuestStatus1EventValue,\n RoomGuestStatusInstanceConfigParams,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1EventValue, \n RoomGuestStatusInstanceConfigParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> {\n return robotcloudApi.get<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusInstanceConfigParams\n ): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> {\n return robotcloudApi.put<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n // return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n // `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n // params: {\n // start_time: startTime,\n // end_time: endTime,\n // ...params\n // }\n // }\n // )\n return new Promise((resolve, reject) => {\n fetch('./historic-guest-status-data-sample.json')\n .then((response) => response.json())\n .then((json) => resolve({\n data: json\n } as AxiosResponse)\n );\n })\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()"],"mappings":"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","names":["axios","checkToken","logger","i","import_axios","logger","axios"]}