kuzzle-device-manager 2.8.0-dev.1 → 2.8.0-dev.10

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.
Files changed (63) hide show
  1. package/dist/lib/modules/asset/AssetModule.d.ts +1 -0
  2. package/dist/lib/modules/asset/AssetModule.js +3 -1
  3. package/dist/lib/modules/asset/AssetModule.js.map +1 -1
  4. package/dist/lib/modules/asset/AssetService.d.ts +9 -1
  5. package/dist/lib/modules/asset/AssetService.js +142 -81
  6. package/dist/lib/modules/asset/AssetService.js.map +1 -1
  7. package/dist/lib/modules/asset/AssetsController.d.ts +7 -1
  8. package/dist/lib/modules/asset/AssetsController.js +26 -0
  9. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  10. package/dist/lib/modules/asset/AssetsGroupsController.d.ts +3 -1
  11. package/dist/lib/modules/asset/AssetsGroupsController.js +51 -112
  12. package/dist/lib/modules/asset/AssetsGroupsController.js.map +1 -1
  13. package/dist/lib/modules/asset/AssetsGroupsService.d.ts +47 -0
  14. package/dist/lib/modules/asset/AssetsGroupsService.js +165 -0
  15. package/dist/lib/modules/asset/AssetsGroupsService.js.map +1 -0
  16. package/dist/lib/modules/asset/collections/assetsGroupsMapping.js +6 -1
  17. package/dist/lib/modules/asset/collections/assetsGroupsMapping.js.map +1 -1
  18. package/dist/lib/modules/asset/collections/assetsMappings.js +27 -0
  19. package/dist/lib/modules/asset/collections/assetsMappings.js.map +1 -1
  20. package/dist/lib/modules/asset/roles/RoleAssetsGroupsAdmin.js +6 -0
  21. package/dist/lib/modules/asset/roles/RoleAssetsGroupsAdmin.js.map +1 -1
  22. package/dist/lib/modules/asset/roles/RoleAssetsGroupsReader.js +6 -0
  23. package/dist/lib/modules/asset/roles/RoleAssetsGroupsReader.js.map +1 -1
  24. package/dist/lib/modules/asset/types/AssetApi.d.ts +5 -1
  25. package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +5 -3
  26. package/dist/lib/modules/device/DeviceService.d.ts +18 -1
  27. package/dist/lib/modules/device/DeviceService.js +152 -131
  28. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  29. package/dist/lib/modules/measure/MeasureService.d.ts +4 -0
  30. package/dist/lib/modules/measure/MeasureService.js +77 -38
  31. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  32. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +4 -0
  33. package/dist/lib/modules/model/ModelSerializer.js +6 -0
  34. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  35. package/dist/lib/modules/model/ModelService.d.ts +15 -4
  36. package/dist/lib/modules/model/ModelService.js +101 -4
  37. package/dist/lib/modules/model/ModelService.js.map +1 -1
  38. package/dist/lib/modules/model/ModelsConflicts.d.ts +9 -1
  39. package/dist/lib/modules/model/ModelsConflicts.js +15 -1
  40. package/dist/lib/modules/model/ModelsConflicts.js.map +1 -1
  41. package/dist/lib/modules/model/ModelsController.d.ts +6 -1
  42. package/dist/lib/modules/model/ModelsController.js +58 -3
  43. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  44. package/dist/lib/modules/model/ModelsRegister.d.ts +18 -2
  45. package/dist/lib/modules/model/ModelsRegister.js +35 -2
  46. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  47. package/dist/lib/modules/model/collections/modelsMappings.js +36 -0
  48. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  49. package/dist/lib/modules/model/types/ModelApi.d.ts +49 -1
  50. package/dist/lib/modules/model/types/ModelContent.d.ts +131 -1
  51. package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
  52. package/dist/lib/modules/model/types/ModelDefinition.d.ts +106 -2
  53. package/dist/lib/modules/model/types/ModelEvents.d.ts +8 -1
  54. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +12 -2
  55. package/dist/lib/modules/plugin/DeviceManagerEngine.js +30 -2
  56. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  57. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +54 -1
  58. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +58 -1
  59. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  60. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +7 -0
  61. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +4 -0
  62. package/dist/lib/modules/shared/types/Models.d.ts +2 -1
  63. package/package.json +2 -2
@@ -5,6 +5,9 @@ export interface MeasureModelContent extends KDocumentContent {
5
5
  type: "measure";
6
6
  measure: MeasureDefinition & {
7
7
  type: string;
8
+ locales?: {
9
+ [valueName: string]: LocaleDetails;
10
+ };
8
11
  };
9
12
  }
10
13
  export interface MetadataProperty {
@@ -265,6 +268,9 @@ export interface AssetModelContent extends KDocumentContent {
265
268
  * ]
266
269
  */
267
270
  tooltipModels?: TooltipModels;
271
+ locales?: {
272
+ [locale: string]: LocaleDetails;
273
+ };
268
274
  };
269
275
  }
270
276
  export interface DeviceModelContent extends KDocumentContent {
@@ -356,4 +362,128 @@ export interface DeviceModelContent extends KDocumentContent {
356
362
  measures: NamedMeasures;
357
363
  };
358
364
  }
359
- export type ModelContent = MeasureModelContent | AssetModelContent | DeviceModelContent;
365
+ export interface GroupModelContent extends KDocumentContent {
366
+ type: "group";
367
+ engineGroup: string;
368
+ group: {
369
+ /**
370
+ * Name of the model
371
+ */
372
+ model: string;
373
+ /**
374
+ * Metadata mappings.
375
+ *
376
+ * @example
377
+ * {
378
+ * "company": {
379
+ * "properties": {
380
+ * "name": { "type": "keyword" },
381
+ * }
382
+ * }
383
+ * }
384
+ */
385
+ metadataMappings: MetadataMappings;
386
+ /**
387
+ * Default values for metadata.
388
+ *
389
+ * @example
390
+ * {
391
+ * "company.name": "Firebird"
392
+ * }
393
+ */
394
+ defaultMetadata: JSONObject;
395
+ /**
396
+ * Metadata details
397
+ * @example
398
+ * {
399
+ * "extTemp": {
400
+ * "group": "buildingEnv",
401
+ * "locales": {
402
+ * "en": {
403
+ * "friendlyName": "External temperature",
404
+ * "description": "Building external temperature"
405
+ * },
406
+ * "fr": {
407
+ * "friendlyName": "Température extérieure",
408
+ * "description": "Température à l'exterieur du bâtiment"
409
+ * },
410
+ * },
411
+ * "editorHint": {
412
+ * "readOnly": true,
413
+ * "type": EditorHintEnum.OPTION_SELECTOR,
414
+ * "values": ["red", "blue"],
415
+ * "customValueAllowed": true,
416
+ * },
417
+ * },
418
+ * }
419
+ */
420
+ metadataDetails?: MetadataDetails;
421
+ /**
422
+ * Metadata groups list
423
+ * @example
424
+ * {
425
+ * "buildingEnv": {
426
+ * "locales": {
427
+ * "en": {
428
+ * "groupFriendlyName": "Building environment",
429
+ * "description": "The building environment"
430
+ * },
431
+ * "fr": {
432
+ * "groupFriendlyName": "Environnement du bâtiment",
433
+ * "description": "L'environnement du bâtiment"
434
+ * }
435
+ * }
436
+ * }
437
+ * }
438
+ */
439
+ metadataGroups?: MetadataGroups;
440
+ /**
441
+ * List of tooltip models for this asset model
442
+ *
443
+ * @example
444
+ * [
445
+ * "defaultTooltipKey": {
446
+ * "tooltipLabel": "Default tooltip model",
447
+ * "content": [
448
+ * {
449
+ * "metadataPath": "geolocation",
450
+ * "label": {
451
+ * "locales": {
452
+ * "en": {
453
+ * "description": "",
454
+ * "friendlyName": "Container position"
455
+ * },
456
+ * "fr": {
457
+ * "description": "",
458
+ * "friendlyName": "Position du conteneur"
459
+ * }
460
+ * }
461
+ * },
462
+ * "category": "metadata"
463
+ * },
464
+ * {
465
+ * "measureValuePath": "externalTemperature",
466
+ * "measureSlot": "externalTemperature",
467
+ * "label": {
468
+ * "locales": {
469
+ * "en": {
470
+ * "description": "",
471
+ * "friendlyName": "External temperature"
472
+ * },
473
+ * "fr": {
474
+ * "description": "",
475
+ * "friendlyName": "Température extérieure"
476
+ * }
477
+ * }
478
+ * },
479
+ * "category": "measure",
480
+ * "suffix": "°C"
481
+ * }
482
+ * ]
483
+ * }
484
+ * ]
485
+ */
486
+ tooltipModels?: TooltipModels;
487
+ };
488
+ }
489
+ export type ModelContent = MeasureModelContent | AssetModelContent | DeviceModelContent | GroupModelContent;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelContent.js","sourceRoot":"","sources":["../../../../../lib/modules/model/types/ModelContent.ts"],"names":[],"mappings":";;;AAyCA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,oDAAkC,CAAA;IAClC,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAgGD,IAAY,wBAMX;AAND,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,2CAAe,CAAA;IACf,yCAAa,CAAA;IACb,2CAAe,CAAA;IACf,mDAAuB,CAAA;AACzB,CAAC,EANW,wBAAwB,wCAAxB,wBAAwB,QAMnC"}
1
+ {"version":3,"file":"ModelContent.js","sourceRoot":"","sources":["../../../../../lib/modules/model/types/ModelContent.ts"],"names":[],"mappings":";;;AA0CA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,oDAAkC,CAAA;IAClC,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAgGD,IAAY,wBAMX;AAND,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,2CAAe,CAAA;IACf,yCAAa,CAAA;IACb,2CAAe,CAAA;IACf,mDAAuB,CAAA;AACzB,CAAC,EANW,wBAAwB,wCAAxB,wBAAwB,QAMnC"}
@@ -1,6 +1,6 @@
1
1
  import { JSONObject } from "kuzzle-sdk";
2
2
  import { Decoder, NamedMeasures } from "../../../modules/decoder";
3
- import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
3
+ import { LocaleDetails, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
4
4
  /**
5
5
  * Define an asset model
6
6
  *
@@ -94,7 +94,17 @@ import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from
94
94
  * }
95
95
  * ]
96
96
  * }
97
- * }
97
+ * },
98
+ * locales: {
99
+ * en: {
100
+ * friendlyName: 'Container (translation by model)',
101
+ * description: 'Containerized container',
102
+ * },
103
+ * fr: {
104
+ * friendlyName: 'Conteneur (traduit par model)',
105
+ * description: 'Conteneur conteneurisé',
106
+ * },
107
+ * },
98
108
  * }
99
109
  *
100
110
  */
@@ -123,6 +133,9 @@ export type AssetModelDefinition = {
123
133
  * Tooltip models
124
134
  */
125
135
  tooltipModels?: TooltipModels;
136
+ locales?: {
137
+ [valueName: string]: LocaleDetails;
138
+ };
126
139
  };
127
140
  /**
128
141
  * Define a device model
@@ -196,3 +209,94 @@ export type DeviceModelDefinition = {
196
209
  */
197
210
  metadataGroups?: MetadataGroups;
198
211
  };
212
+ /**
213
+ * Define a group model
214
+ *
215
+ * @example
216
+ * {
217
+ * metadataMappings: {
218
+ * position: { type: "geo_point" },
219
+ * },
220
+ * defaultMetadata: {
221
+ * position: {
222
+ * lat: 41.12,
223
+ * lon: -71.34
224
+ * }
225
+ * },
226
+ * metadataDetails: {
227
+ * "position": {
228
+ * "group": "geolocation",
229
+ * "locales": {
230
+ * "en": {
231
+ * "friendlyName": "Parking position",
232
+ * "description": "The coordinates of the parking"
233
+ * },
234
+ * "fr": {
235
+ * "friendlyName": "Position du parking",
236
+ * "description": "Les coordonnées GPS du parking"
237
+ * }
238
+ * },
239
+ * },
240
+ * },
241
+ * metadataGroups: {
242
+ * geolocation: {
243
+ * locales: {
244
+ * en: {
245
+ * groupFriendlyName: "Parking geolocation",
246
+ * description: "The parking geolocation"
247
+ * },
248
+ * fr: {
249
+ * groupFriendlyName: "Localisation du parking",
250
+ * description: "La localisation du parking"
251
+ * }
252
+ * }
253
+ * }
254
+ * },
255
+ * tooltipModels: {
256
+ * "defaultTooltipKey": {
257
+ * "tooltipLabel": "Default Tooltip Model",
258
+ * "content": [
259
+ * {
260
+ * "category": "metadata",
261
+ * "label": {
262
+ * "locales": {
263
+ * "en": {
264
+ * "friendlyName": "Parking position",
265
+ * "description": ""
266
+ * },
267
+ * "fr": {
268
+ * "friendlyName": "Position du parking",
269
+ * "description": ""
270
+ * }
271
+ * }
272
+ * },
273
+ * "metadataPath": "position"
274
+ * },
275
+ * ]
276
+ * }
277
+ * }
278
+ * }
279
+ *
280
+ */
281
+ export type GroupModelDefinition = {
282
+ /**
283
+ * Metadata mappings definition
284
+ */
285
+ metadataMappings?: MetadataMappings;
286
+ /**
287
+ * Default metadata values
288
+ */
289
+ defaultMetadata?: JSONObject;
290
+ /**
291
+ * Metadata details including tanslations and group.
292
+ */
293
+ metadataDetails?: MetadataDetails;
294
+ /**
295
+ * Metadata groups
296
+ */
297
+ metadataGroups?: MetadataGroups;
298
+ /**
299
+ * Tooltip models
300
+ */
301
+ tooltipModels?: TooltipModels;
302
+ };
@@ -1,4 +1,4 @@
1
- import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./ModelContent";
1
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent } from "./ModelContent";
2
2
  export type AskModelAssetGet = {
3
3
  name: "ask:device-manager:model:asset:get";
4
4
  payload: {
@@ -21,3 +21,10 @@ export type AskModelMeasureGet = {
21
21
  };
22
22
  result: MeasureModelContent;
23
23
  };
24
+ export type AskModelGroupGet = {
25
+ name: "ask:device-manager:model:group:get";
26
+ payload: {
27
+ model: string;
28
+ };
29
+ result: GroupModelContent;
30
+ };
@@ -1,6 +1,6 @@
1
1
  import { Backend, KDocumentContent, Plugin } from "kuzzle";
2
2
  import { AbstractEngine, ConfigManager, EngineContent } from "kuzzle-plugin-commons";
3
- import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "../model";
3
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent } from "../model";
4
4
  import { DeviceManagerPlugin } from "./DeviceManagerPlugin";
5
5
  import { DeviceManagerConfiguration } from "./types/DeviceManagerConfiguration";
6
6
  import { InternalCollection } from "./types/InternalCollection";
@@ -18,7 +18,7 @@ export interface EngineDocument extends KDocumentContent {
18
18
  export type AskEngineList = {
19
19
  name: "ask:device-manager:engine:list";
20
20
  payload: {
21
- group: string | null;
21
+ group?: string;
22
22
  };
23
23
  result: EngineContent[];
24
24
  };
@@ -35,6 +35,7 @@ export type AskEngineUpdateConflict = {
35
35
  models: TwinModelContent[];
36
36
  };
37
37
  measuresModels?: MeasureModelContent[];
38
+ groupModels?: GroupModelContent[];
38
39
  };
39
40
  result: ConflictChunk[];
40
41
  };
@@ -54,6 +55,14 @@ export declare class DeviceManagerEngine extends AbstractEngine<DeviceManagerPlu
54
55
  * @returns An array of conflict chunk
55
56
  */
56
57
  private doesTwinUpdateConflicts;
58
+ /**
59
+ * Return conflicts between the new and already present group models
60
+ *
61
+ * @param groupModels The already present group models
62
+ * @param additionalGroups The new or updated group models
63
+ * @returns An array of ConflictChunk
64
+ */
65
+ private doesGroupsUpdateConflicts;
57
66
  /**
58
67
  * Return conflicts between the new and already present measure models
59
68
  *
@@ -166,6 +175,7 @@ export declare class DeviceManagerEngine extends AbstractEngine<DeviceManagerPlu
166
175
  * @returns The complete ES mappings produced by merging models mappings
167
176
  */
168
177
  private getMeasuresMappings;
178
+ getAssetGroupsMappingFromDB(): Promise<any>;
169
179
  /**
170
180
  * Retrieve a certain type of models associated to an engine
171
181
  *
@@ -30,7 +30,8 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
30
30
  return [];
31
31
  }
32
32
  if (payload.twin === undefined &&
33
- payload.measuresModels === undefined) {
33
+ payload.measuresModels === undefined &&
34
+ payload.groupModels === undefined) {
34
35
  return [];
35
36
  }
36
37
  const measureModels = await this.getModels(this.config.adminIndex, "measure");
@@ -49,6 +50,10 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
49
50
  if (payload.measuresModels) {
50
51
  return this.doesMeasuresUpdateConflicts(measureModels, payload.measuresModels);
51
52
  }
53
+ if (payload.groupModels) {
54
+ const groupModels = await this.getModels(this.config.adminIndex, "group");
55
+ return this.doesGroupsUpdateConflicts(groupModels, payload.groupModels);
56
+ }
52
57
  return [];
53
58
  });
54
59
  }
@@ -79,6 +84,20 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
79
84
  }
80
85
  return conflicts;
81
86
  }
87
+ /**
88
+ * Return conflicts between the new and already present group models
89
+ *
90
+ * @param groupModels The already present group models
91
+ * @param additionalGroups The new or updated group models
92
+ * @returns An array of ConflictChunk
93
+ */
94
+ async doesGroupsUpdateConflicts(groupModels, additionalGroups) {
95
+ const conflicts = [];
96
+ for (const model of additionalGroups) {
97
+ conflicts.push(...(0, ModelsConflicts_1.getGroupConflicts)(groupModels, model));
98
+ }
99
+ return conflicts;
100
+ }
82
101
  /**
83
102
  * Return conflicts between the new and already present measure models
84
103
  *
@@ -213,8 +232,9 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
213
232
  */
214
233
  async createAssetsGroupsCollection(engineId) {
215
234
  const settings = this.config.engineCollections.assetGroups.settings;
235
+ const mappings = await this.getAssetGroupsMappingFromDB();
216
236
  await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.ASSETS_GROUPS, {
217
- mappings: asset_1.assetGroupsMappings,
237
+ mappings,
218
238
  settings,
219
239
  });
220
240
  return InternalCollection_1.InternalCollection.ASSETS_GROUPS;
@@ -341,6 +361,14 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
341
361
  deviceMappings.properties.metadata.properties;
342
362
  return mappings;
343
363
  }
364
+ async getAssetGroupsMappingFromDB() {
365
+ const models = await this.getModels(this.config.adminIndex, "group");
366
+ const mappings = JSON.parse(JSON.stringify(this.config.engineCollections.assetGroups.mappings));
367
+ for (const model of models) {
368
+ lodash_1.default.merge(mappings.properties.metadata.properties, model.group.metadataMappings);
369
+ }
370
+ return mappings;
371
+ }
344
372
  /**
345
373
  * Retrieve a certain type of models associated to an engine
346
374
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManagerEngine.js","sourceRoot":"","sources":["../../../../lib/modules/plugin/DeviceManagerEngine.ts"],"names":[],"mappings":";;;;;;AAAA,mCAOgB;AAChB,iEAK+B;AAE/B,oDAAuB;AAEvB,oCAAsE;AAEtE,wCAA0E;AAS1E,mEAAgE;AAChE,8DAIkC;AAClC,6DAA+D;AA+C/D,MAAa,mBAAoB,SAAQ,sCAAmC;IAG1E,IAAI,GAAG;QACL,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,YACE,MAAc,EACd,kBAAiC,EACjC,mBAAkC;QAElC,KAAK,CACH,gBAAgB,EAChB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,IAAA,6BAAK,EAAgB,gCAAgC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACjB,CAAC;QAEF,IAAA,6BAAK,EACH,qCAAqC,EACrC,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC,CACF,CAAC;QAEF,IAAA,6BAAK,EACH,8CAA8C,EAC9C,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IACE,OAAO,CAAC,IAAI,KAAK,SAAS;gBAC1B,OAAO,CAAC,cAAc,KAAK,SAAS,EACpC,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CACxC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,SAAS,CACV,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,GAAG,YAAY,CAAC,CAAC;YAE5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CACrC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,KAAK,CACN,CAAC;oBAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAClD,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,UAAU,EACV,OAAO,CAAC,IAAI,CAAC,MAAM,EACnB,aAAa,CACd,CAAC;oBAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,OAAO,SAAS,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,2BAA2B,CACrC,aAAa,EACb,OAAO,CAAC,cAAc,CACvB,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,uBAAuB,CACnC,QAAkB,EAClB,UAA8B,EAC9B,gBAAoC,EACpC,aAAoC;QAEpC,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;iBACrD,QAAyB,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CACtC,CAAC;gBAEF,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,sBAAa,CACrB,wBAAwB,WAAW,iBAAiB;wBAClD,QAAQ;qBACT,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,CACpC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,kCAAgB,EAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,2BAA2B,CACvC,cAAqC,EACrC,kBAAyC;QAEzC,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,qCAAmB,EAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;QAEnE,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,uCAAkB,CAAC,MAAM,EACzB;YACE,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE;aAC1C;SACF,EACD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CACjC,CAAC;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,IAAI,CAAC,UAAU,EACf,SAAS,CACV,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7C,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,IAAA,8BAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBAC3D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAChB,kCAAkC,OAAO,CAAC,IAAI,+FAA+F,CAC9I,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAEhE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;QAExD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO;YACL,WAAW,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAEhE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;QAExD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,MAAM,WAAW,GAAG;YAClB,uCAAkB,CAAC,MAAM;YACzB,uCAAkB,CAAC,cAAc;YACjC,uCAAkB,CAAC,aAAa;YAChC,uCAAkB,CAAC,OAAO;YAC1B,uCAAkB,CAAC,QAAQ;SAC5B,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACnC,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO;YACL,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,QAAgB,EAAE,WAAmB;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,CACtD,OAAO,EACP,WAAW,CACZ,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAE9D,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,uCAAkB,CAAC,MAAM,EAAE;YAClE,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,uCAAkB,CAAC,MAAM,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,6BAA6B,CAAC,QAAgB,EAAE,WAAmB;QACvE,MAAM,cAAc,GAClB,MAAM,IAAI,CAAC,4BAA4B,CACrC,OAAO,EACP,WAAW,CACZ,CAAC;QAEJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,6BAAqB,CAAC,CAAC,CAAC;QAEnE,gBAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC;QAErE,MAAM,IAAI,CAAC,mBAAmB,CAC5B,QAAQ,EACR,uCAAkB,CAAC,cAAc,EACjC;YACE,QAAQ;YACR,QAAQ;SACT,CACF,CAAC;QAEF,OAAO,uCAAkB,CAAC,cAAc,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,4BAA4B,CAAC,QAAgB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC;QAEpE,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,uCAAkB,CAAC,aAAa,EAAE;YACzE,QAAQ,EAAE,2BAAmB;YAC7B,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,uCAAkB,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QAC5C,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,4BAA4B,CAAqB,QAAQ,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAE/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,uCAAkB,CAAC,OAAO,EAAE;YACnE,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,uCAAkB,CAAC,OAAO,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,WAAmB;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEjE,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,uCAAkB,CAAC,QAAQ,EAAE;YACpE,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,uCAAkB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,mBAAmB,CAC/B,WAAmB,EACnB,UAAkB,EAClB,OAKK;QAEL,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAa,CACrB,oCAAoC,UAAU,iBAAiB,WAAW,MAAM,KAAK,CAAC,OAAO,EAAE,EAC/F,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,4BAA4B,CAExC,eAAyB,EAAE,WAAoB;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,eAAe,EACf,WAAW,CACZ,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CACxC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,SAAS,CACV,CAAC;QAEF,OAAO,IAAI,CAAC,sBAAsB,CAChC,eAAe,EACf,MAAM,EACN,aAAa,CACd,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,sBAAsB,CAClC,eAAyB,EACzB,MAAsB,EACtB,aAAoC;QAEpC,IACE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,SAAS;YAC5D,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,QAAQ,KAAK,SAAS,EACrE,CAAC;YACD,MAAM,IAAI,sBAAa,CAAC,4BAA4B,eAAe,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CACxE,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,gBAAC,CAAC,KAAK,CACL,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EACvC,KAAK,CAAC,eAAe,CAAC,CAAC,gBAAgB,CACxC,CAAC;YAEF,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,KAAK,CAC1D,eAAe,CAChB,CAAC,QAAyB,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CACtC,CAAC;gBAEF,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,sBAAa,CACrB,wBAAwB,WAAW,iBAAiB;wBAClD,eAAe;qBAChB,KAAK,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,GAAG,CACtC,CAAC;gBACJ,CAAC;gBAED,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;oBAClD,IAAA,oCAA0B,EAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,yBAAyB,CAAC,WAAmB;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,SAAS,CACV,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAC5D,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,mBAAmB,CAC/B,MAA6B,EAC7B,cAAmB,EACnB,cAAmB;QAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,0BAAgB,CAAC,CAAC,CAAC;QAE9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,gBAAC,CAAC,KAAK,CACL,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EACrC,KAAK,CAAC,OAAO,CAAC,cAAc,CAC7B,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU;YACtD,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAEhD,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU;YAC7D,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,SAAS,CACrB,QAAgB,EAChB,IAAY,EACZ,WAAoB;QAEpB,MAAM,KAAK,GAAe;YACxB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;SAC5B,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE;oBACF,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE;oBAC3B,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;iBACvC;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,QAAQ,EACR,uCAAkB,CAAC,MAAM,EACzB,EAAE,KAAK,EAAE,EACT,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CACjC,CAAC;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,2BAA2B,CAAC,QAAgB;QACxD,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CACzC,IAAI,CAAC,UAAU,EACf,SAAS,EACT;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;SAClD,EACD;YACE,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,GAAG;SACV,CACF,CAAC;QACF,OAAO,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAC5B,IAAI,CAAC,UAAU,EACf,SAAS,EACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACrB,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;YACtE,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAlmBD,kDAkmBC"}
1
+ {"version":3,"file":"DeviceManagerEngine.js","sourceRoot":"","sources":["../../../../lib/modules/plugin/DeviceManagerEngine.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Plugin, PluginContext } from "kuzzle";
2
2
  import { JSONObject } from "kuzzle-sdk";
3
3
  import { MeasureDefinition } from "../measure";
4
- import { AssetModelDefinition, DeviceModelDefinition } from "../model";
4
+ import { AssetModelDefinition, DeviceModelDefinition, GroupModelDefinition } from "../model";
5
5
  import { DeviceManagerConfiguration } from "./types/DeviceManagerConfiguration";
6
6
  export declare class DeviceManagerPlugin extends Plugin {
7
7
  config: DeviceManagerConfiguration;
@@ -177,6 +177,59 @@ export declare class DeviceManagerPlugin extends Plugin {
177
177
  * ```
178
178
  */
179
179
  registerDevice: (model: string, definition: DeviceModelDefinition) => void;
180
+ /**
181
+ * Register a group.
182
+ *
183
+ * @param model Name of the group model
184
+ * @param definition Object containing the group model definition, including:
185
+ * - metadataMappings: Metadata mappings definition
186
+ * - defaultMetadata: Default metadata values
187
+ * - metadataDetails: Localizations, detailed metadata descriptions and definition
188
+ * - metadataGroups: Groups for organizing metadata, with localizations
189
+ *
190
+ * @example
191
+ * ```
192
+ * deviceManager.models.registerGroup(
193
+ * "Parking",
194
+ * {
195
+ * metadataMappings: {
196
+ * geolocation: { type: "geo_point" },
197
+ * },
198
+ * defaultMetadata: {
199
+ *
200
+ * },
201
+ * metadataDetails: {
202
+ * geolocation: {
203
+ * group: "access",
204
+ * locales: {
205
+ * en: {
206
+ * friendlyName: "Parking location",
207
+ * description: "GPS position of the parking"
208
+ * },
209
+ * fr: {
210
+ * friendlyName: "Emplacement du parking",
211
+ * description: "Position GPS du parking"
212
+ * }
213
+ * }
214
+ * }
215
+ * },
216
+ * metadataGroups: {
217
+ * access: {
218
+ * locales: {
219
+ * en: {
220
+ * groupFriendlyName: "Parking access info"
221
+ * },
222
+ * fr: {
223
+ * groupFriendlyName: "Information d'accès au parking"
224
+ * }
225
+ * }
226
+ * }
227
+ * }
228
+ * }
229
+ * );
230
+ * ```
231
+ */
232
+ registerGroup: (engineGroup: string, model: string, definition: GroupModelDefinition) => void;
180
233
  /**
181
234
  * Register a new measure
182
235
  *
@@ -126,7 +126,7 @@ class DeviceManagerPlugin extends kuzzle_1.Plugin {
126
126
  * ```
127
127
  */
128
128
  registerAsset: (engineGroup, model, definition) => {
129
- this.modelsRegister.registerAsset(engineGroup, model, definition.measures, definition.metadataMappings, definition.defaultMetadata, definition.metadataDetails, definition.metadataGroups, definition.tooltipModels);
129
+ this.modelsRegister.registerAsset(engineGroup, model, definition.measures, definition.metadataMappings, definition.defaultMetadata, definition.metadataDetails, definition.metadataGroups, definition.tooltipModels, definition.locales);
130
130
  },
131
131
  /**
132
132
  * Register a device.
@@ -187,6 +187,61 @@ class DeviceManagerPlugin extends kuzzle_1.Plugin {
187
187
  definition.decoder.log = this.context?.log;
188
188
  this.modelsRegister.registerDevice(model, definition.decoder.measures, definition.metadataMappings, definition.defaultMetadata, definition.metadataDetails, definition.metadataGroups);
189
189
  },
190
+ /**
191
+ * Register a group.
192
+ *
193
+ * @param model Name of the group model
194
+ * @param definition Object containing the group model definition, including:
195
+ * - metadataMappings: Metadata mappings definition
196
+ * - defaultMetadata: Default metadata values
197
+ * - metadataDetails: Localizations, detailed metadata descriptions and definition
198
+ * - metadataGroups: Groups for organizing metadata, with localizations
199
+ *
200
+ * @example
201
+ * ```
202
+ * deviceManager.models.registerGroup(
203
+ * "Parking",
204
+ * {
205
+ * metadataMappings: {
206
+ * geolocation: { type: "geo_point" },
207
+ * },
208
+ * defaultMetadata: {
209
+ *
210
+ * },
211
+ * metadataDetails: {
212
+ * geolocation: {
213
+ * group: "access",
214
+ * locales: {
215
+ * en: {
216
+ * friendlyName: "Parking location",
217
+ * description: "GPS position of the parking"
218
+ * },
219
+ * fr: {
220
+ * friendlyName: "Emplacement du parking",
221
+ * description: "Position GPS du parking"
222
+ * }
223
+ * }
224
+ * }
225
+ * },
226
+ * metadataGroups: {
227
+ * access: {
228
+ * locales: {
229
+ * en: {
230
+ * groupFriendlyName: "Parking access info"
231
+ * },
232
+ * fr: {
233
+ * groupFriendlyName: "Information d'accès au parking"
234
+ * }
235
+ * }
236
+ * }
237
+ * }
238
+ * }
239
+ * );
240
+ * ```
241
+ */
242
+ registerGroup: (engineGroup, model, definition) => {
243
+ this.modelsRegister.registerGroup(engineGroup, model, definition.metadataMappings, definition.defaultMetadata, definition.metadataDetails, definition.metadataGroups);
244
+ },
190
245
  /**
191
246
  * Register a new measure
192
247
  *
@@ -227,6 +282,7 @@ class DeviceManagerPlugin extends kuzzle_1.Plugin {
227
282
  };
228
283
  this.config = {
229
284
  ignoreStartupErrors: false,
285
+ assetsHistorizesMeasures: false,
230
286
  engine: {
231
287
  autoUpdate: true,
232
288
  },
@@ -262,6 +318,7 @@ class DeviceManagerPlugin extends kuzzle_1.Plugin {
262
318
  },
263
319
  assetGroups: {
264
320
  name: InternalCollection_1.InternalCollection.ASSETS_GROUPS,
321
+ mappings: asset_1.assetGroupsMappings,
265
322
  },
266
323
  assetHistory: {
267
324
  name: InternalCollection_1.InternalCollection.ASSETS_HISTORY,