kuzzle-device-manager 2.11.0-dev.1 → 3.0.0-3-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/modules/asset/AssetModule.d.ts +1 -4
- package/dist/lib/modules/asset/AssetModule.js +0 -13
- package/dist/lib/modules/asset/AssetModule.js.map +1 -1
- package/dist/lib/modules/asset/AssetService.d.ts +7 -4
- package/dist/lib/modules/asset/AssetService.js +119 -50
- package/dist/lib/modules/asset/AssetService.js.map +1 -1
- package/dist/lib/modules/asset/AssetsController.d.ts +25 -7
- package/dist/lib/modules/asset/AssetsController.js +123 -36
- package/dist/lib/modules/asset/AssetsController.js.map +1 -1
- package/dist/lib/modules/asset/collections/assetsMappings.js +10 -15
- package/dist/lib/modules/asset/collections/assetsMappings.js.map +1 -1
- package/dist/lib/modules/asset/exports.d.ts +0 -4
- package/dist/lib/modules/asset/exports.js +0 -4
- package/dist/lib/modules/asset/exports.js.map +1 -1
- package/dist/lib/modules/asset/index.d.ts +1 -3
- package/dist/lib/modules/asset/index.js +1 -3
- package/dist/lib/modules/asset/index.js.map +1 -1
- package/dist/lib/modules/asset/model/AssetSerializer.js +0 -1
- package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
- package/dist/lib/modules/asset/types/AssetApi.d.ts +124 -9
- package/dist/lib/modules/asset/types/AssetContent.d.ts +9 -16
- package/dist/lib/modules/asset/types/AssetHistoryContent.d.ts +4 -11
- package/dist/lib/modules/decoder/DecodedPayload.d.ts +2 -0
- package/dist/lib/modules/decoder/DecodedPayload.js +13 -2
- package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -1
- package/dist/lib/modules/decoder/Decoder.d.ts +1 -1
- package/dist/lib/modules/decoder/Decoder.js.map +1 -1
- package/dist/lib/modules/decoder/DecoderModule.js.map +1 -1
- package/dist/lib/modules/decoder/DecodersController.d.ts +4 -1
- package/dist/lib/modules/decoder/DecodersController.js +3 -0
- package/dist/lib/modules/decoder/DecodersController.js.map +1 -1
- package/dist/lib/modules/decoder/DecodersRegister.js +4 -1
- package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -1
- package/dist/lib/modules/decoder/PayloadService.d.ts +1 -0
- package/dist/lib/modules/decoder/PayloadService.js +136 -26
- package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
- package/dist/lib/modules/decoder/PayloadsController.js +1 -1
- package/dist/lib/modules/decoder/PayloadsController.js.map +1 -1
- package/dist/lib/modules/device/DeviceService.d.ts +6 -47
- package/dist/lib/modules/device/DeviceService.js +157 -291
- package/dist/lib/modules/device/DeviceService.js.map +1 -1
- package/dist/lib/modules/device/DevicesController.d.ts +5 -5
- package/dist/lib/modules/device/DevicesController.js +35 -23
- package/dist/lib/modules/device/DevicesController.js.map +1 -1
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +6 -0
- package/dist/lib/modules/device/collections/deviceMappings.js +76 -6
- package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +2 -2
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js +7 -4
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js.map +1 -1
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js +4 -1
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js.map +1 -1
- package/dist/lib/modules/device/types/DeviceApi.d.ts +69 -41
- package/dist/lib/modules/device/types/DeviceContent.d.ts +56 -5
- package/dist/lib/modules/device/types/DeviceEvents.d.ts +9 -24
- package/dist/lib/modules/group/GroupsController.d.ts +37 -0
- package/dist/lib/modules/group/GroupsController.js +472 -0
- package/dist/lib/modules/group/GroupsController.js.map +1 -0
- package/dist/lib/modules/group/GroupsModule.d.ts +10 -0
- package/dist/lib/modules/group/GroupsModule.js +25 -0
- package/dist/lib/modules/group/GroupsModule.js.map +1 -0
- package/dist/lib/modules/group/GroupsService.d.ts +118 -0
- package/dist/lib/modules/group/GroupsService.js +518 -0
- package/dist/lib/modules/group/GroupsService.js.map +1 -0
- package/dist/lib/modules/group/collections/groupsMappings.d.ts +2 -0
- package/dist/lib/modules/{asset/collections/assetsGroupsMapping.js → group/collections/groupsMappings.js} +4 -12
- package/dist/lib/modules/group/collections/groupsMappings.js.map +1 -0
- package/dist/lib/modules/group/exports.d.ts +5 -0
- package/dist/lib/modules/group/exports.js +22 -0
- package/dist/lib/modules/group/exports.js.map +1 -0
- package/dist/lib/modules/group/index.d.ts +4 -0
- package/dist/lib/modules/{measure/measures → group}/index.js +4 -5
- package/dist/lib/modules/group/index.js.map +1 -0
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.d.ts → group/roles/RoleGroupsAdmin.d.ts} +3 -3
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.js → group/roles/RoleGroupsAdmin.js} +7 -7
- package/dist/lib/modules/group/roles/RoleGroupsAdmin.js.map +1 -0
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsReader.d.ts → group/roles/RoleGroupsReader.d.ts} +3 -3
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsReader.js → group/roles/RoleGroupsReader.js} +7 -7
- package/dist/lib/modules/group/roles/RoleGroupsReader.js.map +1 -0
- package/dist/lib/modules/group/types/GroupContent.d.ts +10 -0
- package/dist/lib/modules/{asset/types/AssetGroupsApi.js → group/types/GroupContent.js} +1 -1
- package/dist/lib/modules/group/types/GroupContent.js.map +1 -0
- package/dist/lib/modules/group/types/GroupsApi.d.ts +141 -0
- package/dist/lib/modules/{asset/types/AssetGroupContent.js → group/types/GroupsApi.js} +1 -1
- package/dist/lib/modules/group/types/GroupsApi.js.map +1 -0
- package/dist/lib/modules/measure/MeasureExporter.js +14 -6
- package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
- package/dist/lib/modules/measure/MeasureService.d.ts +11 -43
- package/dist/lib/modules/measure/MeasureService.js +86 -375
- package/dist/lib/modules/measure/MeasureService.js.map +1 -1
- package/dist/lib/modules/measure/MeasureSourcesBuilder.d.ts +1 -2
- package/dist/lib/modules/measure/MeasureSourcesBuilder.js +5 -15
- package/dist/lib/modules/measure/MeasureSourcesBuilder.js.map +1 -1
- package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +1 -1
- package/dist/lib/modules/measure/MeasureTargetBuilder.js +2 -2
- package/dist/lib/modules/measure/MeasureTargetBuilder.js.map +1 -1
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +2 -91
- package/dist/lib/modules/measure/collections/measuresMappings.js +7 -11
- package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
- package/dist/lib/modules/measure/exports.d.ts +0 -1
- package/dist/lib/modules/measure/exports.js +0 -1
- package/dist/lib/modules/measure/exports.js.map +1 -1
- package/dist/lib/modules/measure/index.d.ts +0 -1
- package/dist/lib/modules/measure/index.js +0 -1
- package/dist/lib/modules/measure/index.js.map +1 -1
- package/dist/lib/modules/measure/types/MeasureContent.d.ts +9 -2
- package/dist/lib/modules/measure/types/MeasureEvents.d.ts +6 -149
- package/dist/lib/modules/measure/types/MeasureSources.d.ts +5 -0
- package/dist/lib/modules/measure/types/MeasureSources.js.map +1 -1
- package/dist/lib/modules/measure/types/MeasureTarget.d.ts +1 -1
- package/dist/lib/modules/measure/types/MeasureTarget.js +1 -1
- package/dist/lib/modules/measure/types/MeasureTarget.js.map +1 -1
- package/dist/lib/modules/model/ModelModule.js.map +1 -1
- package/dist/lib/modules/model/ModelSerializer.js +15 -0
- package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +20 -14
- package/dist/lib/modules/model/ModelService.js +301 -117
- package/dist/lib/modules/model/ModelService.js.map +1 -1
- package/dist/lib/modules/model/ModelsController.d.ts +1 -1
- package/dist/lib/modules/model/ModelsController.js +32 -19
- package/dist/lib/modules/model/ModelsController.js.map +1 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +6 -5
- package/dist/lib/modules/model/ModelsRegister.js +10 -8
- package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
- package/dist/lib/modules/model/collections/modelsMappings.js +20 -1
- package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
- package/dist/lib/modules/model/types/ModelApi.d.ts +14 -9
- package/dist/lib/modules/model/types/ModelContent.d.ts +34 -3
- package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +6 -2
- package/dist/lib/modules/model/types/ModelEvents.d.ts +3 -1
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +15 -6
- package/dist/lib/modules/plugin/DeviceManagerEngine.js +151 -54
- package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +10 -8
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js +41 -44
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +9 -14
- package/dist/lib/modules/plugin/types/InternalCollection.d.ts +1 -1
- package/dist/lib/modules/plugin/types/InternalCollection.js +1 -1
- package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -1
- package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
- package/dist/lib/modules/plugin/types/exports.js +1 -0
- package/dist/lib/modules/plugin/types/exports.js.map +1 -1
- package/dist/lib/modules/shared/services/AbstractExporter.d.ts +3 -1
- package/dist/lib/modules/shared/services/AbstractExporter.js +7 -3
- package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +6 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js +49 -7
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +70 -2
- package/dist/lib/modules/shared/services/DigitalTwinService.js +309 -1
- package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -1
- package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +4 -5
- package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +30 -0
- package/package.json +15 -9
- package/dist/lib/modules/asset/AssetsGroupsController.d.ts +0 -24
- package/dist/lib/modules/asset/AssetsGroupsController.js +0 -239
- package/dist/lib/modules/asset/AssetsGroupsController.js.map +0 -1
- package/dist/lib/modules/asset/AssetsGroupsService.d.ts +0 -49
- package/dist/lib/modules/asset/AssetsGroupsService.js +0 -172
- package/dist/lib/modules/asset/AssetsGroupsService.js.map +0 -1
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.d.ts +0 -2
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.js.map +0 -1
- package/dist/lib/modules/asset/roles/RoleAssetsGroupsAdmin.js.map +0 -1
- package/dist/lib/modules/asset/roles/RoleAssetsGroupsReader.js.map +0 -1
- package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +0 -11
- package/dist/lib/modules/asset/types/AssetGroupContent.js.map +0 -1
- package/dist/lib/modules/asset/types/AssetGroupsApi.d.ts +0 -59
- package/dist/lib/modules/asset/types/AssetGroupsApi.js.map +0 -1
- package/dist/lib/modules/measure/measures/BatteryMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/BatteryMeasure.js +0 -19
- package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/HumidityMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/HumidityMeasure.js +0 -19
- package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/MovementMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/MovementMeasure.js +0 -17
- package/dist/lib/modules/measure/measures/MovementMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/PositionMeasure.d.ts +0 -10
- package/dist/lib/modules/measure/measures/PositionMeasure.js +0 -43
- package/dist/lib/modules/measure/measures/PositionMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/TemperatureMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/TemperatureMeasure.js +0 -19
- package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +0 -1
- package/dist/lib/modules/measure/measures/index.d.ts +0 -5
- package/dist/lib/modules/measure/measures/index.js.map +0 -1
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.MeasureService = void 0;
|
|
7
4
|
const kuzzle_1 = require("kuzzle");
|
|
8
5
|
const kuzzle_plugin_commons_1 = require("kuzzle-plugin-commons");
|
|
9
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
10
6
|
const asset_1 = require("../asset");
|
|
11
7
|
const plugin_1 = require("../plugin");
|
|
12
8
|
const shared_1 = require("../shared");
|
|
13
9
|
const MeasureSources_1 = require("./types/MeasureSources");
|
|
14
10
|
const MeasureSourcesBuilder_1 = require("./MeasureSourcesBuilder");
|
|
15
11
|
const MeasureTarget_1 = require("./types/MeasureTarget");
|
|
16
|
-
const
|
|
12
|
+
const lodash_1 = require("lodash");
|
|
17
13
|
class MeasureService extends shared_1.BaseService {
|
|
18
14
|
constructor(plugin, logger) {
|
|
19
15
|
super(plugin);
|
|
@@ -22,54 +18,50 @@ class MeasureService extends shared_1.BaseService {
|
|
|
22
18
|
if (!payload) {
|
|
23
19
|
return;
|
|
24
20
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
(0, kuzzle_plugin_commons_1.onAsk)("device-manager:measures:ingest", async (payload) => {
|
|
30
|
-
if (!payload) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
await this.ingest(payload.device, payload.measurements, payload.metadata, payload.payloadUuids);
|
|
21
|
+
const { target, measurements, source, payloadUuids } = payload;
|
|
22
|
+
await this.ingest(source, target, measurements, payloadUuids);
|
|
34
23
|
});
|
|
35
24
|
}
|
|
36
25
|
/**
|
|
37
|
-
* Register new measures
|
|
26
|
+
* Register new measures updates :
|
|
38
27
|
* - asset
|
|
39
28
|
* - engine measures
|
|
40
29
|
*
|
|
41
30
|
* This method represents the ingestion pipeline:
|
|
42
31
|
* - trigger events `before` (measure enrichment)
|
|
43
|
-
* - save documents (measures
|
|
32
|
+
* - save documents (measures & device metadata)
|
|
44
33
|
* - trigger events `after`
|
|
45
34
|
*/
|
|
46
|
-
async
|
|
35
|
+
async ingest(source, target, measurements, payloadUuids) {
|
|
47
36
|
const { id: dataSourceId } = source;
|
|
48
37
|
const { indexId, assetId } = target;
|
|
49
|
-
if (!measurements) {
|
|
50
|
-
this.
|
|
38
|
+
if (!measurements || measurements.length === 0) {
|
|
39
|
+
this.app.log.warn(`No measurements provided for "${dataSourceId}" measures ingest`);
|
|
51
40
|
return;
|
|
52
41
|
}
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
42
|
+
let measures, asset;
|
|
43
|
+
if ((0, MeasureTarget_1.isTargetApi)(target) && (0, MeasureSources_1.isSourceApi)(source)) {
|
|
44
|
+
const { asset: assetResult, measures: measuresResult } = await this.ingestApiMeasures(indexId, assetId, source, target, measurements, payloadUuids);
|
|
45
|
+
asset = assetResult;
|
|
46
|
+
measures = measuresResult;
|
|
47
|
+
}
|
|
48
|
+
else if ((0, MeasureSources_1.isSourceDevice)(source) &&
|
|
49
|
+
((0, MeasureTarget_1.isTargetDevice)(target) || indexId === null)) {
|
|
50
|
+
const { asset: assetResult, measures: measuresResult } = await this.ingestDeviceMeasures(assetId, indexId, source, measurements, payloadUuids);
|
|
51
|
+
asset = assetResult;
|
|
52
|
+
measures = measuresResult;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new kuzzle_1.BadRequestError(`Unable to ingest measure with context ${JSON.stringify({ asset, measures, source, target }, null, 2)}`);
|
|
56
56
|
}
|
|
57
|
-
const asset = assetDocument._source;
|
|
58
|
-
const measures = await this.buildApiMeasures(source, assetDocument, measurements, payloadUuids, target.engineGroup);
|
|
59
|
-
asset.measures || (asset.measures = {});
|
|
60
57
|
/**
|
|
61
58
|
* Event before starting to process new measures.
|
|
62
59
|
*
|
|
63
60
|
* Useful to enrich measures before they are saved.
|
|
64
61
|
*/
|
|
65
|
-
await this.app.trigger("device-manager:measures:process:
|
|
66
|
-
if (indexId) {
|
|
67
|
-
await this.app.trigger(`engine:${indexId}:device-manager:measures:process:sourceBefore`, { asset, measures, source, target });
|
|
68
|
-
}
|
|
69
|
-
const assetStates = this.updateAssetMeasures(assetDocument, measures);
|
|
70
|
-
await this.app.trigger("device-manager:measures:persist:sourceBefore", { asset, measures, source, target });
|
|
62
|
+
await this.app.trigger("device-manager:measures:process:before", { asset, measures, source, target });
|
|
71
63
|
if (indexId) {
|
|
72
|
-
await this.app.trigger(`engine:${indexId}:device-manager:measures:
|
|
64
|
+
await this.app.trigger(`engine:${indexId}:device-manager:measures:process:before`, { asset, measures, source, target });
|
|
73
65
|
}
|
|
74
66
|
const promises = [];
|
|
75
67
|
if (indexId) {
|
|
@@ -80,233 +72,76 @@ class MeasureService extends shared_1.BaseService {
|
|
|
80
72
|
throw new kuzzle_1.BadRequestError(`Cannot save measures: ${errors[0].reason}`);
|
|
81
73
|
}
|
|
82
74
|
}));
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
await Promise.all(promises);
|
|
76
|
+
}
|
|
77
|
+
else if ((0, MeasureSources_1.isSourceDevice)(source)) {
|
|
78
|
+
const deviceProvisioning = await this.sdk.document.get(this.config.platformIndex, plugin_1.InternalCollection.DEVICES, source.id);
|
|
79
|
+
const lastMeasures = [...deviceProvisioning._source.lastMeasures];
|
|
80
|
+
for (const measure of measures) {
|
|
81
|
+
lastMeasures.push({
|
|
82
|
+
measureName: measure.origin.measureName,
|
|
83
|
+
measuredAt: measure.measuredAt,
|
|
84
|
+
type: measure.type,
|
|
85
|
+
values: measure.values,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
lastMeasures.sort((a, b) => b.measuredAt - a.measuredAt);
|
|
89
|
+
lastMeasures.splice(5);
|
|
90
|
+
await this.sdk.document.update(this.config.platformIndex, plugin_1.InternalCollection.DEVICES, source.id, {
|
|
91
|
+
lastMeasuredAt: lastMeasures[0].measuredAt,
|
|
92
|
+
lastMeasures,
|
|
93
|
+
});
|
|
85
94
|
}
|
|
86
|
-
await Promise.all(promises);
|
|
87
95
|
/**
|
|
88
96
|
* Event at the end of the measure process pipeline.
|
|
89
97
|
*
|
|
90
98
|
* Useful to trigger business rules like alerts
|
|
91
99
|
*
|
|
92
|
-
* @todo test this
|
|
93
100
|
*/
|
|
94
|
-
await this.app.trigger("device-manager:measures:process:
|
|
101
|
+
await this.app.trigger("device-manager:measures:process:after", { asset, measures, source, target });
|
|
95
102
|
if (indexId) {
|
|
96
|
-
await this.app.trigger(`engine:${indexId}:device-manager:measures:process:
|
|
103
|
+
await this.app.trigger(`engine:${indexId}:device-manager:measures:process:after`, { asset, measures, source, target });
|
|
97
104
|
}
|
|
98
105
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
*
|
|
108
|
-
* This method represents the ingestion pipeline:
|
|
109
|
-
* - build measures documents and update digital twins (device and asset)
|
|
110
|
-
* - trigger events `before` (measure enrichment)
|
|
111
|
-
* - save documents (measures, device and asset)
|
|
112
|
-
* - trigger events `after`
|
|
113
|
-
*
|
|
114
|
-
* @deprecated
|
|
115
|
-
*/
|
|
116
|
-
async ingest(device, measurements, metadata, payloadUuids) {
|
|
117
|
-
await (0, shared_1.lock)(`measure:ingest:${device._id}`, async () => {
|
|
118
|
-
var _a;
|
|
119
|
-
if (!measurements) {
|
|
120
|
-
this.logger.warn(`Cannot find measurements for device "${device._source.reference}"`);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
const { engineId, reference, model, assetId, lastMeasuredAt } = device._source;
|
|
124
|
-
const asset = assetId ? await this.findAsset(engineId, assetId) : null;
|
|
125
|
-
const assetContent = asset?._source;
|
|
126
|
-
const originalAssetMetadata = asset === null
|
|
127
|
-
? {}
|
|
128
|
-
: JSON.parse(JSON.stringify(asset._source.metadata));
|
|
129
|
-
lodash_1.default.merge(device._source.metadata, metadata);
|
|
130
|
-
const measures = this.buildMeasures(device, asset, measurements, payloadUuids);
|
|
131
|
-
if (asset) {
|
|
132
|
-
(_a = asset._source).measures || (_a.measures = {});
|
|
133
|
-
}
|
|
134
|
-
const source = (0, MeasureSourcesBuilder_1.toDeviceSource)(device._id, reference, model, device._source.metadata, lastMeasuredAt);
|
|
135
|
-
const target = (0, MeasureTargetBuilder_1.toDeviceTarget)(device._source.engineId, device._source.assetId ?? undefined);
|
|
136
|
-
/**
|
|
137
|
-
* Event before starting to process new measures.
|
|
138
|
-
*
|
|
139
|
-
* Useful to enrich measures before they are saved.
|
|
140
|
-
*/
|
|
141
|
-
await this.app.trigger("device-manager:measures:process:before", {
|
|
142
|
-
asset,
|
|
143
|
-
device,
|
|
144
|
-
measures,
|
|
145
|
-
});
|
|
146
|
-
if (engineId) {
|
|
147
|
-
await this.app.trigger(`engine:${engineId}:device-manager:measures:process:before`, { asset, device, measures });
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Here are the new process before triggers using sources
|
|
151
|
-
*
|
|
152
|
-
* Event before starting to process new measures.
|
|
153
|
-
*
|
|
154
|
-
* Useful to enrich measures before they are saved.
|
|
155
|
-
*/
|
|
156
|
-
await this.app.trigger("device-manager:measures:process:sourceBefore", { asset: assetContent, measures, source, target });
|
|
157
|
-
if (engineId) {
|
|
158
|
-
await this.app.trigger(`engine:${engineId}:device-manager:measures:process:sourceBefore`, { asset: assetContent, measures, source, target });
|
|
159
|
-
}
|
|
160
|
-
await this.updateDeviceMeasures(device, measures);
|
|
161
|
-
let assetStates = new Map();
|
|
162
|
-
if (asset) {
|
|
163
|
-
assetStates = await this.updateAssetMeasures(asset, measures);
|
|
164
|
-
}
|
|
165
|
-
await this.app.trigger("device-manager:measures:persist:before", {
|
|
166
|
-
asset,
|
|
167
|
-
device,
|
|
168
|
-
measures,
|
|
169
|
-
});
|
|
170
|
-
if (engineId) {
|
|
171
|
-
await this.app.trigger(`engine:${engineId}:device-manager:measures:persist:before`, { asset, device, measures });
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Here are the new persist before triggers using sources
|
|
175
|
-
*/
|
|
176
|
-
await this.app.trigger("device-manager:measures:persist:sourceBefore", { asset: assetContent, measures, source, target });
|
|
177
|
-
if (engineId) {
|
|
178
|
-
await this.app.trigger(`engine:${engineId}:device-manager:measures:persist:sourceBefore`, { asset: assetContent, measures, source, target });
|
|
179
|
-
}
|
|
180
|
-
const promises = [];
|
|
181
|
-
promises.push(this.sdk.document
|
|
182
|
-
.update(this.config.adminIndex, plugin_1.InternalCollection.DEVICES, device._id, device._source)
|
|
183
|
-
.catch((error) => {
|
|
184
|
-
throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update device "${device._id}": ${error.message}`));
|
|
185
|
-
}));
|
|
186
|
-
if (engineId) {
|
|
187
|
-
promises.push(this.sdk.document
|
|
188
|
-
.update(engineId, plugin_1.InternalCollection.DEVICES, device._id, device._source)
|
|
189
|
-
.catch((error) => {
|
|
190
|
-
throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update engine device "${device._id}": ${error.message}`));
|
|
191
|
-
}));
|
|
192
|
-
promises.push(this.sdk.document
|
|
193
|
-
.mCreate(engineId, plugin_1.InternalCollection.MEASURES, measures.map((measure) => ({ body: measure })))
|
|
194
|
-
.then(({ errors }) => {
|
|
195
|
-
if (errors.length !== 0) {
|
|
196
|
-
throw new kuzzle_1.BadRequestError(`Cannot save measures: ${errors[0].reason}`);
|
|
197
|
-
}
|
|
198
|
-
}));
|
|
199
|
-
if (asset) {
|
|
200
|
-
promises.push(this.mutexUpdateAsset(engineId, asset._id, asset._source));
|
|
201
|
-
promises.push(this.historizeAssetStates(assetStates, engineId, originalAssetMetadata, asset._source.metadata));
|
|
106
|
+
async buildDeviceMeasures(source, asset, measures, payloadUuids) {
|
|
107
|
+
const deviceMeasures = [];
|
|
108
|
+
for (const measure of measures) {
|
|
109
|
+
let assetContext = null;
|
|
110
|
+
if (asset !== null) {
|
|
111
|
+
const assetMeasureName = this.findAssetMeasureNameFromDevice(source.id, measure.measureName, asset._source);
|
|
112
|
+
if (assetMeasureName) {
|
|
113
|
+
assetContext = asset_1.AssetSerializer.measureContext(asset, assetMeasureName);
|
|
202
114
|
}
|
|
203
115
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
*/
|
|
212
|
-
await this.app.trigger("device-manager:measures:process:after", {
|
|
213
|
-
asset,
|
|
214
|
-
device,
|
|
215
|
-
measures,
|
|
116
|
+
const measureSource = (0, MeasureSourcesBuilder_1.deviceSourceToOriginDevice)(source, measure.measureName, payloadUuids, (0, lodash_1.merge)(source.deviceMetadata, source.metadata));
|
|
117
|
+
deviceMeasures.push({
|
|
118
|
+
asset: assetContext,
|
|
119
|
+
measuredAt: measure.measuredAt,
|
|
120
|
+
origin: measureSource,
|
|
121
|
+
type: measure.type,
|
|
122
|
+
values: measure.values,
|
|
216
123
|
});
|
|
217
|
-
if (engineId) {
|
|
218
|
-
await this.app.trigger(`engine:${engineId}:device-manager:measures:process:after`, { asset, device, measures });
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Here are the new process after triggers using sources
|
|
222
|
-
*
|
|
223
|
-
* Event at the end of the measure process pipeline.
|
|
224
|
-
*
|
|
225
|
-
* Useful to trigger business rules like alerts
|
|
226
|
-
*
|
|
227
|
-
* @todo test this
|
|
228
|
-
*/
|
|
229
|
-
await this.app.trigger("device-manager:measures:process:sourceAfter", { asset: assetContent, measures, source, target });
|
|
230
|
-
if (engineId) {
|
|
231
|
-
await this.app.trigger(`engine:${engineId}:device-manager:measures:process:sourceAfter`, { asset: assetContent, measures, source, target });
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
updateDeviceMeasures(device, measurements) {
|
|
236
|
-
if (!device._source.measures) {
|
|
237
|
-
device._source.measures = {};
|
|
238
|
-
}
|
|
239
|
-
let lastMeasuredAt = device._source.lastMeasuredAt ?? 0;
|
|
240
|
-
for (const measurement of measurements) {
|
|
241
|
-
if (measurement.origin.type !== "device") {
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
const measureName = measurement.origin.measureName;
|
|
245
|
-
const previousMeasure = device._source.measures[measureName];
|
|
246
|
-
if (previousMeasure &&
|
|
247
|
-
previousMeasure.measuredAt >= measurement.measuredAt) {
|
|
248
|
-
continue;
|
|
249
|
-
}
|
|
250
|
-
if (measurement.measuredAt > lastMeasuredAt) {
|
|
251
|
-
lastMeasuredAt = measurement.measuredAt;
|
|
252
|
-
}
|
|
253
|
-
device._source.measures[measureName] = {
|
|
254
|
-
measuredAt: measurement.measuredAt,
|
|
255
|
-
name: measureName,
|
|
256
|
-
originId: measurement.origin._id,
|
|
257
|
-
payloadUuids: measurement.origin.payloadUuids,
|
|
258
|
-
type: measurement.type,
|
|
259
|
-
values: measurement.values,
|
|
260
|
-
};
|
|
261
124
|
}
|
|
262
|
-
|
|
125
|
+
return deviceMeasures;
|
|
263
126
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
if (measurement.origin.type === "computed") {
|
|
279
|
-
continue;
|
|
280
|
-
}
|
|
281
|
-
if (measurement.asset === null) {
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
const measureName = measurement.asset?.measureName ?? null;
|
|
285
|
-
// The measurement was not present in the asset device links so it should
|
|
286
|
-
// not be saved in the asset measures
|
|
287
|
-
if (measureName === null) {
|
|
288
|
-
continue;
|
|
289
|
-
}
|
|
290
|
-
const previousMeasure = asset._source.measures[measureName];
|
|
291
|
-
if (previousMeasure &&
|
|
292
|
-
previousMeasure.measuredAt >= measurement.measuredAt) {
|
|
293
|
-
continue;
|
|
294
|
-
}
|
|
295
|
-
if (measurement.measuredAt > lastMeasuredAt) {
|
|
296
|
-
lastMeasuredAt = measurement.measuredAt;
|
|
297
|
-
}
|
|
298
|
-
asset._source.measures[measureName] = {
|
|
299
|
-
measuredAt: measurement.measuredAt,
|
|
300
|
-
name: measureName,
|
|
301
|
-
originId: measurement.origin._id,
|
|
302
|
-
payloadUuids: measurement.origin.payloadUuids,
|
|
303
|
-
type: measurement.type,
|
|
304
|
-
values: measurement.values,
|
|
305
|
-
};
|
|
306
|
-
assetStates.set(measurement.measuredAt, JSON.parse(JSON.stringify(asset)));
|
|
127
|
+
async ingestDeviceMeasures(assetId, indexId, source, measurements, payloadUuids) {
|
|
128
|
+
let assetDocument = null;
|
|
129
|
+
let asset = null;
|
|
130
|
+
if (assetId !== null) {
|
|
131
|
+
assetDocument = await this.findAsset(indexId, assetId);
|
|
132
|
+
asset = { ...assetDocument._source };
|
|
133
|
+
}
|
|
134
|
+
const measures = await this.buildDeviceMeasures(source, assetDocument, measurements, payloadUuids);
|
|
135
|
+
return { asset, measures };
|
|
136
|
+
}
|
|
137
|
+
async ingestApiMeasures(indexId, assetId, source, target, measurements, payloadUuids) {
|
|
138
|
+
const assetDocument = await this.findAsset(indexId, assetId);
|
|
139
|
+
if (!assetDocument) {
|
|
140
|
+
throw new kuzzle_1.BadRequestError(`Asset "${assetId}" does not exists on index "${indexId}"`);
|
|
307
141
|
}
|
|
308
|
-
asset._source
|
|
309
|
-
|
|
142
|
+
const asset = { ...assetDocument._source };
|
|
143
|
+
const measures = await this.buildApiMeasures(source, assetDocument, measurements, payloadUuids, target.engineGroups);
|
|
144
|
+
return { asset, measures };
|
|
310
145
|
}
|
|
311
146
|
/**
|
|
312
147
|
* Build the measures document received from the API
|
|
@@ -315,14 +150,14 @@ class MeasureService extends shared_1.BaseService {
|
|
|
315
150
|
* @param asset The target asset to build the measure for
|
|
316
151
|
* @param measure The decoded raw measures
|
|
317
152
|
* @param payloadUuids The uuid's of the payloads used to create the measure
|
|
318
|
-
*
|
|
153
|
+
* @param engineGroup engineGroup of model
|
|
319
154
|
* @returns A MeasurementContent builded from parameters
|
|
320
155
|
*/
|
|
321
|
-
async buildApiMeasures(source, asset, measures, payloadUuids,
|
|
156
|
+
async buildApiMeasures(source, asset, measures, payloadUuids, engineGroups) {
|
|
322
157
|
const apiMeasures = [];
|
|
323
158
|
for (const measure of measures) {
|
|
324
159
|
let assetContext = null;
|
|
325
|
-
const isInModel = await this.isMeasureNameInModel(measure.measureName, asset._source.model,
|
|
160
|
+
const isInModel = await this.isMeasureNameInModel(measure.measureName, asset._source.model, engineGroups);
|
|
326
161
|
if (isInModel) {
|
|
327
162
|
assetContext = asset_1.AssetSerializer.measureContext(asset, measure.measureName);
|
|
328
163
|
}
|
|
@@ -337,39 +172,6 @@ class MeasureService extends shared_1.BaseService {
|
|
|
337
172
|
}
|
|
338
173
|
return apiMeasures;
|
|
339
174
|
}
|
|
340
|
-
/**
|
|
341
|
-
* Build the measures documents to save
|
|
342
|
-
*/
|
|
343
|
-
buildMeasures(device, asset, measurements, payloadUuids) {
|
|
344
|
-
const measures = [];
|
|
345
|
-
for (const measurement of measurements) {
|
|
346
|
-
// @todo check if measure type exists
|
|
347
|
-
let assetContext = null;
|
|
348
|
-
if (asset) {
|
|
349
|
-
const assetMeasureName = this.findAssetMeasureNameFromDevice(device._id, measurement.measureName, asset._source);
|
|
350
|
-
if (assetMeasureName) {
|
|
351
|
-
assetContext = asset_1.AssetSerializer.measureContext(asset, assetMeasureName);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
const measureContent = {
|
|
355
|
-
asset: assetContext,
|
|
356
|
-
measuredAt: measurement.measuredAt,
|
|
357
|
-
origin: {
|
|
358
|
-
_id: device._id,
|
|
359
|
-
deviceMetadata: device._source.metadata,
|
|
360
|
-
deviceModel: device._source.model,
|
|
361
|
-
measureName: measurement.measureName,
|
|
362
|
-
payloadUuids,
|
|
363
|
-
reference: device._source.reference,
|
|
364
|
-
type: "device",
|
|
365
|
-
},
|
|
366
|
-
type: measurement.type,
|
|
367
|
-
values: measurement.values,
|
|
368
|
-
};
|
|
369
|
-
measures.push(measureContent);
|
|
370
|
-
}
|
|
371
|
-
return measures.sort((measureA, measureB) => measureA.measuredAt - measureB.measuredAt);
|
|
372
|
-
}
|
|
373
175
|
/**
|
|
374
176
|
* Find an asset by its ID and its engine ID.
|
|
375
177
|
*
|
|
@@ -383,7 +185,7 @@ class MeasureService extends shared_1.BaseService {
|
|
|
383
185
|
return asset;
|
|
384
186
|
}
|
|
385
187
|
catch (error) {
|
|
386
|
-
this.
|
|
188
|
+
this.app.log.error(`[${engineId}] Cannot find asset "${assetId}".`);
|
|
387
189
|
return null;
|
|
388
190
|
}
|
|
389
191
|
}
|
|
@@ -396,9 +198,9 @@ class MeasureService extends shared_1.BaseService {
|
|
|
396
198
|
* @returns True if the asset measure name belongs to the asset model, false otherwise
|
|
397
199
|
* @throws If the model does not exists
|
|
398
200
|
*/
|
|
399
|
-
async isMeasureNameInModel(measureName, model,
|
|
201
|
+
async isMeasureNameInModel(measureName, model, engineGroups = ["commons"]) {
|
|
400
202
|
const assetModel = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:model:asset:get", {
|
|
401
|
-
|
|
203
|
+
engineGroups,
|
|
402
204
|
model: model,
|
|
403
205
|
});
|
|
404
206
|
if (!assetModel) {
|
|
@@ -418,104 +220,13 @@ class MeasureService extends shared_1.BaseService {
|
|
|
418
220
|
* @throws If the device is not linked to the asset
|
|
419
221
|
*/
|
|
420
222
|
findAssetMeasureNameFromDevice(deviceId, measureType, asset) {
|
|
421
|
-
const linkedDevice = asset.
|
|
223
|
+
const linkedDevice = asset.linkedMeasures.find((link) => link.deviceId === deviceId);
|
|
422
224
|
if (!linkedDevice) {
|
|
423
225
|
throw new kuzzle_1.BadRequestError(`Device "${deviceId}" is not linked to "${asset.model}" asset: "${asset.reference}"`);
|
|
424
226
|
}
|
|
425
|
-
const assetMeasureName = linkedDevice.
|
|
227
|
+
const assetMeasureName = linkedDevice.measureSlots.find((m) => m.device === measureType);
|
|
426
228
|
return assetMeasureName?.asset ?? null;
|
|
427
229
|
}
|
|
428
|
-
mutexUpdateAsset(engineId, assetId, asset) {
|
|
429
|
-
// ? Potential race condition if 2 differents device are linked
|
|
430
|
-
// ? to the same asset and get processed at the same time.
|
|
431
|
-
//
|
|
432
|
-
// ? Use mutex to try to fix update conflict
|
|
433
|
-
return (0, shared_1.lock)(`asset:${engineId}:${assetId}`, async () => this.sdk.document
|
|
434
|
-
.update(engineId, plugin_1.InternalCollection.ASSETS, assetId, asset)
|
|
435
|
-
.catch((error) => {
|
|
436
|
-
throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update asset "${assetId}": ${error.message}`));
|
|
437
|
-
}));
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Create a new document in the collection asset-history, for each asset state
|
|
441
|
-
*/
|
|
442
|
-
async historizeAssetStates(assetStates, engineId, originalAssetMetadata, assetMetadata) {
|
|
443
|
-
const metadataChanges = (0, shared_1.objectDiff)(originalAssetMetadata, assetMetadata);
|
|
444
|
-
if (!this.config.assetsHistorizesMeasures) {
|
|
445
|
-
// If there are no metadata changes, nothing to do.
|
|
446
|
-
if (metadataChanges.length === 0) {
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
const timestamps = Array.from(assetStates.keys());
|
|
450
|
-
const lastTimestampRecorded = timestamps[timestamps.length - 1];
|
|
451
|
-
const lastAssetState = assetStates.get(lastTimestampRecorded);
|
|
452
|
-
if (!lastAssetState) {
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
// Update the asset's metadata to the new one.
|
|
456
|
-
lastAssetState._source.metadata = assetMetadata;
|
|
457
|
-
// Create a metadata event.
|
|
458
|
-
const event = {
|
|
459
|
-
metadata: {
|
|
460
|
-
names: metadataChanges,
|
|
461
|
-
},
|
|
462
|
-
name: "metadata",
|
|
463
|
-
};
|
|
464
|
-
const history = {
|
|
465
|
-
asset: lastAssetState._source,
|
|
466
|
-
event,
|
|
467
|
-
id: lastAssetState._id,
|
|
468
|
-
timestamp: lastTimestampRecorded,
|
|
469
|
-
};
|
|
470
|
-
return (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:history:add", {
|
|
471
|
-
engineId,
|
|
472
|
-
histories: [history],
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
// Otherwise, we record measure events (and metadata on the last state if needed)
|
|
476
|
-
const timestamps = Array.from(assetStates.keys());
|
|
477
|
-
const lastTimestampRecorded = timestamps[timestamps.length - 1];
|
|
478
|
-
const histories = [];
|
|
479
|
-
for (const [measuredAt, assetState] of assetStates) {
|
|
480
|
-
// Gather measure names corresponding to the current timestamp.
|
|
481
|
-
const measureNames = [];
|
|
482
|
-
for (const measure of Object.values(assetState._source.measures)) {
|
|
483
|
-
if (measure?.measuredAt === measuredAt) {
|
|
484
|
-
measureNames.push(measure.name);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
// Build the measure event.
|
|
488
|
-
const event = {
|
|
489
|
-
measure: {
|
|
490
|
-
names: measureNames,
|
|
491
|
-
},
|
|
492
|
-
name: "measure",
|
|
493
|
-
};
|
|
494
|
-
// Initialize with the original metadata.
|
|
495
|
-
assetState._source.metadata = originalAssetMetadata;
|
|
496
|
-
// If we are at the last recorded state and there are metadata changes,
|
|
497
|
-
// update both the event and asset metadata.
|
|
498
|
-
if (metadataChanges.length !== 0 &&
|
|
499
|
-
measuredAt === lastTimestampRecorded) {
|
|
500
|
-
event.metadata = {
|
|
501
|
-
names: metadataChanges,
|
|
502
|
-
};
|
|
503
|
-
assetState._source.metadata = assetMetadata;
|
|
504
|
-
}
|
|
505
|
-
histories.push({
|
|
506
|
-
asset: assetState._source,
|
|
507
|
-
event,
|
|
508
|
-
id: assetState._id,
|
|
509
|
-
timestamp: measuredAt,
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
return (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:history:add", {
|
|
513
|
-
engineId,
|
|
514
|
-
// Reverse order because measuredAt is sorted in ascending order,
|
|
515
|
-
// while in mCreate the last item will be the first document to be created
|
|
516
|
-
histories: histories.reverse(),
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
230
|
}
|
|
520
231
|
exports.MeasureService = MeasureService;
|
|
521
232
|
//# sourceMappingURL=MeasureService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,4 @@ export declare const enum DATA_SOURCE_METADATA_TYPE {
|
|
|
6
6
|
DEVICE = "device"
|
|
7
7
|
}
|
|
8
8
|
export declare function apiSourceToOriginApi(source: ApiMeasureSource, payloadUuids: string[]): MeasureOriginApi;
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function deviceSourceToOriginDevice(source: DeviceMeasureSource, measureName: string, payloadUuids: string[]): MeasureOriginDevice;
|
|
9
|
+
export declare function deviceSourceToOriginDevice(source: DeviceMeasureSource, measureName: string, payloadUuids: string[], deviceMetadata: Metadata): MeasureOriginDevice;
|