kuzzle-device-manager 2.1.4 → 2.2.0
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/README.md +3 -15
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/modules/asset/AssetHistoryService.d.ts +3 -5
- package/dist/lib/modules/asset/AssetHistoryService.js +15 -8
- package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
- package/dist/lib/modules/asset/AssetModule.js +1 -1
- package/dist/lib/modules/asset/AssetModule.js.map +1 -1
- package/dist/lib/modules/asset/AssetService.d.ts +11 -22
- package/dist/lib/modules/asset/AssetService.js +97 -56
- package/dist/lib/modules/asset/AssetService.js.map +1 -1
- package/dist/lib/modules/asset/AssetsController.d.ts +8 -3
- package/dist/lib/modules/asset/AssetsController.js +59 -2
- package/dist/lib/modules/asset/AssetsController.js.map +1 -1
- package/dist/lib/modules/asset/collections/assetsHistoryMappings.d.ts +8 -0
- package/dist/lib/modules/asset/collections/assetsHistoryMappings.js +6 -0
- package/dist/lib/modules/asset/collections/assetsHistoryMappings.js.map +1 -1
- package/dist/lib/modules/asset/collections/assetsMappings.d.ts +8 -0
- package/dist/lib/modules/asset/collections/assetsMappings.js +6 -0
- package/dist/lib/modules/asset/collections/assetsMappings.js.map +1 -1
- package/dist/lib/modules/asset/exports.d.ts +2 -0
- package/dist/lib/modules/asset/exports.js +2 -0
- package/dist/lib/modules/asset/exports.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.d.ts +1 -0
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +2 -0
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +2 -0
- package/dist/lib/modules/asset/roles/RoleAssetsReader.js +4 -0
- package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -1
- package/dist/lib/modules/asset/types/AssetApi.d.ts +20 -0
- package/dist/lib/modules/asset/types/AssetContent.d.ts +3 -2
- package/dist/lib/modules/asset/types/AssetEvents.d.ts +10 -3
- package/dist/lib/modules/asset/types/AssetHistoryContent.d.ts +14 -3
- package/dist/lib/modules/decoder/Decoder.d.ts +2 -2
- package/dist/lib/modules/decoder/Decoder.js.map +1 -1
- package/dist/lib/modules/decoder/DecodersController.d.ts +1 -1
- package/dist/lib/modules/decoder/DecodersController.js.map +1 -1
- package/dist/lib/{core/registers → modules/decoder}/DecodersRegister.d.ts +3 -2
- package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -0
- package/dist/lib/modules/decoder/DecodingState.d.ts +5 -0
- package/dist/lib/modules/decoder/DecodingState.js +10 -0
- package/dist/lib/modules/decoder/DecodingState.js.map +1 -0
- package/dist/lib/modules/decoder/PayloadService.d.ts +1 -1
- package/dist/lib/modules/decoder/PayloadService.js +22 -10
- package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
- package/dist/lib/modules/decoder/PayloadsController.d.ts +1 -1
- package/dist/lib/modules/decoder/PayloadsController.js.map +1 -1
- package/dist/lib/modules/decoder/SkipError.d.ts +3 -0
- package/dist/lib/modules/decoder/SkipError.js +10 -0
- package/dist/lib/modules/decoder/SkipError.js.map +1 -0
- package/dist/lib/modules/decoder/collections/payloadsMappings.d.ts +6 -0
- package/dist/lib/modules/decoder/collections/payloadsMappings.js +2 -0
- package/dist/lib/modules/decoder/collections/payloadsMappings.js.map +1 -1
- package/dist/lib/modules/decoder/index.d.ts +1 -0
- package/dist/lib/modules/decoder/index.js +1 -0
- package/dist/lib/modules/decoder/index.js.map +1 -1
- package/dist/lib/modules/device/DeviceModule.js +1 -1
- package/dist/lib/modules/device/DeviceModule.js.map +1 -1
- package/dist/lib/modules/device/DeviceService.d.ts +1 -10
- package/dist/lib/modules/device/DeviceService.js +90 -70
- package/dist/lib/modules/device/DeviceService.js.map +1 -1
- package/dist/lib/modules/device/DevicesController.d.ts +8 -3
- package/dist/lib/modules/device/DevicesController.js +58 -2
- package/dist/lib/modules/device/DevicesController.js.map +1 -1
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +5 -0
- package/dist/lib/modules/device/collections/deviceMappings.js +5 -0
- package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
- package/dist/lib/modules/device/exports.d.ts +1 -0
- package/dist/lib/modules/device/exports.js +1 -0
- package/dist/lib/modules/device/exports.js.map +1 -1
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +3 -0
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js +6 -0
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js.map +1 -1
- package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +3 -0
- package/dist/lib/modules/device/roles/RoleDevicesReader.js +6 -0
- package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -1
- package/dist/lib/modules/device/types/DeviceApi.d.ts +20 -0
- package/dist/lib/modules/measure/MeasureExporter.d.ts +61 -0
- package/dist/lib/modules/measure/MeasureExporter.js +166 -0
- package/dist/lib/modules/measure/MeasureExporter.js.map +1 -0
- package/dist/lib/modules/measure/MeasureService.d.ts +9 -4
- package/dist/lib/modules/measure/MeasureService.js +64 -29
- package/dist/lib/modules/measure/MeasureService.js.map +1 -1
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +5 -0
- package/dist/lib/modules/measure/collections/measuresMappings.js +5 -0
- package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
- package/dist/lib/modules/measure/exports.d.ts +1 -0
- package/dist/lib/modules/measure/exports.js +1 -0
- package/dist/lib/modules/measure/exports.js.map +1 -1
- package/dist/lib/modules/measure/index.d.ts +1 -0
- package/dist/lib/modules/measure/index.js +1 -0
- package/dist/lib/modules/measure/index.js.map +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +1 -1
- package/dist/lib/modules/model/ModelService.js +22 -20
- package/dist/lib/modules/model/ModelService.js.map +1 -1
- package/dist/lib/{core/registers → modules/model}/ModelsRegister.d.ts +3 -3
- package/dist/lib/{core/registers → modules/model}/ModelsRegister.js +6 -6
- package/dist/lib/modules/model/ModelsRegister.js.map +1 -0
- package/dist/lib/modules/model/collections/modelsMappings.d.ts +3 -0
- package/dist/lib/modules/model/collections/modelsMappings.js +3 -0
- package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
- package/dist/lib/modules/model/index.d.ts +1 -0
- package/dist/lib/modules/model/index.js +1 -0
- package/dist/lib/modules/model/index.js.map +1 -1
- package/dist/lib/{core → modules/plugin}/DeviceManagerEngine.d.ts +11 -3
- package/dist/lib/{core → modules/plugin}/DeviceManagerEngine.js +8 -13
- package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -0
- package/dist/lib/{core → modules/plugin}/DeviceManagerPlugin.d.ts +3 -3
- package/dist/lib/{core → modules/plugin}/DeviceManagerPlugin.js +10 -12
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -0
- package/dist/lib/modules/plugin/exports.d.ts +2 -0
- package/dist/lib/{core → modules/plugin}/exports.js +1 -1
- package/dist/lib/modules/plugin/exports.js.map +1 -0
- package/dist/lib/modules/plugin/index.d.ts +4 -0
- package/dist/lib/{core → modules/plugin}/index.js +2 -2
- package/dist/lib/modules/plugin/index.js.map +1 -0
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.js.map +1 -0
- package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -0
- package/dist/lib/modules/shared/Module.d.ts +1 -1
- package/dist/lib/modules/shared/types/Metadata.d.ts +2 -1
- package/dist/tests/application/app.js +13 -0
- package/dist/tests/application/app.js.map +1 -1
- package/dist/tests/application/decoders/DummyTempDecoder.d.ts +3 -2
- package/dist/tests/application/decoders/DummyTempDecoder.js +17 -8
- package/dist/tests/application/decoders/DummyTempDecoder.js.map +1 -1
- package/package.json +16 -14
- package/dist/lib/core/DeviceManagerConfiguration.js.map +0 -1
- package/dist/lib/core/DeviceManagerEngine.js.map +0 -1
- package/dist/lib/core/DeviceManagerPlugin.js.map +0 -1
- package/dist/lib/core/InternalCollection.js.map +0 -1
- package/dist/lib/core/exports.d.ts +0 -2
- package/dist/lib/core/exports.js.map +0 -1
- package/dist/lib/core/index.d.ts +0 -4
- package/dist/lib/core/index.js.map +0 -1
- package/dist/lib/core/registers/DecodersRegister.js.map +0 -1
- package/dist/lib/core/registers/ModelsRegister.js.map +0 -1
- package/dist/tests/fixtures/fixtures.d.ts +0 -42
- package/dist/tests/fixtures/fixtures.js +0 -143
- package/dist/tests/fixtures/fixtures.js.map +0 -1
- package/dist/tests/helpers/document.d.ts +0 -5
- package/dist/tests/helpers/document.js +0 -11
- package/dist/tests/helpers/document.js.map +0 -1
- package/dist/tests/helpers/index.d.ts +0 -4
- package/dist/tests/helpers/index.js +0 -21
- package/dist/tests/helpers/index.js.map +0 -1
- package/dist/tests/helpers/payloads.d.ts +0 -18
- package/dist/tests/helpers/payloads.js +0 -50
- package/dist/tests/helpers/payloads.js.map +0 -1
- package/dist/tests/helpers/sdk.d.ts +0 -2
- package/dist/tests/helpers/sdk.js +0 -9
- package/dist/tests/helpers/sdk.js.map +0 -1
- package/dist/tests/helpers/setup.d.ts +0 -1
- package/dist/tests/helpers/setup.js +0 -24
- package/dist/tests/helpers/setup.js.map +0 -1
- package/dist/tests/hooks/collections.d.ts +0 -3
- package/dist/tests/hooks/collections.js +0 -40
- package/dist/tests/hooks/collections.js.map +0 -1
- package/dist/tests/hooks/engines.d.ts +0 -2
- package/dist/tests/hooks/engines.js +0 -26
- package/dist/tests/hooks/engines.js.map +0 -1
- package/dist/tests/hooks/fixtures.d.ts +0 -2
- package/dist/tests/hooks/fixtures.js +0 -17
- package/dist/tests/hooks/fixtures.js.map +0 -1
- package/dist/tests/scenario/migrated/asset-controller.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/asset-controller.test.js +0 -189
- package/dist/tests/scenario/migrated/asset-controller.test.js.map +0 -1
- package/dist/tests/scenario/migrated/asset-history.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/asset-history.test.js +0 -186
- package/dist/tests/scenario/migrated/asset-history.test.js.map +0 -1
- package/dist/tests/scenario/migrated/asset-roles.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/asset-roles.test.js +0 -42
- package/dist/tests/scenario/migrated/asset-roles.test.js.map +0 -1
- package/dist/tests/scenario/migrated/decoder-decoders-controller.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/decoder-decoders-controller.test.js +0 -82
- package/dist/tests/scenario/migrated/decoder-decoders-controller.test.js.map +0 -1
- package/dist/tests/scenario/migrated/decoder-default-rights.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/decoder-default-rights.test.js +0 -29
- package/dist/tests/scenario/migrated/decoder-default-rights.test.js.map +0 -1
- package/dist/tests/scenario/migrated/decoder-payload-controller.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/decoder-payload-controller.test.js +0 -219
- package/dist/tests/scenario/migrated/decoder-payload-controller.test.js.map +0 -1
- package/dist/tests/scenario/migrated/decoder-payloads-mappings.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/decoder-payloads-mappings.test.js +0 -37
- package/dist/tests/scenario/migrated/decoder-payloads-mappings.test.js.map +0 -1
- package/dist/tests/scenario/migrated/decoder-roles.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/decoder-roles.test.js +0 -34
- package/dist/tests/scenario/migrated/decoder-roles.test.js.map +0 -1
- package/dist/tests/scenario/migrated/device-controller-attach-engine.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/device-controller-attach-engine.test.js +0 -81
- package/dist/tests/scenario/migrated/device-controller-attach-engine.test.js.map +0 -1
- package/dist/tests/scenario/migrated/device-controller-detach-engine.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/device-controller-detach-engine.test.js +0 -71
- package/dist/tests/scenario/migrated/device-controller-detach-engine.test.js.map +0 -1
- package/dist/tests/scenario/migrated/device-controller-get-measures.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/device-controller-get-measures.test.js +0 -77
- package/dist/tests/scenario/migrated/device-controller-get-measures.test.js.map +0 -1
- package/dist/tests/scenario/migrated/device-controller-unlink-asset.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/device-controller-unlink-asset.test.js +0 -89
- package/dist/tests/scenario/migrated/device-controller-unlink-asset.test.js.map +0 -1
- package/dist/tests/scenario/migrated/device-metadata.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/device-metadata.test.js +0 -29
- package/dist/tests/scenario/migrated/device-metadata.test.js.map +0 -1
- package/dist/tests/scenario/migrated/device-roles.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/device-roles.test.js +0 -58
- package/dist/tests/scenario/migrated/device-roles.test.js.map +0 -1
- package/dist/tests/scenario/migrated/measure-ingestion-pipeline.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/measure-ingestion-pipeline.test.js +0 -119
- package/dist/tests/scenario/migrated/measure-ingestion-pipeline.test.js.map +0 -1
- package/dist/tests/scenario/migrated/measure-provisionning.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/measure-provisionning.test.js +0 -38
- package/dist/tests/scenario/migrated/measure-provisionning.test.js.map +0 -1
- package/dist/tests/scenario/migrated/measure-roles.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/measure-roles.test.js +0 -42
- package/dist/tests/scenario/migrated/measure-roles.test.js.map +0 -1
- package/dist/tests/scenario/migrated/model-controller.test.d.ts +0 -1
- package/dist/tests/scenario/migrated/model-controller.test.js +0 -470
- package/dist/tests/scenario/migrated/model-controller.test.js.map +0 -1
- package/dist/tests/scenario/modules/assets/action-get-measures.test.d.ts +0 -1
- package/dist/tests/scenario/modules/assets/action-get-measures.test.js +0 -61
- package/dist/tests/scenario/modules/assets/action-get-measures.test.js.map +0 -1
- package/dist/tests/scenario/modules/assets/asset-history.test.d.ts +0 -1
- package/dist/tests/scenario/modules/assets/asset-history.test.js +0 -57
- package/dist/tests/scenario/modules/assets/asset-history.test.js.map +0 -1
- package/dist/tests/scenario/modules/devices/action-attach-engine.test.d.ts +0 -1
- package/dist/tests/scenario/modules/devices/action-attach-engine.test.js +0 -67
- package/dist/tests/scenario/modules/devices/action-attach-engine.test.js.map +0 -1
- package/dist/tests/scenario/modules/devices/action-link-asset.test.d.ts +0 -1
- package/dist/tests/scenario/modules/devices/action-link-asset.test.js +0 -200
- package/dist/tests/scenario/modules/devices/action-link-asset.test.js.map +0 -1
- package/dist/tests/scenario/modules/devices/action-receive-measure.test.d.ts +0 -1
- package/dist/tests/scenario/modules/devices/action-receive-measure.test.js +0 -109
- package/dist/tests/scenario/modules/devices/action-receive-measure.test.js.map +0 -1
- package/dist/tests/scenario/modules/devices/action-scrud.test.d.ts +0 -1
- package/dist/tests/scenario/modules/devices/action-scrud.test.js +0 -90
- package/dist/tests/scenario/modules/devices/action-scrud.test.js.map +0 -1
- package/dist/tests/scenario/modules/ingestion-pipeline/before-ingestion.test.d.ts +0 -1
- package/dist/tests/scenario/modules/ingestion-pipeline/before-ingestion.test.js +0 -33
- package/dist/tests/scenario/modules/ingestion-pipeline/before-ingestion.test.js.map +0 -1
- package/dist/tests/scenario/modules/ingestion-pipeline/propagation.test.d.ts +0 -1
- package/dist/tests/scenario/modules/ingestion-pipeline/propagation.test.js +0 -25
- package/dist/tests/scenario/modules/ingestion-pipeline/propagation.test.js.map +0 -1
- package/dist/tests/scenario/usecase/dynamicaly-register-device-model.test.d.ts +0 -1
- package/dist/tests/scenario/usecase/dynamicaly-register-device-model.test.js +0 -69
- package/dist/tests/scenario/usecase/dynamicaly-register-device-model.test.js.map +0 -1
- /package/dist/lib/{core/registers → modules/decoder}/DecodersRegister.js +0 -0
- /package/dist/lib/{core → modules/plugin/types}/DeviceManagerConfiguration.d.ts +0 -0
- /package/dist/lib/{core → modules/plugin/types}/DeviceManagerConfiguration.js +0 -0
- /package/dist/lib/{core → modules/plugin/types}/InternalCollection.d.ts +0 -0
- /package/dist/lib/{core → modules/plugin/types}/InternalCollection.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleDevicesAdmin.js","sourceRoot":"","sources":["../../../../../lib/modules/device/roles/RoleDevicesAdmin.ts"],"names":[],"mappings":";;;AAEA
|
|
1
|
+
{"version":3,"file":"RoleDevicesAdmin.js","sourceRoot":"","sources":["../../../../../lib/modules/device/roles/RoleDevicesAdmin.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACU,QAAA,gBAAgB,GAAe;IAC1C,IAAI,EAAE,eAAe;IACrB,UAAU,EAAE;QACV,WAAW,EAAE;YACX,wBAAwB,EAAE;gBACxB,OAAO,EAAE;oBACP,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,GAAG,EAAE,IAAI;oBACT,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,IAAI;oBACjB,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,IAAI;oBACjB,cAAc,EAAE,IAAI;iBACrB;aACF;YACD,uBAAuB,EAAE;gBACvB,OAAO,EAAE;oBACP,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,IAAI;iBACnB;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -9,12 +9,15 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
9
9
|
actions: {
|
|
10
10
|
get: true,
|
|
11
11
|
search: true,
|
|
12
|
+
getMeasures: true,
|
|
13
|
+
exportMeasures: true,
|
|
12
14
|
},
|
|
13
15
|
},
|
|
14
16
|
"device-manager/models": {
|
|
15
17
|
actions: {
|
|
16
18
|
listDevices: true,
|
|
17
19
|
getDevice: true,
|
|
20
|
+
listMeasures: true,
|
|
18
21
|
},
|
|
19
22
|
},
|
|
20
23
|
}
|
|
@@ -11,12 +11,15 @@ exports.RoleDevicesReader = void 0;
|
|
|
11
11
|
actions: {
|
|
12
12
|
get: true,
|
|
13
13
|
search: true,
|
|
14
|
+
getMeasures: true,
|
|
15
|
+
exportMeasures: true,
|
|
14
16
|
},
|
|
15
17
|
},
|
|
16
18
|
"device-manager/models": {
|
|
17
19
|
actions: {
|
|
18
20
|
listDevices: true,
|
|
19
21
|
getDevice: true,
|
|
22
|
+
listMeasures: true,
|
|
20
23
|
},
|
|
21
24
|
},
|
|
22
25
|
}
|
|
@@ -29,12 +32,15 @@ exports.RoleDevicesReader = {
|
|
|
29
32
|
actions: {
|
|
30
33
|
get: true,
|
|
31
34
|
search: true,
|
|
35
|
+
getMeasures: true,
|
|
36
|
+
exportMeasures: true,
|
|
32
37
|
},
|
|
33
38
|
},
|
|
34
39
|
"device-manager/models": {
|
|
35
40
|
actions: {
|
|
36
41
|
listDevices: true,
|
|
37
42
|
getDevice: true,
|
|
43
|
+
listMeasures: true,
|
|
38
44
|
},
|
|
39
45
|
},
|
|
40
46
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleDevicesReader.js","sourceRoot":"","sources":["../../../../../lib/modules/device/roles/RoleDevicesReader.ts"],"names":[],"mappings":";;;AAEA
|
|
1
|
+
{"version":3,"file":"RoleDevicesReader.js","sourceRoot":"","sources":["../../../../../lib/modules/device/roles/RoleDevicesReader.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACU,QAAA,iBAAiB,GAAe;IAC3C,IAAI,EAAE,gBAAgB;IACtB,UAAU,EAAE;QACV,WAAW,EAAE;YACX,wBAAwB,EAAE;gBACxB,OAAO,EAAE;oBACP,GAAG,EAAE,IAAI;oBACT,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,IAAI;oBACjB,cAAc,EAAE,IAAI;iBACrB;aACF;YACD,uBAAuB,EAAE;gBACvB,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,IAAI;oBACf,YAAY,EAAE,IAAI;iBACnB;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -130,6 +130,26 @@ export type ApiDeviceGetMeasuresResult = {
|
|
|
130
130
|
measures: Array<KDocument<MeasureContent<JSONObject>>>;
|
|
131
131
|
total: number;
|
|
132
132
|
};
|
|
133
|
+
/**
|
|
134
|
+
* This action can be used only with WebSocket or POST
|
|
135
|
+
*
|
|
136
|
+
* Then the export can be download using HTTP Get and the following route:
|
|
137
|
+
* `/_/device-manager/:engineId/devices/:_id/measures/_export/:exportId`
|
|
138
|
+
*/
|
|
139
|
+
export interface ApiDeviceExportMeasuresRequest extends DevicesControllerRequest {
|
|
140
|
+
action: "exportMeasures";
|
|
141
|
+
_id: string;
|
|
142
|
+
startAt?: string;
|
|
143
|
+
endAt?: string;
|
|
144
|
+
type?: string;
|
|
145
|
+
body?: {
|
|
146
|
+
query?: JSONObject;
|
|
147
|
+
sort?: JSONObject;
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
export type ApiDeviceExportMeasuresResult = {
|
|
151
|
+
link: string;
|
|
152
|
+
};
|
|
133
153
|
export interface ApiDeviceReceiveMeasuresRequest<TMeasureValues extends JSONObject = JSONObject> extends DevicesControllerRequest {
|
|
134
154
|
action: "receiveMeasures";
|
|
135
155
|
_id: string;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { PassThrough } from "node:stream";
|
|
3
|
+
import { JSONObject, User } from "kuzzle";
|
|
4
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
5
|
+
import { MeasureContent } from "./exports";
|
|
6
|
+
type ExportOptions = {
|
|
7
|
+
sort?: JSONObject;
|
|
8
|
+
query?: JSONObject;
|
|
9
|
+
from?: number;
|
|
10
|
+
size?: number;
|
|
11
|
+
startAt?: string;
|
|
12
|
+
endAt?: string;
|
|
13
|
+
type?: string;
|
|
14
|
+
};
|
|
15
|
+
type ExportParams = {
|
|
16
|
+
query: JSONObject;
|
|
17
|
+
target: "asset" | "device";
|
|
18
|
+
model: string;
|
|
19
|
+
sort: JSONObject;
|
|
20
|
+
id: string;
|
|
21
|
+
};
|
|
22
|
+
export declare class MeasureExporter {
|
|
23
|
+
private plugin;
|
|
24
|
+
private engineId;
|
|
25
|
+
private target?;
|
|
26
|
+
private get sdk();
|
|
27
|
+
constructor(plugin: DeviceManagerPlugin, engineId: string, { target }?: {
|
|
28
|
+
target?: "asset" | "device";
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Searches for measures and return them in a standard JSON
|
|
32
|
+
*/
|
|
33
|
+
search(digitalTwinId: string, { size, from, endAt, startAt, query, sort, type, }: ExportOptions): Promise<{
|
|
34
|
+
measures: import("kuzzle").KHit<MeasureContent<any, any>>[];
|
|
35
|
+
total: number;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Prepare a measure export by saving the parameters in Redis.
|
|
39
|
+
*
|
|
40
|
+
* We need this method to process the export in 2 steps:
|
|
41
|
+
* - preparing the export with a POST or WebSocket request
|
|
42
|
+
* - download the export (only with a browser <a> link)
|
|
43
|
+
*
|
|
44
|
+
* Never return a rejected promise and write potential error on the stream
|
|
45
|
+
*/
|
|
46
|
+
prepareExport(user: User, digitalTwinId: string, { endAt, startAt, query, sort, type, }: ExportOptions): Promise<{
|
|
47
|
+
link: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Retrieve a prepared export and write each document as a CSV in the stream
|
|
51
|
+
*
|
|
52
|
+
* This method never returns a rejected promise, but write potential error in
|
|
53
|
+
* the stream.
|
|
54
|
+
*/
|
|
55
|
+
sendExport(stream: PassThrough, exportId: string): Promise<void>;
|
|
56
|
+
getExport(exportId: string): Promise<ExportParams>;
|
|
57
|
+
private exportRedisKey;
|
|
58
|
+
private prepareMeasureSearch;
|
|
59
|
+
private getEngine;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,166 @@
|
|
|
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.MeasureExporter = void 0;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const kuzzle_1 = require("kuzzle");
|
|
10
|
+
const sync_1 = require("csv-stringify/sync");
|
|
11
|
+
const plugin_1 = require("../plugin");
|
|
12
|
+
const shared_1 = require("../shared");
|
|
13
|
+
const TWO_MINUTES = 2 * 60;
|
|
14
|
+
class MeasureExporter {
|
|
15
|
+
get sdk() {
|
|
16
|
+
return this.plugin.context.accessors.sdk;
|
|
17
|
+
}
|
|
18
|
+
constructor(plugin, engineId, { target } = {}) {
|
|
19
|
+
this.plugin = plugin;
|
|
20
|
+
this.engineId = engineId;
|
|
21
|
+
this.target = target;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Searches for measures and return them in a standard JSON
|
|
25
|
+
*/
|
|
26
|
+
async search(digitalTwinId, { size = 25, from = 0, endAt, startAt, query, sort = { measuredAt: "desc" }, type, }) {
|
|
27
|
+
const { searchQuery } = await this.prepareMeasureSearch(digitalTwinId, startAt, endAt, query, type);
|
|
28
|
+
const result = await this.sdk.document.search(this.engineId, plugin_1.InternalCollection.MEASURES, { query: searchQuery, sort }, { from, lang: "koncorde", size: size });
|
|
29
|
+
return { measures: result.hits, total: result.total };
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Prepare a measure export by saving the parameters in Redis.
|
|
33
|
+
*
|
|
34
|
+
* We need this method to process the export in 2 steps:
|
|
35
|
+
* - preparing the export with a POST or WebSocket request
|
|
36
|
+
* - download the export (only with a browser <a> link)
|
|
37
|
+
*
|
|
38
|
+
* Never return a rejected promise and write potential error on the stream
|
|
39
|
+
*/
|
|
40
|
+
async prepareExport(user, digitalTwinId, { endAt, startAt, query, sort = { measuredAt: "desc" }, type, }) {
|
|
41
|
+
const { digitalTwin, searchQuery } = await this.prepareMeasureSearch(digitalTwinId, startAt, endAt, query, type);
|
|
42
|
+
const exportParams = {
|
|
43
|
+
id: digitalTwinId,
|
|
44
|
+
model: digitalTwin._source.model,
|
|
45
|
+
query: searchQuery,
|
|
46
|
+
sort,
|
|
47
|
+
target: this.target,
|
|
48
|
+
};
|
|
49
|
+
const exportId = (0, node_crypto_1.randomUUID)();
|
|
50
|
+
await this.sdk.ms.setex(this.exportRedisKey(exportId), JSON.stringify(exportParams), TWO_MINUTES);
|
|
51
|
+
let link = `/_/device-manager/${this.engineId}/${this.target}s/${digitalTwinId}/measures/_export/${exportId}`;
|
|
52
|
+
if (user._id !== "-1") {
|
|
53
|
+
const { result } = await this.sdk.as(user).query({
|
|
54
|
+
action: "createToken",
|
|
55
|
+
controller: "auth",
|
|
56
|
+
expiresIn: TWO_MINUTES * 1000,
|
|
57
|
+
singleUse: true,
|
|
58
|
+
});
|
|
59
|
+
link += `?jwt=${result.token}`;
|
|
60
|
+
}
|
|
61
|
+
return { link };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Retrieve a prepared export and write each document as a CSV in the stream
|
|
65
|
+
*
|
|
66
|
+
* This method never returns a rejected promise, but write potential error in
|
|
67
|
+
* the stream.
|
|
68
|
+
*/
|
|
69
|
+
async sendExport(stream, exportId) {
|
|
70
|
+
try {
|
|
71
|
+
const { query, sort, model, target } = await this.getExport(exportId);
|
|
72
|
+
let result = await this.sdk.document.search(this.engineId, plugin_1.InternalCollection.MEASURES, { query, sort }, { lang: "koncorde", size: 200 });
|
|
73
|
+
const engine = await this.getEngine();
|
|
74
|
+
const modelDocument = await (0, shared_1.ask)(`ask:device-manager:model:${target}:get`, {
|
|
75
|
+
engineGroup: engine.group,
|
|
76
|
+
model,
|
|
77
|
+
});
|
|
78
|
+
const columns = [
|
|
79
|
+
"measuredAt",
|
|
80
|
+
"type",
|
|
81
|
+
"origin._id",
|
|
82
|
+
"origin.deviceModel",
|
|
83
|
+
"asset._id",
|
|
84
|
+
"asset.model",
|
|
85
|
+
...modelDocument[target].measures.map((m) => `values.${m.name}`),
|
|
86
|
+
];
|
|
87
|
+
stream.write((0, sync_1.stringify)([["_id", ...columns]]));
|
|
88
|
+
while (result) {
|
|
89
|
+
for (const hit of result.hits) {
|
|
90
|
+
stream.write((0, sync_1.stringify)([
|
|
91
|
+
[
|
|
92
|
+
hit._id,
|
|
93
|
+
...columns.map((column) => lodash_1.default.get(hit._source, column, null)),
|
|
94
|
+
],
|
|
95
|
+
]));
|
|
96
|
+
}
|
|
97
|
+
result = await result.next();
|
|
98
|
+
}
|
|
99
|
+
await this.sdk.ms.del(this.exportRedisKey(exportId));
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
stream.write(error.message);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
stream.end();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async getExport(exportId) {
|
|
109
|
+
const exportParams = await this.sdk.ms.get(this.exportRedisKey(exportId));
|
|
110
|
+
if (!exportParams) {
|
|
111
|
+
throw new kuzzle_1.NotFoundError(`Export "${exportId}" not found or expired.`);
|
|
112
|
+
}
|
|
113
|
+
return JSON.parse(exportParams);
|
|
114
|
+
}
|
|
115
|
+
exportRedisKey(exportId) {
|
|
116
|
+
return `exports:measures:${this.engineId}:${exportId}`;
|
|
117
|
+
}
|
|
118
|
+
async prepareMeasureSearch(digitalTwinId, startAt, endAt, query, type) {
|
|
119
|
+
if (!this.target) {
|
|
120
|
+
throw new kuzzle_1.InternalError('Missing "target" parameter');
|
|
121
|
+
}
|
|
122
|
+
const digitalTwin = await this.sdk.document.get(this.engineId, this.target === "asset"
|
|
123
|
+
? plugin_1.InternalCollection.ASSETS
|
|
124
|
+
: plugin_1.InternalCollection.DEVICES, digitalTwinId);
|
|
125
|
+
const measuredAtRange = {
|
|
126
|
+
range: {
|
|
127
|
+
measuredAt: {
|
|
128
|
+
gte: 0,
|
|
129
|
+
lte: Number.MAX_SAFE_INTEGER,
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
if (startAt) {
|
|
134
|
+
measuredAtRange.range.measuredAt.gte = new Date(startAt).getTime();
|
|
135
|
+
}
|
|
136
|
+
if (endAt) {
|
|
137
|
+
measuredAtRange.range.measuredAt.lte = new Date(endAt).getTime();
|
|
138
|
+
}
|
|
139
|
+
const searchQuery = {
|
|
140
|
+
and: [measuredAtRange],
|
|
141
|
+
};
|
|
142
|
+
if (this.target === "asset") {
|
|
143
|
+
searchQuery.and.push({
|
|
144
|
+
equals: { "asset._id": digitalTwinId },
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
searchQuery.and.push({
|
|
149
|
+
equals: { "origin._id": digitalTwinId },
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (type) {
|
|
153
|
+
searchQuery.and.push({ equals: { type } });
|
|
154
|
+
}
|
|
155
|
+
if (query) {
|
|
156
|
+
searchQuery.and.push(query);
|
|
157
|
+
}
|
|
158
|
+
return { digitalTwin, searchQuery };
|
|
159
|
+
}
|
|
160
|
+
async getEngine() {
|
|
161
|
+
const engine = await this.sdk.document.get(this.plugin.config.adminIndex, plugin_1.InternalCollection.CONFIG, `engine-device-manager--${this.engineId}`);
|
|
162
|
+
return engine._source.engine;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.MeasureExporter = MeasureExporter;
|
|
166
|
+
//# sourceMappingURL=MeasureExporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeasureExporter.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureExporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSONObject, KDocument } from "kuzzle";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { DeviceContent } from "../device";
|
|
3
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
4
4
|
import { Metadata } from "../shared";
|
|
5
5
|
import { DecodedMeasurement } from "./types/MeasureContent";
|
|
6
6
|
export declare class MeasureService {
|
|
@@ -20,12 +20,17 @@ export declare class MeasureService {
|
|
|
20
20
|
*
|
|
21
21
|
* This method represents the ingestion pipeline:
|
|
22
22
|
* - build measures documents and update digital twins (device and asset)
|
|
23
|
-
* - trigger events
|
|
23
|
+
* - trigger events `before` (measure enrichment)
|
|
24
24
|
* - save documents (measures, device and asset)
|
|
25
|
-
* - trigger events
|
|
25
|
+
* - trigger events `after`
|
|
26
26
|
*/
|
|
27
27
|
ingest(device: KDocument<DeviceContent>, measurements: DecodedMeasurement<JSONObject>[], metadata: Metadata, payloadUuids: string[]): Promise<void>;
|
|
28
28
|
private updateDeviceMeasures;
|
|
29
|
+
/**
|
|
30
|
+
* Update asset with each non-null non-computed measures.
|
|
31
|
+
*
|
|
32
|
+
* @returns A map of each asset state by measuredAt timestamp.
|
|
33
|
+
*/
|
|
29
34
|
private updateAssetMeasures;
|
|
30
35
|
/**
|
|
31
36
|
* Build the measures documents to save
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.MeasureService = void 0;
|
|
7
7
|
const kuzzle_1 = require("kuzzle");
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const core_1 = require("../../core");
|
|
10
|
-
const shared_1 = require("../shared");
|
|
11
9
|
const asset_1 = require("../asset");
|
|
10
|
+
const plugin_1 = require("../plugin");
|
|
11
|
+
const shared_1 = require("../shared");
|
|
12
12
|
class MeasureService {
|
|
13
13
|
get sdk() {
|
|
14
14
|
return this.context.accessors.sdk;
|
|
@@ -34,9 +34,9 @@ class MeasureService {
|
|
|
34
34
|
*
|
|
35
35
|
* This method represents the ingestion pipeline:
|
|
36
36
|
* - build measures documents and update digital twins (device and asset)
|
|
37
|
-
* - trigger events
|
|
37
|
+
* - trigger events `before` (measure enrichment)
|
|
38
38
|
* - save documents (measures, device and asset)
|
|
39
|
-
* - trigger events
|
|
39
|
+
* - trigger events `after`
|
|
40
40
|
*/
|
|
41
41
|
async ingest(device, measurements, metadata, payloadUuids) {
|
|
42
42
|
await (0, shared_1.lock)(`measure:ingest:${device._id}`, async () => {
|
|
@@ -65,23 +65,24 @@ class MeasureService {
|
|
|
65
65
|
await this.app.trigger(`engine:${engineId}:device-manager:measures:process:before`, { asset, device, measures });
|
|
66
66
|
}
|
|
67
67
|
await this.updateDeviceMeasures(device, measures);
|
|
68
|
+
let assetStates = new Map();
|
|
68
69
|
if (asset) {
|
|
69
|
-
await this.updateAssetMeasures(asset, measures);
|
|
70
|
+
assetStates = await this.updateAssetMeasures(asset, measures);
|
|
70
71
|
}
|
|
71
72
|
const promises = [];
|
|
72
73
|
promises.push(this.sdk.document
|
|
73
|
-
.update(this.config.adminIndex,
|
|
74
|
+
.update(this.config.adminIndex, plugin_1.InternalCollection.DEVICES, device._id, device._source)
|
|
74
75
|
.catch((error) => {
|
|
75
76
|
throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update device "${device._id}": ${error.message}`));
|
|
76
77
|
}));
|
|
77
78
|
if (engineId) {
|
|
78
79
|
promises.push(this.sdk.document
|
|
79
|
-
.update(engineId,
|
|
80
|
+
.update(engineId, plugin_1.InternalCollection.DEVICES, device._id, device._source)
|
|
80
81
|
.catch((error) => {
|
|
81
82
|
throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update engine device "${device._id}": ${error.message}`));
|
|
82
83
|
}));
|
|
83
84
|
promises.push(this.sdk.document
|
|
84
|
-
.mCreate(engineId,
|
|
85
|
+
.mCreate(engineId, plugin_1.InternalCollection.MEASURES, measures.map((measure) => ({ body: measure })))
|
|
85
86
|
.then(({ errors }) => {
|
|
86
87
|
if (errors.length !== 0) {
|
|
87
88
|
throw new kuzzle_1.BadRequestError(`Cannot save measures: ${errors[0].reason}`);
|
|
@@ -92,28 +93,11 @@ class MeasureService {
|
|
|
92
93
|
// to the same asset and get processed at the same time
|
|
93
94
|
// asset measures update could be protected by mutex
|
|
94
95
|
promises.push(this.sdk.document
|
|
95
|
-
.update(engineId,
|
|
96
|
-
.then(async (updatedAsset) => {
|
|
97
|
-
const event = {
|
|
98
|
-
measure: {
|
|
99
|
-
// Filter measures who are not in the asset device link
|
|
100
|
-
names: measures
|
|
101
|
-
.filter((m) => Boolean(m.asset?.measureName))
|
|
102
|
-
.map((m) => m.asset?.measureName),
|
|
103
|
-
},
|
|
104
|
-
name: "measure",
|
|
105
|
-
};
|
|
106
|
-
const changes = (0, shared_1.objectDiff)(originalAssetMetadata, updatedAsset._source.metadata);
|
|
107
|
-
if (changes.length !== 0) {
|
|
108
|
-
event.metadata = {
|
|
109
|
-
names: changes,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
await (0, shared_1.ask)("ask:device-manager:asset:history:add", { asset: updatedAsset, engineId, event });
|
|
113
|
-
})
|
|
96
|
+
.update(engineId, plugin_1.InternalCollection.ASSETS, asset._id, asset._source)
|
|
114
97
|
.catch((error) => {
|
|
115
98
|
throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update asset "${asset._id}": ${error.message}`));
|
|
116
99
|
}));
|
|
100
|
+
promises.push(historizeAssetStates(assetStates, engineId, originalAssetMetadata, asset._source.metadata));
|
|
117
101
|
}
|
|
118
102
|
}
|
|
119
103
|
await Promise.all(promises);
|
|
@@ -158,7 +142,15 @@ class MeasureService {
|
|
|
158
142
|
};
|
|
159
143
|
}
|
|
160
144
|
}
|
|
145
|
+
// @todo there shouldn't be any logic related to asset historization here, but no other choices for now. It needs to be re-architected
|
|
146
|
+
/**
|
|
147
|
+
* Update asset with each non-null non-computed measures.
|
|
148
|
+
*
|
|
149
|
+
* @returns A map of each asset state by measuredAt timestamp.
|
|
150
|
+
*/
|
|
161
151
|
updateAssetMeasures(asset, measurements) {
|
|
152
|
+
// We use a Map in order to preserve the insertion order to avoid another sort
|
|
153
|
+
const assetStates = new Map();
|
|
162
154
|
if (!asset._source.measures) {
|
|
163
155
|
asset._source.measures = {};
|
|
164
156
|
}
|
|
@@ -188,7 +180,9 @@ class MeasureService {
|
|
|
188
180
|
type: measurement.type,
|
|
189
181
|
values: measurement.values,
|
|
190
182
|
};
|
|
183
|
+
assetStates.set(measurement.measuredAt, JSON.parse(JSON.stringify(asset)));
|
|
191
184
|
}
|
|
185
|
+
return assetStates;
|
|
192
186
|
}
|
|
193
187
|
/**
|
|
194
188
|
* Build the measures documents to save
|
|
@@ -217,14 +211,14 @@ class MeasureService {
|
|
|
217
211
|
};
|
|
218
212
|
measures.push(measureContent);
|
|
219
213
|
}
|
|
220
|
-
return measures;
|
|
214
|
+
return measures.sort((measureA, measureB) => measureA.measuredAt - measureB.measuredAt);
|
|
221
215
|
}
|
|
222
216
|
async tryGetLinkedAsset(engineId, assetId) {
|
|
223
217
|
if (!assetId) {
|
|
224
218
|
return null;
|
|
225
219
|
}
|
|
226
220
|
try {
|
|
227
|
-
const asset = await this.sdk.document.get(engineId,
|
|
221
|
+
const asset = await this.sdk.document.get(engineId, plugin_1.InternalCollection.ASSETS, assetId);
|
|
228
222
|
return asset;
|
|
229
223
|
}
|
|
230
224
|
catch (error) {
|
|
@@ -252,4 +246,45 @@ class MeasureService {
|
|
|
252
246
|
}
|
|
253
247
|
}
|
|
254
248
|
exports.MeasureService = MeasureService;
|
|
249
|
+
/**
|
|
250
|
+
* Create a new document in the collection asset-history, for each asset states
|
|
251
|
+
*/
|
|
252
|
+
async function historizeAssetStates(assetStates, engineId, originalAssetMetadata, assetMetadata) {
|
|
253
|
+
const metadataChanges = (0, shared_1.objectDiff)(originalAssetMetadata, assetMetadata);
|
|
254
|
+
const lastTimestampRecorded = Array.from(assetStates.keys()).pop();
|
|
255
|
+
const histories = [];
|
|
256
|
+
for (const [measuredAt, assetState] of assetStates) {
|
|
257
|
+
const measureNames = [];
|
|
258
|
+
for (const measure of Object.values(assetState._source.measures)) {
|
|
259
|
+
if (measure.measuredAt === measuredAt) {
|
|
260
|
+
measureNames.push(measure.name);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const event = {
|
|
264
|
+
measure: {
|
|
265
|
+
names: measureNames,
|
|
266
|
+
},
|
|
267
|
+
name: "measure",
|
|
268
|
+
};
|
|
269
|
+
assetState._source.metadata = originalAssetMetadata;
|
|
270
|
+
if (metadataChanges.length !== 0 && measuredAt === lastTimestampRecorded) {
|
|
271
|
+
event.metadata = {
|
|
272
|
+
names: metadataChanges,
|
|
273
|
+
};
|
|
274
|
+
assetState._source.metadata = assetMetadata;
|
|
275
|
+
}
|
|
276
|
+
histories.push({
|
|
277
|
+
asset: assetState._source,
|
|
278
|
+
event,
|
|
279
|
+
id: assetState._id,
|
|
280
|
+
timestamp: measuredAt,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return (0, shared_1.ask)("ask:device-manager:asset:history:add", {
|
|
284
|
+
engineId,
|
|
285
|
+
// Reverse order because for now, measuredAt are sorted in ascending order
|
|
286
|
+
// While in mCreate the last item will be the first document to be created
|
|
287
|
+
histories: histories.reverse(),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
255
290
|
//# sourceMappingURL=MeasureService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":";;;;;;AAAA,mCAMgB;AAChB,oDAAuB;AAEvB,
|
|
1
|
+
{"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.measuresMappings = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base mappings for the "measures" collection.
|
|
6
|
+
*
|
|
7
|
+
* Those mappings does not contains the `values` mappings and `asset.metadata` mappings.
|
|
8
|
+
*/
|
|
4
9
|
exports.measuresMappings = {
|
|
5
10
|
dynamic: "strict",
|
|
6
11
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measuresMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/collections/measuresMappings.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"measuresMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/collections/measuresMappings.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEzB,MAAM,EAAE;YACN,UAAU,EAAE;YACV,yCAAyC;aAC1C;SACF;QAED;;WAEG;QACH,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAE5B,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,QAAQ,EAAE;oBACR,UAAU,EAAE;oBACV,gDAAgD;qBACjD;iBACF;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEjC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAE9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACzB;SACF;KACF;CACF,CAAC"}
|
|
@@ -20,4 +20,5 @@ __exportStar(require("./types/MeasureDefinition"), exports);
|
|
|
20
20
|
__exportStar(require("./measures"), exports);
|
|
21
21
|
__exportStar(require("./roles/RoleMeasuresAdmin"), exports);
|
|
22
22
|
__exportStar(require("./roles/RoleMeasuresReader"), exports);
|
|
23
|
+
__exportStar(require("./collections/measuresMappings"), exports);
|
|
23
24
|
//# sourceMappingURL=exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../lib/modules/measure/exports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,6CAA2B;AAC3B,4DAA0C;AAC1C,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../lib/modules/measure/exports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,6CAA2B;AAC3B,4DAA0C;AAC1C,6DAA2C;AAC3C,iEAA+C"}
|
|
@@ -23,4 +23,5 @@ __exportStar(require("./MeasureModule"), exports);
|
|
|
23
23
|
__exportStar(require("./roles/RoleMeasuresAdmin"), exports);
|
|
24
24
|
__exportStar(require("./roles/RoleMeasuresReader"), exports);
|
|
25
25
|
__exportStar(require("./collections/getEmbeddedMeasureMappings"), exports);
|
|
26
|
+
__exportStar(require("./MeasureExporter"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/measure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,6CAA2B;AAC3B,kDAAgC;AAChC,4DAA0C;AAC1C,6DAA2C;AAC3C,2EAAyD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/measure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,6CAA2B;AAC3B,kDAAgC;AAChC,4DAA0C;AAC1C,6DAA2C;AAC3C,2EAAyD;AACzD,oDAAkC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
2
|
-
import { DeviceManagerPlugin } from "
|
|
2
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
3
3
|
import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./types/ModelContent";
|
|
4
4
|
export declare class ModelService {
|
|
5
5
|
private config;
|