kuzzle-device-manager 2.4.0-beta.2 → 2.4.0-beta.21

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 (175) hide show
  1. package/dist/lib/modules/asset/AssetHistoryService.d.ts +2 -4
  2. package/dist/lib/modules/asset/AssetHistoryService.js +4 -7
  3. package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
  4. package/dist/lib/modules/asset/AssetModule.js +30 -0
  5. package/dist/lib/modules/asset/AssetModule.js.map +1 -1
  6. package/dist/lib/modules/asset/AssetService.d.ts +25 -26
  7. package/dist/lib/modules/asset/AssetService.js +236 -43
  8. package/dist/lib/modules/asset/AssetService.js.map +1 -1
  9. package/dist/lib/modules/asset/AssetsController.d.ts +8 -1
  10. package/dist/lib/modules/asset/AssetsController.js +152 -25
  11. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  12. package/dist/lib/modules/asset/AssetsGroupsController.js +1 -1
  13. package/dist/lib/modules/asset/AssetsGroupsController.js.map +1 -1
  14. package/dist/lib/modules/asset/model/AssetSerializer.js +1 -0
  15. package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -1
  16. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +3 -0
  17. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
  18. package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +4 -0
  19. package/dist/lib/modules/asset/roles/RoleAssetsReader.js +8 -0
  20. package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -1
  21. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.d.ts +8 -0
  22. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.js +20 -0
  23. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.js.map +1 -0
  24. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.d.ts +8 -0
  25. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.js +24 -0
  26. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.js.map +1 -0
  27. package/dist/lib/modules/asset/roles/specificRoles/index.d.ts +2 -0
  28. package/dist/lib/modules/asset/roles/specificRoles/index.js +19 -0
  29. package/dist/lib/modules/asset/roles/specificRoles/index.js.map +1 -0
  30. package/dist/lib/modules/asset/types/AssetApi.d.ts +43 -2
  31. package/dist/lib/modules/asset/types/AssetContent.d.ts +1 -1
  32. package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -1
  33. package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
  34. package/dist/lib/modules/decoder/Decoder.js +1 -0
  35. package/dist/lib/modules/decoder/Decoder.js.map +1 -1
  36. package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -1
  37. package/dist/lib/modules/decoder/DecodingState.js +1 -1
  38. package/dist/lib/modules/decoder/DecodingState.js.map +1 -1
  39. package/dist/lib/modules/decoder/PayloadService.d.ts +3 -6
  40. package/dist/lib/modules/decoder/PayloadService.js +11 -17
  41. package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
  42. package/dist/lib/modules/decoder/PayloadsController.js.map +1 -1
  43. package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
  44. package/dist/lib/modules/device/DeviceModule.js +30 -0
  45. package/dist/lib/modules/device/DeviceModule.js.map +1 -1
  46. package/dist/lib/modules/device/DeviceService.d.ts +31 -46
  47. package/dist/lib/modules/device/DeviceService.js +177 -73
  48. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  49. package/dist/lib/modules/device/DevicesController.d.ts +7 -1
  50. package/dist/lib/modules/device/DevicesController.js +142 -41
  51. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  52. package/dist/lib/modules/device/collections/deviceMappings.d.ts +2 -46
  53. package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
  54. package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +4 -0
  55. package/dist/lib/modules/device/roles/RoleDevicesReader.js +8 -0
  56. package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -1
  57. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.d.ts +8 -0
  58. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js +20 -0
  59. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js.map +1 -0
  60. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.d.ts +8 -0
  61. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.js +20 -0
  62. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.js.map +1 -0
  63. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.d.ts +8 -0
  64. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.js +24 -0
  65. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.js.map +1 -0
  66. package/dist/lib/modules/device/roles/specificRoles/index.d.ts +3 -0
  67. package/dist/lib/modules/device/roles/specificRoles/index.js +20 -0
  68. package/dist/lib/modules/device/roles/specificRoles/index.js.map +1 -0
  69. package/dist/lib/modules/device/types/DeviceApi.d.ts +23 -2
  70. package/dist/lib/modules/device/types/DeviceEvents.d.ts +29 -0
  71. package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -2
  72. package/dist/lib/modules/measure/MeasureExporter.js +35 -14
  73. package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
  74. package/dist/lib/modules/measure/MeasureService.d.ts +2 -6
  75. package/dist/lib/modules/measure/MeasureService.js +6 -11
  76. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  77. package/dist/lib/modules/measure/collections/measuresMappings.d.ts +18 -0
  78. package/dist/lib/modules/measure/collections/measuresMappings.js +14 -0
  79. package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
  80. package/dist/lib/modules/measure/measures/BatteryMeasure.js +12 -0
  81. package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +1 -1
  82. package/dist/lib/modules/measure/measures/HumidityMeasure.js +12 -0
  83. package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +1 -1
  84. package/dist/lib/modules/measure/measures/MovementMeasure.js +10 -0
  85. package/dist/lib/modules/measure/measures/MovementMeasure.js.map +1 -1
  86. package/dist/lib/modules/measure/measures/PositionMeasure.js +22 -0
  87. package/dist/lib/modules/measure/measures/PositionMeasure.js.map +1 -1
  88. package/dist/lib/modules/measure/measures/TemperatureMeasure.js +12 -0
  89. package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +1 -1
  90. package/dist/lib/modules/measure/types/MeasureContent.d.ts +4 -0
  91. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +28 -3
  92. package/dist/lib/modules/model/MappingsConflictsError.d.ts +7 -0
  93. package/dist/lib/modules/model/MappingsConflictsError.js +20 -0
  94. package/dist/lib/modules/model/MappingsConflictsError.js.map +1 -0
  95. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  96. package/dist/lib/modules/model/ModelService.d.ts +17 -9
  97. package/dist/lib/modules/model/ModelService.js +250 -42
  98. package/dist/lib/modules/model/ModelService.js.map +1 -1
  99. package/dist/lib/modules/model/ModelsConflicts.d.ts +30 -0
  100. package/dist/lib/modules/model/ModelsConflicts.js +107 -0
  101. package/dist/lib/modules/model/ModelsConflicts.js.map +1 -0
  102. package/dist/lib/modules/model/ModelsController.d.ts +5 -1
  103. package/dist/lib/modules/model/ModelsController.js +54 -3
  104. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  105. package/dist/lib/modules/model/ModelsRegister.d.ts +28 -3
  106. package/dist/lib/modules/model/ModelsRegister.js +50 -5
  107. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  108. package/dist/lib/modules/model/collections/modelsMappings.js +24 -0
  109. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  110. package/dist/lib/modules/model/types/ModelApi.d.ts +50 -4
  111. package/dist/lib/modules/model/types/ModelContent.d.ts +263 -2
  112. package/dist/lib/modules/model/types/ModelContent.js +15 -0
  113. package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
  114. package/dist/lib/modules/model/types/ModelDefinition.d.ts +141 -5
  115. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +141 -5
  116. package/dist/lib/modules/plugin/DeviceManagerEngine.js +238 -41
  117. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  118. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +113 -8
  119. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +149 -19
  120. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  121. package/dist/lib/modules/plugin/exports.d.ts +1 -1
  122. package/dist/lib/modules/plugin/exports.js +1 -1
  123. package/dist/lib/modules/plugin/exports.js.map +1 -1
  124. package/dist/lib/modules/plugin/index.d.ts +1 -2
  125. package/dist/lib/modules/plugin/index.js +1 -2
  126. package/dist/lib/modules/plugin/index.js.map +1 -1
  127. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +27 -5
  128. package/dist/lib/modules/plugin/types/InternalCollection.js +1 -1
  129. package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -1
  130. package/dist/lib/modules/plugin/types/Pipes.d.ts +17 -0
  131. package/dist/lib/modules/plugin/types/Pipes.js +3 -0
  132. package/dist/lib/modules/plugin/types/Pipes.js.map +1 -0
  133. package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
  134. package/dist/lib/modules/plugin/types/exports.js +18 -0
  135. package/dist/lib/modules/plugin/types/exports.js.map +1 -0
  136. package/dist/lib/modules/plugin/types/index.d.ts +3 -0
  137. package/dist/lib/modules/plugin/types/index.js +20 -0
  138. package/dist/lib/modules/plugin/types/index.js.map +1 -0
  139. package/dist/lib/modules/shared/exports.d.ts +2 -0
  140. package/dist/lib/modules/shared/exports.js +2 -0
  141. package/dist/lib/modules/shared/exports.js.map +1 -1
  142. package/dist/lib/modules/shared/index.d.ts +6 -4
  143. package/dist/lib/modules/shared/index.js +6 -4
  144. package/dist/lib/modules/shared/index.js.map +1 -1
  145. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +1 -0
  146. package/dist/lib/modules/shared/services/AbstractExporter.js +7 -1
  147. package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
  148. package/dist/lib/modules/shared/services/BaseService.d.ts +69 -0
  149. package/dist/lib/modules/shared/services/BaseService.js +157 -0
  150. package/dist/lib/modules/shared/services/BaseService.js.map +1 -0
  151. package/dist/lib/modules/shared/services/DigitalTwinExporter.js +9 -3
  152. package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
  153. package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +21 -0
  154. package/dist/lib/modules/shared/services/DigitalTwinService.js +162 -0
  155. package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -0
  156. package/dist/lib/modules/shared/services/index.d.ts +2 -0
  157. package/dist/lib/modules/shared/services/index.js +2 -0
  158. package/dist/lib/modules/shared/services/index.js.map +1 -1
  159. package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +34 -0
  160. package/dist/lib/modules/shared/types/DigitalTwinApi.js +3 -0
  161. package/dist/lib/modules/shared/types/DigitalTwinApi.js.map +1 -0
  162. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +2 -4
  163. package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +9 -0
  164. package/dist/lib/modules/shared/types/DigitalTwinEvents.js +3 -0
  165. package/dist/lib/modules/shared/types/DigitalTwinEvents.js.map +1 -0
  166. package/dist/lib/modules/shared/types/DigitalTwinMeasures.d.ts +5 -0
  167. package/dist/lib/modules/shared/types/DigitalTwinMeasures.js +3 -0
  168. package/dist/lib/modules/shared/types/DigitalTwinMeasures.js.map +1 -0
  169. package/dist/lib/modules/shared/utils/flattenObject.js.map +1 -1
  170. package/dist/lib/modules/shared/utils/lock.js.map +1 -1
  171. package/dist/lib/modules/shared/utils/objectDiff.js.map +1 -1
  172. package/package.json +26 -26
  173. package/dist/lib/modules/shared/utils/ask.d.ts +0 -8
  174. package/dist/lib/modules/shared/utils/ask.js +0 -12
  175. package/dist/lib/modules/shared/utils/ask.js.map +0 -1
@@ -1,25 +1,33 @@
1
- import { JSONObject, KDocument } from "kuzzle-sdk";
1
+ import { KuzzleRequest } from "kuzzle";
2
+ import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
2
3
  import { DeviceManagerPlugin } from "../plugin";
3
- import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./types/ModelContent";
4
- export declare class ModelService {
5
- private config;
6
- private context;
7
- private get sdk();
4
+ import { BaseService, SearchParams } from "../shared";
5
+ import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
6
+ import { MeasureValuesDetails } from "../measure";
7
+ export declare class ModelService extends BaseService {
8
8
  constructor(plugin: DeviceManagerPlugin);
9
9
  registerAskEvents(): void;
10
- writeAsset(engineGroup: string, model: string, metadataMappings: JSONObject, defaultMetadata: JSONObject, measures: AssetModelContent["asset"]["measures"]): Promise<KDocument<AssetModelContent>>;
10
+ private checkModelsConflicts;
11
+ writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels): Promise<KDocument<AssetModelContent>>;
11
12
  private checkDefaultValues;
12
- writeDevice(model: string, metadataMappings: JSONObject, defaultMetadata: JSONObject, measures: DeviceModelContent["device"]["measures"]): Promise<KDocument<DeviceModelContent>>;
13
- writeMeasure(type: string, valuesMappings: JSONObject): Promise<KDocument<MeasureModelContent>>;
13
+ writeDevice(model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: DeviceModelContent["device"]["measures"]): Promise<KDocument<DeviceModelContent>>;
14
+ writeMeasure(type: string, valuesMappings: JSONObject, valuesDetails?: MeasureValuesDetails): Promise<KDocument<MeasureModelContent>>;
14
15
  deleteAsset(_id: string): Promise<void>;
15
16
  deleteDevice(_id: string): Promise<void>;
16
17
  deleteMeasure(_id: string): Promise<void>;
17
18
  listAsset(engineGroup: string): Promise<KDocument<AssetModelContent>[]>;
18
19
  listDevices(): Promise<KDocument<DeviceModelContent>[]>;
19
20
  listMeasures(): Promise<KDocument<MeasureModelContent>[]>;
21
+ searchAssets(engineGroup: string, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<AssetModelContent>>>;
22
+ searchDevices(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<DeviceModelContent>>>;
23
+ searchMeasures(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<MeasureModelContent>>>;
20
24
  assetExists(model: string): Promise<boolean>;
21
25
  deviceExists(model: string): Promise<boolean>;
22
26
  getAsset(engineGroup: string, model: string): Promise<KDocument<AssetModelContent>>;
23
27
  getDevice(model: string): Promise<KDocument<DeviceModelContent>>;
24
28
  getMeasure(type: string): Promise<KDocument<MeasureModelContent>>;
29
+ /**
30
+ * Update an asset model
31
+ */
32
+ updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
25
33
  }
@@ -2,84 +2,186 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModelService = void 0;
4
4
  const kuzzle_1 = require("kuzzle");
5
+ const kuzzle_plugin_commons_1 = require("kuzzle-plugin-commons");
5
6
  const plugin_1 = require("../plugin");
6
- const ask_1 = require("../shared/utils/ask");
7
- const flattenObject_1 = require("../shared/utils/flattenObject");
7
+ const shared_1 = require("../shared");
8
8
  const ModelSerializer_1 = require("./ModelSerializer");
9
- class ModelService {
10
- get sdk() {
11
- return this.context.accessors.sdk;
12
- }
9
+ const MappingsConflictsError_1 = require("./MappingsConflictsError");
10
+ class ModelService extends shared_1.BaseService {
13
11
  constructor(plugin) {
14
- this.config = plugin.config;
15
- this.context = plugin.context;
12
+ super(plugin);
16
13
  this.registerAskEvents();
17
14
  }
18
15
  registerAskEvents() {
19
- (0, ask_1.onAsk)("ask:device-manager:model:asset:get", async ({ engineGroup, model }) => {
16
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:asset:get", async ({ engineGroup, model }) => {
20
17
  const assetModel = await this.getAsset(engineGroup, model);
21
18
  return assetModel._source;
22
19
  });
23
- (0, ask_1.onAsk)("ask:device-manager:model:device:get", async ({ model }) => {
20
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:device:get", async ({ model }) => {
24
21
  const deviceModel = await this.getDevice(model);
25
22
  return deviceModel._source;
26
23
  });
27
- (0, ask_1.onAsk)("ask:device-manager:model:measure:get", async ({ type }) => {
24
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:measure:get", async ({ type }) => {
28
25
  const measureModel = await this.getMeasure(type);
29
26
  return measureModel._source;
30
27
  });
28
+ const genericModelsHandler = async (documents, request) => {
29
+ const { index, collection } = request.input.args;
30
+ if (index === this.config.adminIndex && collection === "models") {
31
+ const models = documents.map((elt) => {
32
+ return elt._source;
33
+ });
34
+ await this.checkModelsConflicts(models);
35
+ }
36
+ return documents;
37
+ };
38
+ this.app.pipe.register("generic:document:beforeWrite", genericModelsHandler);
39
+ this.app.pipe.register("generic:document:beforeUpdate", genericModelsHandler);
40
+ this.app.hook.register("generic:document:afterUpdate", async (documents, request) => {
41
+ const { index, collection } = request.input.args;
42
+ if (index === this.config.adminIndex && collection === "models") {
43
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
44
+ }
45
+ });
46
+ }
47
+ async checkModelsConflicts(documents) {
48
+ const assets = documents.filter((elt) => {
49
+ return elt.type === "asset";
50
+ });
51
+ const devices = documents.filter((elt) => {
52
+ return elt.type === "device";
53
+ });
54
+ const measures = documents.filter((elt) => {
55
+ return elt.type === "measure";
56
+ });
57
+ if (assets.length > 0) {
58
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", {
59
+ twin: {
60
+ models: assets,
61
+ type: "asset",
62
+ },
63
+ });
64
+ if (conflicts.length > 0) {
65
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
66
+ }
67
+ }
68
+ if (devices.length > 0) {
69
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", {
70
+ twin: {
71
+ models: devices,
72
+ type: "device",
73
+ },
74
+ });
75
+ if (conflicts.length > 0) {
76
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New devices mappings are causing conflicts`, conflicts);
77
+ }
78
+ }
79
+ if (measures.length > 0) {
80
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", {
81
+ measuresModels: measures,
82
+ });
83
+ if (conflicts.length > 0) {
84
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New measures mappings are causing conflicts`, conflicts);
85
+ }
86
+ }
31
87
  }
32
- async writeAsset(engineGroup, model, metadataMappings, defaultMetadata, measures) {
88
+ async writeAsset(engineGroup, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels) {
33
89
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
34
90
  throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
35
91
  }
36
92
  const modelContent = {
37
- asset: { defaultMetadata, measures, metadataMappings, model },
93
+ asset: {
94
+ defaultMetadata,
95
+ measures,
96
+ metadataDetails,
97
+ metadataGroups,
98
+ metadataMappings,
99
+ model,
100
+ tooltipModels,
101
+ },
38
102
  engineGroup,
39
103
  type: "asset",
40
104
  };
41
105
  this.checkDefaultValues(metadataMappings, defaultMetadata);
106
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [modelContent], type: "asset" } });
107
+ if (conflicts.length > 0) {
108
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
109
+ }
42
110
  const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("asset", modelContent), modelContent);
43
111
  await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
44
- await (0, ask_1.ask)("ask:device-manager:engine:updateAll");
45
- await (0, ask_1.ask)("ask:device-manager:asset:refresh-model", {
112
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
113
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:refresh-model", {
46
114
  assetModel: modelContent,
47
115
  });
48
116
  return assetModel;
49
117
  }
50
118
  checkDefaultValues(metadataMappings, defaultMetadata) {
51
- const metadata = Object.keys(JSON.parse(JSON.stringify((0, flattenObject_1.flattenObject)(metadataMappings))
119
+ const flattenedMetadataMappings = (0, shared_1.flattenObject)(metadataMappings);
120
+ const metadata = Object.keys(JSON.parse(JSON.stringify(flattenedMetadataMappings)
52
121
  .replace(/properties\./g, "")
53
122
  .replace(/\.type/g, "")));
54
- const values = Object.keys((0, flattenObject_1.flattenObject)(defaultMetadata));
123
+ const values = Object.keys((0, shared_1.flattenObject)(defaultMetadata));
55
124
  for (let i = 0; i < values.length; i++) {
56
- if (!metadata.includes(values[i])) {
125
+ const key = values[i];
126
+ // ? Check if the exact key exists in the metadata
127
+ if (!metadata.includes(key)) {
128
+ // ? Extract base key for complex types like geo_point or geo_shape
129
+ const baseKey = key.includes(".") ? key.split(".")[0] : key;
130
+ // ? Check if the base key is in the metadata
131
+ if (!metadata.includes(baseKey)) {
132
+ throw new kuzzle_1.BadRequestError(`The default value "${key}" is not in the metadata mappings.`);
133
+ }
134
+ // ? Accept nested properties for geo_point or geo_shape
135
+ const baseKeyMetadata = flattenedMetadataMappings[`${baseKey}.type`];
136
+ if (baseKeyMetadata === "geo_point" ||
137
+ baseKeyMetadata === "geo_shape") {
138
+ continue;
139
+ }
57
140
  throw new kuzzle_1.BadRequestError(`The default value "${values[i]}" is not in the metadata mappings.`);
58
141
  }
59
142
  }
60
143
  }
61
- async writeDevice(model, metadataMappings, defaultMetadata, measures) {
144
+ async writeDevice(model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures) {
62
145
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
63
146
  throw new kuzzle_1.BadRequestError(`Device model "${model}" must be PascalCase.`);
64
147
  }
65
148
  const modelContent = {
66
- device: { defaultMetadata, measures, metadataMappings, model },
149
+ device: {
150
+ defaultMetadata,
151
+ measures,
152
+ metadataDetails,
153
+ metadataGroups,
154
+ metadataMappings,
155
+ model,
156
+ },
67
157
  type: "device",
68
158
  };
69
- const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("device", modelContent), modelContent);
159
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [modelContent], type: "device" } });
160
+ if (conflicts.length > 0) {
161
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
162
+ }
163
+ const deviceModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("device", modelContent), modelContent);
70
164
  await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
71
- await (0, ask_1.ask)("ask:device-manager:engine:updateAll");
72
- return assetModel;
165
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
166
+ return deviceModel;
73
167
  }
74
- async writeMeasure(type, valuesMappings) {
168
+ async writeMeasure(type, valuesMappings, valuesDetails) {
75
169
  const modelContent = {
76
- measure: { type, valuesMappings },
170
+ measure: {
171
+ type,
172
+ valuesDetails,
173
+ valuesMappings,
174
+ },
77
175
  type: "measure",
78
176
  };
79
- const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("measure", modelContent), modelContent);
177
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { measuresModels: [modelContent] });
178
+ if (conflicts.length > 0) {
179
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
180
+ }
181
+ const measureModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("measure", modelContent), modelContent);
80
182
  await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
81
- await (0, ask_1.ask)("ask:device-manager:engine:updateAll");
82
- return assetModel;
183
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
184
+ return measureModel;
83
185
  }
84
186
  async deleteAsset(_id) {
85
187
  await this.sdk.document.delete(this.config.adminIndex, plugin_1.InternalCollection.MODELS, _id);
@@ -91,28 +193,90 @@ class ModelService {
91
193
  await this.sdk.document.delete(this.config.adminIndex, plugin_1.InternalCollection.MODELS, _id);
92
194
  }
93
195
  async listAsset(engineGroup) {
94
- const query = {
95
- and: [{ equals: { type: "asset" } }, { equals: { engineGroup } }],
96
- };
97
- const sort = { "asset.model": "asc" };
98
- const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
196
+ const result = await this.searchAssets(engineGroup, {
197
+ searchBody: {
198
+ sort: { "asset.model": "asc" },
199
+ },
200
+ size: 5000,
201
+ });
99
202
  return result.hits;
100
203
  }
101
204
  async listDevices() {
102
- const query = {
103
- and: [{ equals: { type: "device" } }],
104
- };
105
- const sort = { "device.model": "asc" };
106
- const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
205
+ const result = await this.searchDevices({
206
+ searchBody: {
207
+ sort: { "device.model": "asc" },
208
+ },
209
+ size: 5000,
210
+ });
107
211
  return result.hits;
108
212
  }
109
213
  async listMeasures() {
214
+ const result = await this.searchMeasures({
215
+ searchBody: {
216
+ sort: { "measure.type": "asc" },
217
+ },
218
+ size: 5000,
219
+ });
220
+ return result.hits;
221
+ }
222
+ async searchAssets(engineGroup, searchParams) {
110
223
  const query = {
111
- and: [{ equals: { type: "measure" } }],
224
+ bool: {
225
+ must: [
226
+ searchParams.searchBody.query,
227
+ { match: { type: "asset" } },
228
+ {
229
+ bool: {
230
+ should: [
231
+ { match: { engineGroup } },
232
+ { match: { engineGroup: "commons" } },
233
+ ],
234
+ },
235
+ },
236
+ ],
237
+ },
112
238
  };
113
- const sort = { "measure.type": "asc" };
114
- const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
115
- return result.hits;
239
+ return this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, {
240
+ ...searchParams.searchBody,
241
+ query,
242
+ }, {
243
+ from: searchParams.from,
244
+ lang: "elasticsearch",
245
+ scroll: searchParams.scrollTTL,
246
+ size: searchParams.size,
247
+ });
248
+ }
249
+ async searchDevices(searchParams) {
250
+ const query = {
251
+ bool: {
252
+ must: [searchParams.searchBody.query, { match: { type: "device" } }],
253
+ },
254
+ };
255
+ return this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, {
256
+ ...searchParams.searchBody,
257
+ query,
258
+ }, {
259
+ from: searchParams.from,
260
+ lang: "elasticsearch",
261
+ scroll: searchParams.scrollTTL,
262
+ size: searchParams.size,
263
+ });
264
+ }
265
+ async searchMeasures(searchParams) {
266
+ const query = {
267
+ bool: {
268
+ must: [searchParams.searchBody.query, { match: { type: "measure" } }],
269
+ },
270
+ };
271
+ return this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, {
272
+ ...searchParams.searchBody,
273
+ query,
274
+ }, {
275
+ from: searchParams.from,
276
+ lang: "elasticsearch",
277
+ scroll: searchParams.scrollTTL,
278
+ size: searchParams.size,
279
+ });
116
280
  }
117
281
  async assetExists(model) {
118
282
  const query = {
@@ -174,6 +338,50 @@ class ModelService {
174
338
  }
175
339
  return result.hits[0];
176
340
  }
341
+ /**
342
+ * Update an asset model
343
+ */
344
+ async updateAsset(engineGroup, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, request) {
345
+ if (kuzzle_1.Inflector.pascalCase(model) !== model) {
346
+ throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
347
+ }
348
+ this.checkDefaultValues(metadataMappings, defaultMetadata);
349
+ const existingAsset = await this.getAsset(engineGroup, model);
350
+ // The field must be deleted if an element of the table is to be deleted
351
+ await this.sdk.document.deleteFields(this.config.adminIndex, plugin_1.InternalCollection.MODELS, existingAsset._id, ["asset.tooltipModels"], { source: true });
352
+ const measuresUpdated = measures.length === 0 ? existingAsset._source.asset.measures : measures;
353
+ const assetModelContent = {
354
+ asset: {
355
+ defaultMetadata,
356
+ measures: measuresUpdated,
357
+ metadataDetails,
358
+ metadataGroups,
359
+ metadataMappings,
360
+ model,
361
+ tooltipModels,
362
+ },
363
+ engineGroup,
364
+ type: "asset",
365
+ };
366
+ const assetModel = {
367
+ _id: existingAsset._id,
368
+ _source: assetModelContent,
369
+ };
370
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [assetModelContent], type: "asset" } });
371
+ if (conflicts.length > 0) {
372
+ throw new MappingsConflictsError_1.MappingsConflictsError(`Assets mappings are causing conflicts`, conflicts);
373
+ }
374
+ const endDocument = await this.updateDocument(request, assetModel, {
375
+ collection: plugin_1.InternalCollection.MODELS,
376
+ engineId: this.config.adminIndex,
377
+ }, { source: true });
378
+ await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
379
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
380
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:refresh-model", {
381
+ assetModel: assetModelContent,
382
+ });
383
+ return endDocument;
384
+ }
177
385
  }
178
386
  exports.ModelService = ModelService;
179
387
  //# sourceMappingURL=ModelService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelService.ts"],"names":[],"mappings":";;;AAAA,mCASgB;AAChB,iEAAmD;AAGnD,sCAKmB;AAGnB,sCAAqE;AACrE,uDAAoD;AAgBpD,qEAAkE;AAGlE,MAAa,YAAa,SAAQ,oBAAW;IAC3C,YAAY,MAA2B;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAA,6BAAK,EACH,oCAAoC,EACpC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAE3D,OAAO,UAAU,CAAC,OAAO,CAAC;QAC5B,CAAC,CACF,CAAC;QACF,IAAA,6BAAK,EACH,qCAAqC,EACrC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEhD,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC,CACF,CAAC;QACF,IAAA,6BAAK,EACH,sCAAsC,EACtC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjD,OAAO,YAAY,CAAC,OAAO,CAAC;QAC9B,CAAC,CACF,CAAC;QAEF,MAAM,oBAAoB,GAAG,KAAK,EAChC,SAAwC,EACxC,OAAsB,EACtB,EAAE;YACF,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAEjD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAChE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnC,OAAO,GAAG,CAAC,OAAO,CAAC;gBACrB,CAAC,CAAmB,CAAC;gBAErB,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CACpB,8BAA8B,EAC9B,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CACpB,+BAA+B,EAC/B,oBAAoB,CACrB,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CACpB,8BAA8B,EAC9B,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YAC3B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAEjD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAChE,MAAM,IAAA,2BAAG,EAAqB,qCAAqC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,SAAyB;QAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;QAC9B,CAAC,CAAwB,CAAC;QAE1B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC/B,CAAC,CAAyB,CAAC;QAE3B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;QAChC,CAAC,CAA0B,CAAC;QAE5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C;gBACE,IAAI,EAAE;oBACJ,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,OAAO;iBACd;aACF,CACF,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,+CAAsB,CAC9B,2CAA2C,EAC3C,SAAS,CACV,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C;gBACE,IAAI,EAAE;oBACJ,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,QAAQ;iBACf;aACF,CACF,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,+CAAsB,CAC9B,4CAA4C,EAC5C,SAAS,CACV,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C;gBACE,cAAc,EAAE,QAAQ;aACzB,CACF,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,+CAAsB,CAC9B,6CAA6C,EAC7C,SAAS,CACV,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,KAAa,EACb,gBAAkC,EAClC,eAA2B,EAC3B,eAAgC,EAChC,cAA8B,EAC9B,QAAgD,EAChD,aAA4B;QAE5B,IAAI,kBAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,wBAAe,CAAC,gBAAgB,KAAK,uBAAuB,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,YAAY,GAAsB;YACtC,KAAK,EAAE;gBACL,eAAe;gBACf,QAAQ;gBACR,eAAe;gBACf,cAAc;gBACd,gBAAgB;gBAChB,KAAK;gBACL,aAAa;aACd;YACD,WAAW;YACX,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CACpD,CAAC;QAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,+CAAsB,CAC9B,2CAA2C,EAC3C,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CACrC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,iCAAe,CAAC,EAAE,CAAoB,OAAO,EAAE,YAAY,CAAC,EAC5D,YAAY,CACb,CAAC;QAEJ,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,CAC1B,CAAC;QACF,MAAM,IAAA,2BAAG,EAAqB,qCAAqC,CAAC,CAAC;QAErE,MAAM,IAAA,2BAAG,EAAuB,wCAAwC,EAAE;YACxE,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,kBAAkB,CACxB,gBAAkC,EAClC,eAA2B;QAE3B,MAAM,yBAAyB,GAAG,IAAA,sBAAa,EAAC,gBAAgB,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAC1B,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;aACtC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAC1B,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,sBAAa,EAAC,eAAe,CAAC,CAAC,CAAC;QAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtB,kDAAkD;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,mEAAmE;gBACnE,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAE5D,6CAA6C;gBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,wBAAe,CACvB,sBAAsB,GAAG,oCAAoC,CAC9D,CAAC;gBACJ,CAAC;gBAED,wDAAwD;gBACxD,MAAM,eAAe,GAAG,yBAAyB,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;gBACrE,IACE,eAAe,KAAK,WAAW;oBAC/B,eAAe,KAAK,WAAW,EAC/B,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,wBAAe,CACvB,sBAAsB,MAAM,CAAC,CAAC,CAAC,oCAAoC,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAAa,EACb,gBAAkC,EAClC,eAA2B,EAC3B,eAAgC,EAChC,cAA8B,EAC9B,QAAkD;QAElD,IAAI,kBAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,wBAAe,CAAC,iBAAiB,KAAK,uBAAuB,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,YAAY,GAAuB;YACvC,MAAM,EAAE;gBACN,eAAe;gBACf,QAAQ;gBACR,eAAe;gBACf,cAAc;gBACd,gBAAgB;gBAChB,KAAK;aACN;YACD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CACrD,CAAC;QAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,+CAAsB,CAC9B,2CAA2C,EAC3C,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CACrC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,iCAAe,CAAC,EAAE,CAAqB,QAAQ,EAAE,YAAY,CAAC,EAC9D,YAAY,CACb,CAAC;QAEJ,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,CAC1B,CAAC;QACF,MAAM,IAAA,2BAAG,EAAqB,qCAAqC,CAAC,CAAC;QAErE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAY,EACZ,cAA0B,EAC1B,aAAoC;QAEpC,MAAM,YAAY,GAAwB;YACxC,OAAO,EAAE;gBACP,IAAI;gBACJ,aAAa;gBACb,cAAc;aACf;YACD,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,CACnC,CAAC;QAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,+CAAsB,CAC9B,2CAA2C,EAC3C,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAChB,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CACrC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,iCAAe,CAAC,EAAE,CAAsB,SAAS,EAAE,YAAY,CAAC,EAChE,YAAY,CACb,CAAC;QAEJ,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,CAC1B,CAAC;QACF,MAAM,IAAA,2BAAG,EAAqB,qCAAqC,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,WAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAClD,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;aAC/B;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YACtC,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;aAChC;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACvC,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;aAChC;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,YAAmC;QAEnC,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,YAAY,CAAC,UAAU,CAAC,KAAK;oBAC7B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;oBAC5B;wBACE,IAAI,EAAE;4BACJ,MAAM,EAAE;gCACN,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE;gCAC1B,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;6BACtC;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB;YACE,GAAG,YAAY,CAAC,UAAU;YAC1B,KAAK;SACN,EACD;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,YAAY,CAAC,SAAS;YAC9B,IAAI,EAAE,YAAY,CAAC,IAAI;SACxB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,YAAmC;QAEnC,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;aACrE;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB;YACE,GAAG,YAAY,CAAC,UAAU;YAC1B,KAAK;SACN,EACD;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,YAAY,CAAC,SAAS;YAC9B,IAAI,EAAE,YAAY,CAAC,IAAI;SACxB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,YAAmC;QAEnC,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;aACtE;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB;YACE,GAAG,YAAY,CAAC,UAAU;YAC1B,KAAK;SACN,EACD;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,YAAY,CAAC,SAAS;YAC9B,IAAI,EAAE,YAAY,CAAC,IAAI;SACxB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE;gBACH,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAC7B,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE;aACrC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,EAAE,KAAK,EAAE,EACT,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9B,CAAC;QAEF,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE;gBACH,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9B,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;aACtC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,EAAE,KAAK,EAAE,EACT,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9B,CAAC;QAEF,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,WAAmB,EACnB,KAAa;QAEb,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE;gBACH,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE;gBAC3B,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAC7B,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE;aACrC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,EAAE,KAAK,EAAE,EACT,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9B,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAa,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE;gBACH,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9B,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;aACtC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,EAAE,KAAK,EAAE,EACT,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9B,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAa,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE;gBACH,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;gBAC/B,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;aACrC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,EAAE,KAAK,EAAE,EACT,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAC9B,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAa,CAAC,yBAAyB,IAAI,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,KAAa,EACb,gBAAkC,EAClC,eAA2B,EAC3B,eAAgC,EAChC,cAA8B,EAC9B,QAAgD,EAChD,aAA4B,EAC5B,OAAsB;QAEtB,IAAI,kBAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,wBAAe,CAAC,gBAAgB,KAAK,uBAAuB,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAE3D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE9D,wEAAwE;QACxE,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,EACzB,aAAa,CAAC,GAAG,EACjB,CAAC,qBAAqB,CAAC,EACvB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QAEF,MAAM,eAAe,GACnB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE1E,MAAM,iBAAiB,GAAsB;YAC3C,KAAK,EAAE;gBACL,eAAe;gBACf,QAAQ,EAAE,eAAe;gBACzB,eAAe;gBACf,cAAc;gBACd,gBAAgB;gBAChB,KAAK;gBACL,aAAa;aACd;YACD,WAAW;YACX,IAAI,EAAE,OAAO;SACd,CAAC;QACF,MAAM,UAAU,GAAG;YACjB,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,OAAO,EAAE,iBAAiB;SAC3B,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAG,EACzB,8CAA8C,EAC9C,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CACzD,CAAC;QAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,+CAAsB,CAC9B,uCAAuC,EACvC,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAC3C,OAAO,EACP,UAAU,EACV;YACE,UAAU,EAAE,2BAAkB,CAAC,MAAM;YACrC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACjC,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,MAAM,CAC1B,CAAC;QACF,MAAM,IAAA,2BAAG,EAAqB,qCAAqC,CAAC,CAAC;QAErE,MAAM,IAAA,2BAAG,EAAuB,wCAAwC,EAAE;YACxE,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA3qBD,oCA2qBC"}
@@ -0,0 +1,30 @@
1
+ import { TwinModelContent, TwinType } from "../plugin";
2
+ import { MeasureModelContent } from "./exports";
3
+ export type ConflictChunk = {
4
+ sourceModel: string;
5
+ newModel: string;
6
+ modelType: string;
7
+ conflicts: MappingsConflict[];
8
+ };
9
+ export type MappingsConflict = {
10
+ path: string;
11
+ currentType: string | undefined;
12
+ newType: string | undefined;
13
+ };
14
+ /**
15
+ * Return every conflicts between the mappings of twins and a new twin model
16
+ *
17
+ * @param twinType The target twin type
18
+ * @param models The already present twin models
19
+ * @param additional The new asset
20
+ * @returns An array of ConflictChunk between current twins and the new twin
21
+ */
22
+ export declare function getTwinConflicts<TDigitalTwin extends TwinModelContent>(twinType: TwinType, models: TDigitalTwin[], additional: TDigitalTwin): ConflictChunk[];
23
+ /**
24
+ * Return every conflicts between the mappings of measure models and a new measure model
25
+ *
26
+ * @param measures The already present measure models
27
+ * @param additional The new measure
28
+ * @returns An array of ConflictChunk between current measures and the new measure
29
+ */
30
+ export declare function getMeasureConflicts(measures: MeasureModelContent[], additional: MeasureModelContent): ConflictChunk[];
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getMeasureConflicts = exports.getTwinConflicts = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ /**
9
+ * Return every conflicts between the mappings of models and a new model
10
+ *
11
+ * @param modelType The target model type
12
+ * @param models The already present models used as comparison source
13
+ * @param additional The new model
14
+ * @param mappingsPath The object path to the mappings
15
+ * @param modelIdPath The object path to the model ID
16
+ * @returns An array of ConflictChunk between current models and the new model
17
+ */
18
+ function getModelConflicts(modelType, models, additional, mappingsPath, modelIdPath) {
19
+ const conflicts = [];
20
+ for (const model of models) {
21
+ const baseMappings = lodash_1.default.get(model, mappingsPath);
22
+ const updatedMappings = JSON.parse(JSON.stringify(baseMappings));
23
+ lodash_1.default.merge(updatedMappings, lodash_1.default.get(additional, mappingsPath));
24
+ const mappingsConflict = findConflicts(baseMappings, updatedMappings, mappingsPath);
25
+ if (mappingsConflict.length > 0) {
26
+ conflicts.push({
27
+ conflicts: mappingsConflict,
28
+ modelType: modelType,
29
+ newModel: lodash_1.default.get(additional, modelIdPath),
30
+ sourceModel: lodash_1.default.get(model, modelIdPath),
31
+ });
32
+ }
33
+ }
34
+ return conflicts;
35
+ }
36
+ /**
37
+ * Return every conflicts between the mappings of twins and a new twin model
38
+ *
39
+ * @param twinType The target twin type
40
+ * @param models The already present twin models
41
+ * @param additional The new asset
42
+ * @returns An array of ConflictChunk between current twins and the new twin
43
+ */
44
+ function getTwinConflicts(twinType, models, additional) {
45
+ const metadataPath = twinType + ".metadataMappings";
46
+ const modelIdPath = twinType + ".model";
47
+ return getModelConflicts(twinType, models, additional, metadataPath, modelIdPath);
48
+ }
49
+ exports.getTwinConflicts = getTwinConflicts;
50
+ /**
51
+ * Return every conflicts between the mappings of measure models and a new measure model
52
+ *
53
+ * @param measures The already present measure models
54
+ * @param additional The new measure
55
+ * @returns An array of ConflictChunk between current measures and the new measure
56
+ */
57
+ function getMeasureConflicts(measures, additional) {
58
+ const modelType = "measure";
59
+ const mappingsPath = "measure.valuesMappings";
60
+ const modelIdPath = "measure.type";
61
+ return getModelConflicts(modelType, measures, additional, mappingsPath, modelIdPath);
62
+ }
63
+ exports.getMeasureConflicts = getMeasureConflicts;
64
+ /**
65
+ * Find every conflicts between two objects.
66
+ * WARNING: "undefined" type of conflicts are not registered
67
+ * @param sourceObject The source object used to compare
68
+ * @param objectToCompare The target object to compare to
69
+ * @param basePath Optional path to be added before conflicts paths
70
+ * @returns An array of MappingsConflict
71
+ */
72
+ function findConflicts(sourceObject, objectToCompare, basePath = "") {
73
+ if (sourceObject === objectToCompare) {
74
+ return [];
75
+ }
76
+ if (lodash_1.default.isEqual(sourceObject, objectToCompare)) {
77
+ return [];
78
+ }
79
+ const conflicts = [];
80
+ function compareObjects(source, toCompare, path = "") {
81
+ //Loop over the source object properties of distinct depth level
82
+ lodash_1.default.forOwn(source, (value, key) => {
83
+ //Construct full path from the previous path and the current key
84
+ const fullPath = path ? `${path}.${key}` : key;
85
+ //Check the object to compare key availibility, if there's nothing return to continue on the next property
86
+ if (!lodash_1.default.has(toCompare, key)) {
87
+ return;
88
+ }
89
+ //If the property to compare is an object, recursively call the method to advance on the next depth level
90
+ if (lodash_1.default.isObject(value) && lodash_1.default.isObject(toCompare[key])) {
91
+ compareObjects(value, toCompare[key], fullPath);
92
+ return;
93
+ }
94
+ //If the property to compare is not an object and is not equal to the source value, add the current/new value with it's corresponding full path
95
+ if (!lodash_1.default.isEqual(value, toCompare[key])) {
96
+ conflicts.push({
97
+ currentType: source[key],
98
+ newType: toCompare[key],
99
+ path: fullPath,
100
+ });
101
+ }
102
+ });
103
+ }
104
+ compareObjects(sourceObject, objectToCompare, basePath);
105
+ return conflicts;
106
+ }
107
+ //# sourceMappingURL=ModelsConflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelsConflicts.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelsConflicts.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAiBvB;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CACxB,SAAiB,EACjB,MAAsB,EACtB,UAAwB,EACxB,YAAoB,EACpB,WAAmB;IAEnB,MAAM,SAAS,GAAoB,EAAE,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,gBAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAEjE,gBAAC,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QAE1D,MAAM,gBAAgB,GAAG,aAAa,CACpC,YAAY,EACZ,eAAe,EACf,YAAY,CACb,CAAC;QAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,gBAAgB;gBAC3B,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;gBACxC,WAAW,EAAE,gBAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,QAAkB,EAClB,MAAsB,EACtB,UAAwB;IAExB,MAAM,YAAY,GAAG,QAAQ,GAAG,mBAAmB,CAAC;IACpD,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAExC,OAAO,iBAAiB,CACtB,QAAQ,EACR,MAAM,EACN,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;AACJ,CAAC;AAfD,4CAeC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,QAA+B,EAC/B,UAA+B;IAE/B,MAAM,SAAS,GAAG,SAAS,CAAC;IAC5B,MAAM,YAAY,GAAG,wBAAwB,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC;IAEnC,OAAO,iBAAiB,CACtB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;AACJ,CAAC;AAfD,kDAeC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,YAAiB,EAAE,eAAoB,EAAE,QAAQ,GAAG,EAAE;IAC3E,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,gBAAC,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,SAAS,cAAc,CAAC,MAAW,EAAE,SAAc,EAAE,IAAI,GAAG,EAAE;QAC5D,gEAAgE;QAChE,gBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,gEAAgE;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAE/C,0GAA0G;YAC1G,IAAI,CAAC,gBAAC,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,yGAAyG;YACzG,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACpD,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,+IAA+I;YAC/I,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC;oBACb,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC;oBACxB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;oBACvB,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { ControllerDefinition, KuzzleRequest } from "kuzzle";
2
2
  import { ModelService } from "./ModelService";
3
- import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult } from "./types/ModelApi";
3
+ import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelUpdateAssetResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult, ApiModelSearchAssetsResult, ApiModelSearchDevicesResult, ApiModelSearchMeasuresResult } from "./types/ModelApi";
4
4
  export declare class ModelsController {
5
5
  private modelService;
6
6
  definition: ControllerDefinition;
@@ -17,4 +17,8 @@ export declare class ModelsController {
17
17
  listAssets(request: KuzzleRequest): Promise<ApiModelListAssetsResult>;
18
18
  listDevices(): Promise<ApiModelListDevicesResult>;
19
19
  listMeasures(): Promise<ApiModelListMeasuresResult>;
20
+ searchAssets(request: KuzzleRequest): Promise<ApiModelSearchAssetsResult>;
21
+ searchDevices(request: KuzzleRequest): Promise<ApiModelSearchDevicesResult>;
22
+ searchMeasures(request: KuzzleRequest): Promise<ApiModelSearchMeasuresResult>;
23
+ updateAsset(request: KuzzleRequest): Promise<ApiModelUpdateAssetResult>;
20
24
  }