kuzzle-device-manager 2.0.0-rc8 → 2.0.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.
Files changed (373) hide show
  1. package/dist/features/fixtures/application/app.d.ts +1 -0
  2. package/dist/features/fixtures/application/app.js +70 -0
  3. package/dist/features/fixtures/application/app.js.map +1 -0
  4. package/dist/features/fixtures/application/assets/Container.d.ts +1 -0
  5. package/dist/features/fixtures/application/assets/Container.js +14 -0
  6. package/dist/features/fixtures/application/assets/Container.js.map +1 -0
  7. package/dist/features/fixtures/application/decoders/DummyTempDecoder.d.ts +11 -0
  8. package/dist/features/fixtures/application/decoders/DummyTempDecoder.js +51 -0
  9. package/dist/features/fixtures/application/decoders/DummyTempDecoder.js.map +1 -0
  10. package/dist/features/fixtures/application/decoders/DummyTempPositionDecoder.d.ts +16 -0
  11. package/dist/features/fixtures/application/decoders/DummyTempPositionDecoder.js +49 -0
  12. package/dist/features/fixtures/application/decoders/DummyTempPositionDecoder.js.map +1 -0
  13. package/dist/features/fixtures/application/decoders/index.d.ts +2 -0
  14. package/{lib/utils → dist/features/fixtures/application/decoders}/index.js +2 -1
  15. package/dist/features/fixtures/application/decoders/index.js.map +1 -0
  16. package/dist/features/fixtures/application/testPipes.d.ts +2 -0
  17. package/dist/features/fixtures/application/testPipes.js +75 -0
  18. package/dist/features/fixtures/application/testPipes.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.js +24 -0
  21. package/dist/index.js.map +1 -0
  22. package/{lib/types → dist/lib/core}/DeviceManagerConfiguration.d.ts +17 -8
  23. package/{lib/types → dist/lib/core}/DeviceManagerConfiguration.js +0 -0
  24. package/dist/lib/core/DeviceManagerConfiguration.js.map +1 -0
  25. package/dist/lib/core/DeviceManagerEngine.d.ts +32 -0
  26. package/dist/lib/core/DeviceManagerEngine.js +162 -0
  27. package/dist/lib/core/DeviceManagerEngine.js.map +1 -0
  28. package/dist/lib/core/DeviceManagerPlugin.d.ts +115 -0
  29. package/dist/lib/core/DeviceManagerPlugin.js +336 -0
  30. package/dist/lib/core/DeviceManagerPlugin.js.map +1 -0
  31. package/dist/lib/core/InternalCollection.d.ts +8 -0
  32. package/{lib → dist/lib/core}/InternalCollection.js +3 -0
  33. package/dist/lib/core/InternalCollection.js.map +1 -0
  34. package/dist/lib/core/exports.d.ts +2 -0
  35. package/{lib/models/index.js → dist/lib/core/exports.js} +3 -3
  36. package/dist/lib/core/exports.js.map +1 -0
  37. package/dist/lib/core/index.d.ts +4 -0
  38. package/dist/lib/core/index.js +21 -0
  39. package/dist/lib/core/index.js.map +1 -0
  40. package/{lib/core-classes → dist/lib/core}/registers/DecodersRegister.d.ts +6 -13
  41. package/{lib/core-classes → dist/lib/core}/registers/DecodersRegister.js +45 -66
  42. package/dist/lib/core/registers/DecodersRegister.js.map +1 -0
  43. package/dist/lib/core/registers/ModelsRegister.d.ts +18 -0
  44. package/dist/lib/core/registers/ModelsRegister.js +66 -0
  45. package/dist/lib/core/registers/ModelsRegister.js.map +1 -0
  46. package/dist/lib/modules/asset/AssetHistoryService.d.ts +11 -0
  47. package/dist/lib/modules/asset/AssetHistoryService.js +24 -0
  48. package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -0
  49. package/dist/lib/modules/asset/AssetModule.d.ts +7 -0
  50. package/dist/lib/modules/asset/AssetModule.js +21 -0
  51. package/dist/lib/modules/asset/AssetModule.js.map +1 -0
  52. package/dist/lib/modules/asset/AssetService.d.ts +50 -0
  53. package/dist/lib/modules/asset/AssetService.js +137 -0
  54. package/dist/lib/modules/asset/AssetService.js.map +1 -0
  55. package/dist/lib/modules/asset/AssetsController.d.ts +14 -0
  56. package/dist/lib/modules/asset/AssetsController.js +119 -0
  57. package/dist/lib/modules/asset/AssetsController.js.map +1 -0
  58. package/dist/lib/modules/asset/collections/assetsHistoryMappings.d.ts +63 -0
  59. package/dist/lib/modules/asset/collections/assetsHistoryMappings.js +48 -0
  60. package/dist/lib/modules/asset/collections/assetsHistoryMappings.js.map +1 -0
  61. package/dist/lib/modules/asset/collections/assetsMappings.d.ts +44 -0
  62. package/dist/lib/modules/asset/collections/assetsMappings.js +38 -0
  63. package/dist/lib/modules/asset/collections/assetsMappings.js.map +1 -0
  64. package/dist/lib/modules/asset/exports.d.ts +6 -0
  65. package/{index.js → dist/lib/modules/asset/exports.js} +7 -6
  66. package/dist/lib/modules/asset/exports.js.map +1 -0
  67. package/dist/lib/modules/asset/index.d.ts +10 -0
  68. package/dist/lib/modules/asset/index.js +27 -0
  69. package/dist/lib/modules/asset/index.js.map +1 -0
  70. package/dist/lib/modules/asset/model/AssetSerializer.d.ts +10 -0
  71. package/dist/lib/modules/asset/model/AssetSerializer.js +31 -0
  72. package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -0
  73. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.d.ts +22 -0
  74. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +43 -0
  75. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -0
  76. package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +21 -0
  77. package/dist/lib/modules/asset/roles/RoleAssetsReader.js +42 -0
  78. package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -0
  79. package/dist/lib/modules/asset/types/AssetApi.d.ts +58 -0
  80. package/{lib/types/Request.js → dist/lib/modules/asset/types/AssetApi.js} +1 -1
  81. package/dist/lib/modules/asset/types/AssetApi.js.map +1 -0
  82. package/dist/lib/modules/asset/types/AssetContent.d.ts +44 -0
  83. package/{lib/types/DecodedPayload.js → dist/lib/modules/asset/types/AssetContent.js} +1 -1
  84. package/dist/lib/modules/asset/types/AssetContent.js.map +1 -0
  85. package/dist/lib/modules/asset/types/AssetEvents.d.ts +30 -0
  86. package/dist/lib/modules/asset/types/AssetEvents.js +3 -0
  87. package/dist/lib/modules/asset/types/AssetEvents.js.map +1 -0
  88. package/dist/lib/modules/asset/types/AssetHistoryContent.d.ts +50 -0
  89. package/dist/lib/modules/asset/types/AssetHistoryContent.js +3 -0
  90. package/dist/lib/modules/asset/types/AssetHistoryContent.js.map +1 -0
  91. package/dist/lib/modules/decoder/DecodedPayload.d.ts +47 -0
  92. package/dist/lib/modules/decoder/DecodedPayload.js +82 -0
  93. package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -0
  94. package/{lib/core-classes → dist/lib/modules/decoder}/Decoder.d.ts +30 -19
  95. package/{lib/core-classes → dist/lib/modules/decoder}/Decoder.js +40 -17
  96. package/dist/lib/modules/decoder/Decoder.js.map +1 -0
  97. package/dist/lib/modules/decoder/DecoderModule.d.ts +8 -0
  98. package/dist/lib/modules/decoder/DecoderModule.js +29 -0
  99. package/dist/lib/modules/decoder/DecoderModule.js.map +1 -0
  100. package/dist/lib/modules/decoder/DecodersController.d.ts +18 -0
  101. package/dist/lib/modules/decoder/DecodersController.js +44 -0
  102. package/dist/lib/modules/decoder/DecodersController.js.map +1 -0
  103. package/dist/lib/modules/decoder/PayloadService.d.ts +34 -0
  104. package/dist/lib/modules/decoder/PayloadService.js +136 -0
  105. package/dist/lib/modules/decoder/PayloadService.js.map +1 -0
  106. package/dist/lib/modules/decoder/PayloadsController.d.ts +11 -0
  107. package/dist/lib/modules/decoder/PayloadsController.js +56 -0
  108. package/dist/lib/modules/decoder/PayloadsController.js.map +1 -0
  109. package/{lib/mappings → dist/lib/modules/decoder/collections}/payloadsMappings.d.ts +0 -4
  110. package/dist/lib/modules/decoder/collections/payloadsMappings.js +16 -0
  111. package/dist/lib/modules/decoder/collections/payloadsMappings.js.map +1 -0
  112. package/dist/lib/modules/decoder/exports.d.ts +6 -0
  113. package/{lib/types/index.js → dist/lib/modules/decoder/exports.js} +6 -7
  114. package/dist/lib/modules/decoder/exports.js.map +1 -0
  115. package/dist/lib/modules/decoder/index.d.ts +8 -0
  116. package/{lib/core-classes → dist/lib/modules/decoder}/index.js +7 -8
  117. package/dist/lib/modules/decoder/index.js.map +1 -0
  118. package/dist/lib/modules/decoder/roles/RoleDecodersAdmin.d.ts +14 -0
  119. package/dist/lib/modules/decoder/roles/RoleDecodersAdmin.js +28 -0
  120. package/dist/lib/modules/decoder/roles/RoleDecodersAdmin.js.map +1 -0
  121. package/dist/lib/modules/decoder/roles/RolePayloadsAll.d.ts +12 -0
  122. package/dist/lib/modules/decoder/roles/RolePayloadsAll.js +26 -0
  123. package/dist/lib/modules/decoder/roles/RolePayloadsAll.js.map +1 -0
  124. package/dist/lib/modules/decoder/types/DecoderApi.d.ts +19 -0
  125. package/dist/lib/modules/decoder/types/DecoderApi.js +3 -0
  126. package/dist/lib/modules/decoder/types/DecoderApi.js.map +1 -0
  127. package/dist/lib/modules/decoder/types/DecoderContent.d.ts +5 -0
  128. package/{lib → dist/lib/modules/decoder}/types/DecoderContent.js +0 -0
  129. package/dist/lib/modules/decoder/types/DecoderContent.js.map +1 -0
  130. package/dist/lib/modules/decoder/types/PayloadApi.d.ts +11 -0
  131. package/dist/lib/modules/decoder/types/PayloadApi.js +3 -0
  132. package/dist/lib/modules/decoder/types/PayloadApi.js.map +1 -0
  133. package/dist/lib/modules/device/DeviceModule.d.ts +6 -0
  134. package/dist/lib/modules/device/DeviceModule.js +22 -0
  135. package/dist/lib/modules/device/DeviceModule.js.map +1 -0
  136. package/dist/lib/modules/device/DeviceService.d.ts +85 -0
  137. package/dist/lib/modules/device/DeviceService.js +282 -0
  138. package/dist/lib/modules/device/DeviceService.js.map +1 -0
  139. package/dist/lib/modules/device/DevicesController.d.ts +32 -0
  140. package/dist/lib/modules/device/DevicesController.js +183 -0
  141. package/dist/lib/modules/device/DevicesController.js.map +1 -0
  142. package/{lib/mappings → dist/lib/modules/device/collections}/deviceMappings.d.ts +14 -15
  143. package/dist/lib/modules/device/collections/deviceMappings.js +35 -0
  144. package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -0
  145. package/dist/lib/modules/device/exports.d.ts +6 -0
  146. package/dist/lib/modules/device/exports.js +23 -0
  147. package/dist/lib/modules/device/exports.js.map +1 -0
  148. package/dist/lib/modules/device/index.d.ts +9 -0
  149. package/dist/lib/modules/device/index.js +26 -0
  150. package/dist/lib/modules/device/index.js.map +1 -0
  151. package/dist/lib/modules/device/model/DeviceSerializer.d.ts +6 -0
  152. package/dist/lib/modules/device/model/DeviceSerializer.js +16 -0
  153. package/dist/lib/modules/device/model/DeviceSerializer.js.map +1 -0
  154. package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +27 -0
  155. package/dist/lib/modules/device/roles/RoleDevicesAdmin.js +54 -0
  156. package/dist/lib/modules/device/roles/RoleDevicesAdmin.js.map +1 -0
  157. package/dist/lib/modules/device/roles/RoleDevicesPlatformAdmin.d.ts +21 -0
  158. package/dist/lib/modules/device/roles/RoleDevicesPlatformAdmin.js +42 -0
  159. package/dist/lib/modules/device/roles/RoleDevicesPlatformAdmin.js.map +1 -0
  160. package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +21 -0
  161. package/dist/lib/modules/device/roles/RoleDevicesReader.js +41 -0
  162. package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -0
  163. package/dist/lib/modules/device/types/DeviceApi.d.ts +97 -0
  164. package/dist/lib/modules/device/types/DeviceApi.js +3 -0
  165. package/dist/lib/modules/device/types/DeviceApi.js.map +1 -0
  166. package/dist/lib/modules/device/types/DeviceContent.d.ts +14 -0
  167. package/{lib → dist/lib/modules/device}/types/DeviceContent.js +0 -0
  168. package/dist/lib/modules/device/types/DeviceContent.js.map +1 -0
  169. package/dist/lib/modules/device/types/DeviceEvents.d.ts +28 -0
  170. package/dist/lib/modules/device/types/DeviceEvents.js +3 -0
  171. package/dist/lib/modules/device/types/DeviceEvents.js.map +1 -0
  172. package/dist/lib/modules/measure/MeasureModule.d.ts +5 -0
  173. package/dist/lib/modules/measure/MeasureModule.js +16 -0
  174. package/dist/lib/modules/measure/MeasureModule.js.map +1 -0
  175. package/dist/lib/modules/measure/MeasureService.d.ts +40 -0
  176. package/dist/lib/modules/measure/MeasureService.js +259 -0
  177. package/dist/lib/modules/measure/MeasureService.js.map +1 -0
  178. package/dist/lib/modules/measure/collections/measuresMappings.d.ts +61 -0
  179. package/dist/lib/modules/measure/collections/measuresMappings.js +45 -0
  180. package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -0
  181. package/dist/lib/modules/measure/exports.d.ts +6 -0
  182. package/dist/lib/modules/measure/exports.js +23 -0
  183. package/dist/lib/modules/measure/exports.js.map +1 -0
  184. package/dist/lib/modules/measure/index.d.ts +8 -0
  185. package/dist/lib/modules/measure/index.js +25 -0
  186. package/dist/lib/modules/measure/index.js.map +1 -0
  187. package/dist/lib/modules/measure/measures/BatteryMeasure.d.ts +5 -0
  188. package/dist/lib/modules/measure/measures/BatteryMeasure.js +7 -0
  189. package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +1 -0
  190. package/dist/lib/modules/measure/measures/HumidityMeasure.d.ts +5 -0
  191. package/dist/lib/modules/measure/measures/HumidityMeasure.js +7 -0
  192. package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +1 -0
  193. package/dist/lib/modules/measure/measures/MovementMeasure.d.ts +5 -0
  194. package/dist/lib/modules/measure/measures/MovementMeasure.js +7 -0
  195. package/dist/lib/modules/measure/measures/MovementMeasure.js.map +1 -0
  196. package/dist/lib/modules/measure/measures/PositionMeasure.d.ts +10 -0
  197. package/dist/lib/modules/measure/measures/PositionMeasure.js +11 -0
  198. package/dist/lib/modules/measure/measures/PositionMeasure.js.map +1 -0
  199. package/dist/lib/modules/measure/measures/TemperatureMeasure.d.ts +5 -0
  200. package/dist/lib/modules/measure/measures/TemperatureMeasure.js +7 -0
  201. package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +1 -0
  202. package/dist/lib/modules/measure/measures/index.d.ts +5 -0
  203. package/{lib → dist/lib/modules/measure}/measures/index.js +0 -0
  204. package/dist/lib/modules/measure/measures/index.js.map +1 -0
  205. package/dist/lib/modules/measure/roles/RoleMeasuresAdmin.d.ts +16 -0
  206. package/dist/lib/modules/measure/roles/RoleMeasuresAdmin.js +32 -0
  207. package/dist/lib/modules/measure/roles/RoleMeasuresAdmin.js.map +1 -0
  208. package/dist/lib/modules/measure/roles/RoleMeasuresReader.d.ts +14 -0
  209. package/dist/lib/modules/measure/roles/RoleMeasuresReader.js +28 -0
  210. package/dist/lib/modules/measure/roles/RoleMeasuresReader.js.map +1 -0
  211. package/dist/lib/modules/measure/types/MeasureContent.d.ts +82 -0
  212. package/dist/lib/modules/measure/types/MeasureContent.js +3 -0
  213. package/dist/lib/modules/measure/types/MeasureContent.js.map +1 -0
  214. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +15 -0
  215. package/{lib/types/measures → dist/lib/modules/measure/types}/MeasureDefinition.js +0 -0
  216. package/dist/lib/modules/measure/types/MeasureDefinition.js.map +1 -0
  217. package/dist/lib/modules/measure/types/MeasureEvents.d.ts +66 -0
  218. package/dist/lib/modules/measure/types/MeasureEvents.js +3 -0
  219. package/dist/lib/modules/measure/types/MeasureEvents.js.map +1 -0
  220. package/dist/lib/modules/model/ModelModule.d.ts +6 -0
  221. package/dist/lib/modules/model/ModelModule.js +15 -0
  222. package/dist/lib/modules/model/ModelModule.js.map +1 -0
  223. package/dist/lib/modules/model/ModelSerializer.d.ts +5 -0
  224. package/dist/lib/modules/model/ModelSerializer.js +32 -0
  225. package/dist/lib/modules/model/ModelSerializer.js.map +1 -0
  226. package/dist/lib/modules/model/ModelService.d.ts +24 -0
  227. package/dist/lib/modules/model/ModelService.js +153 -0
  228. package/dist/lib/modules/model/ModelService.js.map +1 -0
  229. package/dist/lib/modules/model/ModelsController.d.ts +17 -0
  230. package/dist/lib/modules/model/ModelsController.js +109 -0
  231. package/dist/lib/modules/model/ModelsController.js.map +1 -0
  232. package/dist/lib/modules/model/collections/modelsMappings.d.ts +2 -0
  233. package/dist/lib/modules/model/collections/modelsMappings.js +68 -0
  234. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -0
  235. package/dist/lib/modules/model/exports.d.ts +3 -0
  236. package/{lib/controllers/index.js → dist/lib/modules/model/exports.js} +4 -4
  237. package/dist/lib/modules/model/exports.js.map +1 -0
  238. package/dist/lib/modules/model/index.d.ts +7 -0
  239. package/dist/lib/modules/model/index.js +24 -0
  240. package/dist/lib/modules/model/index.js.map +1 -0
  241. package/dist/lib/modules/model/types/ModelApi.d.ts +72 -0
  242. package/dist/lib/modules/model/types/ModelApi.js +3 -0
  243. package/dist/lib/modules/model/types/ModelApi.js.map +1 -0
  244. package/dist/lib/modules/model/types/ModelContent.d.ts +97 -0
  245. package/dist/lib/modules/model/types/ModelContent.js +3 -0
  246. package/dist/lib/modules/model/types/ModelContent.js.map +1 -0
  247. package/dist/lib/modules/model/types/ModelDefinition.d.ts +62 -0
  248. package/dist/lib/modules/model/types/ModelDefinition.js +3 -0
  249. package/dist/lib/modules/model/types/ModelDefinition.js.map +1 -0
  250. package/dist/lib/modules/model/types/ModelEvents.d.ts +16 -0
  251. package/dist/lib/modules/model/types/ModelEvents.js +3 -0
  252. package/dist/lib/modules/model/types/ModelEvents.js.map +1 -0
  253. package/dist/lib/modules/shared/Module.d.ts +7 -0
  254. package/dist/lib/modules/shared/Module.js +13 -0
  255. package/dist/lib/modules/shared/Module.js.map +1 -0
  256. package/dist/lib/modules/shared/exports.d.ts +3 -0
  257. package/{lib/mappings/index.js → dist/lib/modules/shared/exports.js} +4 -5
  258. package/dist/lib/modules/shared/exports.js.map +1 -0
  259. package/dist/lib/modules/shared/index.d.ts +9 -0
  260. package/dist/lib/modules/shared/index.js +26 -0
  261. package/dist/lib/modules/shared/index.js.map +1 -0
  262. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +11 -0
  263. package/{lib/types/BaseAssetContent.js → dist/lib/modules/shared/types/DigitalTwinContent.js} +1 -1
  264. package/dist/lib/modules/shared/types/DigitalTwinContent.js.map +1 -0
  265. package/dist/lib/modules/shared/types/EmbeddedMeasure.d.ts +24 -0
  266. package/dist/lib/modules/shared/types/EmbeddedMeasure.js +3 -0
  267. package/dist/lib/modules/shared/types/EmbeddedMeasure.js.map +1 -0
  268. package/dist/lib/modules/shared/types/KuzzleRole.d.ts +5 -0
  269. package/dist/lib/modules/shared/types/KuzzleRole.js +3 -0
  270. package/dist/lib/modules/shared/types/KuzzleRole.js.map +1 -0
  271. package/dist/lib/modules/shared/types/Metadata.d.ts +5 -0
  272. package/dist/lib/modules/shared/types/Metadata.js +3 -0
  273. package/dist/lib/modules/shared/types/Metadata.js.map +1 -0
  274. package/dist/lib/modules/shared/utils/ask.d.ts +8 -0
  275. package/dist/lib/modules/shared/utils/ask.js +12 -0
  276. package/dist/lib/modules/shared/utils/ask.js.map +1 -0
  277. package/dist/lib/modules/shared/utils/flattenObject.d.ts +24 -0
  278. package/dist/lib/modules/shared/utils/flattenObject.js +46 -0
  279. package/dist/lib/modules/shared/utils/flattenObject.js.map +1 -0
  280. package/dist/lib/modules/shared/utils/lock.d.ts +1 -0
  281. package/dist/lib/modules/shared/utils/lock.js +16 -0
  282. package/dist/lib/modules/shared/utils/lock.js.map +1 -0
  283. package/dist/lib/modules/shared/utils/snakeCase.d.ts +7 -0
  284. package/dist/lib/modules/shared/utils/snakeCase.js +18 -0
  285. package/dist/lib/modules/shared/utils/snakeCase.js.map +1 -0
  286. package/package.json +19 -27
  287. package/index.d.ts +0 -5
  288. package/lib/DeviceManagerPlugin.d.ts +0 -75
  289. package/lib/DeviceManagerPlugin.js +0 -274
  290. package/lib/InternalCollection.d.ts +0 -5
  291. package/lib/controllers/AssetCategoryController.d.ts +0 -28
  292. package/lib/controllers/AssetCategoryController.js +0 -189
  293. package/lib/controllers/AssetController.d.ts +0 -50
  294. package/lib/controllers/AssetController.js +0 -241
  295. package/lib/controllers/DecodersController.d.ts +0 -16
  296. package/lib/controllers/DecodersController.js +0 -27
  297. package/lib/controllers/DeviceController.d.ts +0 -74
  298. package/lib/controllers/DeviceController.js +0 -329
  299. package/lib/controllers/MeasureDefinitionController.d.ts +0 -0
  300. package/lib/controllers/MeasureDefinitionController.js +0 -1
  301. package/lib/controllers/MetadataController.d.ts +0 -16
  302. package/lib/controllers/MetadataController.js +0 -70
  303. package/lib/controllers/RelationalController.d.ts +0 -155
  304. package/lib/controllers/RelationalController.js +0 -410
  305. package/lib/controllers/index.d.ts +0 -3
  306. package/lib/core-classes/AssetCategoryService.d.ts +0 -20
  307. package/lib/core-classes/AssetCategoryService.js +0 -178
  308. package/lib/core-classes/AssetService.d.ts +0 -40
  309. package/lib/core-classes/AssetService.js +0 -97
  310. package/lib/core-classes/DeviceManagerEngine.d.ts +0 -23
  311. package/lib/core-classes/DeviceManagerEngine.js +0 -62
  312. package/lib/core-classes/DeviceService.d.ts +0 -115
  313. package/lib/core-classes/DeviceService.js +0 -282
  314. package/lib/core-classes/MeasureService.d.ts +0 -77
  315. package/lib/core-classes/MeasureService.js +0 -302
  316. package/lib/core-classes/PayloadService.d.ts +0 -24
  317. package/lib/core-classes/PayloadService.js +0 -54
  318. package/lib/core-classes/index.d.ts +0 -9
  319. package/lib/core-classes/registers/AssetsRegister.d.ts +0 -30
  320. package/lib/core-classes/registers/AssetsRegister.js +0 -68
  321. package/lib/core-classes/registers/DevicesRegister.d.ts +0 -20
  322. package/lib/core-classes/registers/DevicesRegister.js +0 -37
  323. package/lib/core-classes/registers/MeasuresRegister.d.ts +0 -30
  324. package/lib/core-classes/registers/MeasuresRegister.js +0 -60
  325. package/lib/mappings/assetCategoryMappings.d.ts +0 -69
  326. package/lib/mappings/assetCategoryMappings.js +0 -23
  327. package/lib/mappings/assetsMappings.d.ts +0 -130
  328. package/lib/mappings/assetsMappings.js +0 -72
  329. package/lib/mappings/deviceMappings.js +0 -42
  330. package/lib/mappings/fieldpathMappings.d.ts +0 -17
  331. package/lib/mappings/fieldpathMappings.js +0 -21
  332. package/lib/mappings/genericEmbeddedMapping.d.ts +0 -1
  333. package/lib/mappings/genericEmbeddedMapping.js +0 -11
  334. package/lib/mappings/index.d.ts +0 -4
  335. package/lib/mappings/measuresMappings.d.ts +0 -82
  336. package/lib/mappings/measuresMappings.js +0 -72
  337. package/lib/mappings/metadataMappings.d.ts +0 -149
  338. package/lib/mappings/metadataMappings.js +0 -64
  339. package/lib/mappings/payloadsMappings.js +0 -20
  340. package/lib/measures/BatteryMeasure.d.ts +0 -7
  341. package/lib/measures/BatteryMeasure.js +0 -12
  342. package/lib/measures/HumidityMeasure.d.ts +0 -7
  343. package/lib/measures/HumidityMeasure.js +0 -12
  344. package/lib/measures/MovementMeasure.d.ts +0 -7
  345. package/lib/measures/MovementMeasure.js +0 -12
  346. package/lib/measures/PositionMeasure.d.ts +0 -12
  347. package/lib/measures/PositionMeasure.js +0 -16
  348. package/lib/measures/TemperatureMeasure.d.ts +0 -7
  349. package/lib/measures/TemperatureMeasure.js +0 -12
  350. package/lib/measures/index.d.ts +0 -5
  351. package/lib/models/BaseAsset.d.ts +0 -18
  352. package/lib/models/BaseAsset.js +0 -64
  353. package/lib/models/Config.d.ts +0 -21
  354. package/lib/models/Config.js +0 -26
  355. package/lib/models/Device.d.ts +0 -15
  356. package/lib/models/Device.js +0 -45
  357. package/lib/models/index.d.ts +0 -2
  358. package/lib/types/AssetCategoryContent.d.ts +0 -28
  359. package/lib/types/AssetCategoryContent.js +0 -3
  360. package/lib/types/BaseAssetContent.d.ts +0 -45
  361. package/lib/types/DecodedPayload.d.ts +0 -53
  362. package/lib/types/DecoderContent.d.ts +0 -5
  363. package/lib/types/DeviceContent.d.ts +0 -32
  364. package/lib/types/MetadataContent.d.ts +0 -29
  365. package/lib/types/MetadataContent.js +0 -15
  366. package/lib/types/Request.d.ts +0 -26
  367. package/lib/types/index.d.ts +0 -7
  368. package/lib/types/measures/MeasureContent.d.ts +0 -79
  369. package/lib/types/measures/MeasureContent.js +0 -12
  370. package/lib/types/measures/MeasureDefinition.d.ts +0 -40
  371. package/lib/utils/index.d.ts +0 -1
  372. package/lib/utils/writeMany.d.ts +0 -13
  373. package/lib/utils/writeMany.js +0 -39
@@ -0,0 +1,44 @@
1
+ import { JSONObject } from "kuzzle";
2
+ import { DigitalTwinContent, Metadata } from "../../shared";
3
+ /**
4
+ * Asset document content
5
+ */
6
+ export interface AssetContent<TMeasures extends JSONObject = any, TMetadata extends Metadata = any> extends DigitalTwinContent<TMeasures, TMetadata> {
7
+ /**
8
+ * Link with attached device
9
+ */
10
+ linkedDevices: Array<{
11
+ /**
12
+ * Device ID
13
+ */
14
+ _id: string;
15
+ /**
16
+ * Names of the linked measures
17
+ *
18
+ * Array<{ asset: string, device: string }>
19
+ *
20
+ * @example
21
+ *
22
+ * [
23
+ * { asset: "externalTemperature", device: "temperature" }
24
+ * ]
25
+ */
26
+ measureNames: Array<{
27
+ asset: string;
28
+ device: string;
29
+ }>;
30
+ }>;
31
+ }
32
+ /**
33
+ * Asset description used to contextualize each measure data point
34
+ */
35
+ export type AssetMeasureContext<TMetadata extends Metadata = Metadata> = {
36
+ /**
37
+ * ID of the asset
38
+ */
39
+ _id: string;
40
+ /**
41
+ * Name of the measure for the Asset
42
+ */
43
+ measureName: string;
44
+ } & Pick<AssetContent<JSONObject, TMetadata>, "model" | "reference" | "metadata">;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=DecodedPayload.js.map
3
+ //# sourceMappingURL=AssetContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetContent.js","sourceRoot":"","sources":["../../../../../lib/modules/asset/types/AssetContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { KDocument } from "kuzzle";
2
+ import { Metadata } from "../../../modules/shared";
3
+ import { AssetContent } from "./AssetContent";
4
+ import { AssetHistoryEvent } from "./AssetHistoryContent";
5
+ export type EventAssetUpdateBefore = {
6
+ name: "device-manager:asset:update:before";
7
+ args: [{
8
+ asset: KDocument<AssetContent>;
9
+ metadata: Metadata;
10
+ }];
11
+ };
12
+ export type EventAssetUpdateAfter = {
13
+ name: "device-manager:asset:update:after";
14
+ args: [{
15
+ asset: KDocument<AssetContent>;
16
+ metadata: Metadata;
17
+ }];
18
+ };
19
+ /**
20
+ * @internal
21
+ */
22
+ export type AskAssetHistoryAdd<TAssetHistoryEvent extends AssetHistoryEvent> = {
23
+ name: "ask:device-manager:asset:history:add";
24
+ payload: {
25
+ engineId: string;
26
+ event: TAssetHistoryEvent;
27
+ asset: KDocument<AssetContent>;
28
+ };
29
+ result: void;
30
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AssetEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetEvents.js","sourceRoot":"","sources":["../../../../../lib/modules/asset/types/AssetEvents.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { JSONObject, KDocumentContent } from "kuzzle";
2
+ import { Metadata } from "../../shared";
3
+ import { AssetContent } from "./AssetContent";
4
+ export type AssetHistoryEventMeasure = {
5
+ name: "measure";
6
+ measure: {
7
+ names: string[];
8
+ };
9
+ };
10
+ export type AssetHistoryEventMetadata = {
11
+ name: "metadata";
12
+ metadata: {
13
+ names: string[];
14
+ };
15
+ };
16
+ export type AssetHistoryEventLink = {
17
+ name: "link";
18
+ link: {
19
+ deviceId: string;
20
+ };
21
+ };
22
+ export type AssetHistoryEventUnlink = {
23
+ name: "unlink";
24
+ unlink: {
25
+ deviceId: string;
26
+ };
27
+ };
28
+ export type AssetHistoryEvent = AssetHistoryEventMeasure | AssetHistoryEventMetadata | AssetHistoryEventLink | AssetHistoryEventUnlink;
29
+ /**
30
+ * Asset History document content
31
+ */
32
+ export interface AssetHistoryContent<TAssetHistoryEvent extends AssetHistoryEvent = any, TMeasures extends JSONObject = any, TMetadata extends Metadata = any> extends KDocumentContent {
33
+ /**
34
+ * Name of the event who caused the historization
35
+ *
36
+ * - `measure` a new measure has been received
37
+ * - `metadata` the asset metadata has been updated
38
+ * - `link` a device has been linked or unlinked to the asset
39
+ * - `unlink` a device has been unlinked from the asset
40
+ */
41
+ event: TAssetHistoryEvent;
42
+ /**
43
+ * ID of the historized asset
44
+ */
45
+ id: string;
46
+ /**
47
+ * Asset content after the event
48
+ */
49
+ asset: AssetContent<TMeasures, TMetadata>;
50
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AssetHistoryContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetHistoryContent.js","sourceRoot":"","sources":["../../../../../lib/modules/asset/types/AssetHistoryContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { JSONObject } from "kuzzle";
2
+ import { DecodedMeasurement } from "../measure";
3
+ import { Decoder } from "./Decoder";
4
+ /**
5
+ * Class containing the decoded measures.
6
+ */
7
+ export declare class DecodedPayload<TDecoder extends Decoder = Decoder> {
8
+ decoder: TDecoder;
9
+ /**
10
+ * Measurements per device.
11
+ *
12
+ * Record<deviceReference, Measurement[]>
13
+ */
14
+ private measurementsByDevice;
15
+ /**
16
+ * Metadata per device.
17
+ */
18
+ private metadataByDevice;
19
+ constructor(decoder: TDecoder);
20
+ get references(): string[];
21
+ /**
22
+ * Add a new measure into the decoded payload
23
+ *
24
+ * @param deviceReference Device reference
25
+ * @param measureName Name of the decoded measure
26
+ * @param measurement Measurement object
27
+ */
28
+ addMeasurement<TMeasureValues extends JSONObject = JSONObject>(deviceReference: string, measureName: TDecoder["measures"][number]["name"], measurement: Omit<DecodedMeasurement<TMeasureValues>, "measureName">): void;
29
+ /**
30
+ * Add metadata values for a Device.
31
+ *
32
+ * Metadata should have been declared on the plugin to be used.
33
+ *
34
+ * @param deviceReference Device reference
35
+ * @param metadata Object containing metadata values
36
+ */
37
+ addMetadata(deviceReference: string, metadata: JSONObject): void;
38
+ /**
39
+ * Gets the measurements decoded for a device
40
+ */
41
+ getMeasurements(deviceReference: string): DecodedMeasurement[];
42
+ /**
43
+ * Get the metadata for a device
44
+ */
45
+ getMetadata(deviceReference: string): JSONObject;
46
+ private validateMeasurement;
47
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DecodedPayload = void 0;
4
+ const kuzzle_1 = require("kuzzle");
5
+ /**
6
+ * Class containing the decoded measures.
7
+ */
8
+ class DecodedPayload {
9
+ constructor(decoder) {
10
+ /**
11
+ * Measurements per device.
12
+ *
13
+ * Record<deviceReference, Measurement[]>
14
+ */
15
+ this.measurementsByDevice = {};
16
+ /**
17
+ * Metadata per device.
18
+ */
19
+ this.metadataByDevice = {};
20
+ this.decoder = decoder;
21
+ }
22
+ get references() {
23
+ return Object.keys(this.measurementsByDevice);
24
+ }
25
+ /**
26
+ * Add a new measure into the decoded payload
27
+ *
28
+ * @param deviceReference Device reference
29
+ * @param measureName Name of the decoded measure
30
+ * @param measurement Measurement object
31
+ */
32
+ addMeasurement(deviceReference, measureName, measurement) {
33
+ if (!this.decoder.measureNames.includes(measureName)) {
34
+ throw new kuzzle_1.BadRequestError(`Decoder "${this.decoder.deviceModel}" has no measure named "${measureName}"`);
35
+ }
36
+ this.validateMeasurement(measurement);
37
+ if (!this.measurementsByDevice[deviceReference]) {
38
+ this.measurementsByDevice[deviceReference] = [];
39
+ }
40
+ const decodedMeasurement = {
41
+ measureName,
42
+ ...measurement,
43
+ };
44
+ this.measurementsByDevice[deviceReference].push(decodedMeasurement);
45
+ }
46
+ /**
47
+ * Add metadata values for a Device.
48
+ *
49
+ * Metadata should have been declared on the plugin to be used.
50
+ *
51
+ * @param deviceReference Device reference
52
+ * @param metadata Object containing metadata values
53
+ */
54
+ addMetadata(deviceReference, metadata) {
55
+ if (!this.metadataByDevice[deviceReference]) {
56
+ this.metadataByDevice[deviceReference] = {};
57
+ }
58
+ this.metadataByDevice[deviceReference] = {
59
+ ...this.metadataByDevice[deviceReference],
60
+ ...metadata,
61
+ };
62
+ }
63
+ /**
64
+ * Gets the measurements decoded for a device
65
+ */
66
+ getMeasurements(deviceReference) {
67
+ return this.measurementsByDevice[deviceReference];
68
+ }
69
+ /**
70
+ * Get the metadata for a device
71
+ */
72
+ getMetadata(deviceReference) {
73
+ return this.metadataByDevice[deviceReference];
74
+ }
75
+ validateMeasurement(measurement) {
76
+ if (measurement.measuredAt.toString().length !== 13) {
77
+ throw new kuzzle_1.BadRequestError(`Invalid payload: "measuredAt" should be a timestamp in milliseconds`);
78
+ }
79
+ }
80
+ }
81
+ exports.DecodedPayload = DecodedPayload;
82
+ //# sourceMappingURL=DecodedPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecodedPayload.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecodedPayload.ts"],"names":[],"mappings":";;;AAAA,mCAAqD;AAMrD;;GAEG;AACH,MAAa,cAAc;IAezB,YAAY,OAAiB;QAZ7B;;;;WAIG;QACK,yBAAoB,GAAyC,EAAE,CAAC;QAExE;;WAEG;QACK,qBAAgB,GAAe,EAAE,CAAC;QAGxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CACZ,eAAuB,EACvB,WAAiD,EACjD,WAAoE;QAEpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACpD,MAAM,IAAI,wBAAe,CACvB,YAAY,IAAI,CAAC,OAAO,CAAC,WAAW,2BAA2B,WAAW,GAAG,CAC9E,CAAC;SACH;QAED,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE;YAC/C,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;SACjD;QAED,MAAM,kBAAkB,GAAuC;YAC7D,WAAW;YACX,GAAG,WAAW;SACf,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,eAAuB,EAAE,QAAoB;QACvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE;YAC3C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;SAC7C;QAED,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG;YACvC,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;YACzC,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,eAAuB;QACrC,OAAO,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,eAAuB;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAEO,mBAAmB,CACzB,WAAoE;QAEpE,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,EAAE,EAAE;YACnD,MAAM,IAAI,wBAAe,CACvB,qEAAqE,CACtE,CAAC;SACH;IACH,CAAC;CACF;AAjGD,wCAiGC"}
@@ -1,9 +1,13 @@
1
- import { HttpRoute, JSONObject, KuzzleRequest } from 'kuzzle';
2
- import { DecodedPayload } from '../types/DecodedPayload';
3
- import { DecoderContent } from '../types';
4
- import { MeasuresRegister } from './registers/MeasuresRegister';
5
- export declare type DecoderMeasures = Record<string, // deviceMeasureName
6
- string>;
1
+ import { HttpRoute, JSONObject, KuzzleRequest } from "kuzzle";
2
+ import { DecodedPayload } from "./DecodedPayload";
3
+ import { DecoderContent } from "./types/DecoderContent";
4
+ /**
5
+ * Array of measures declaration
6
+ */
7
+ export type NamedMeasures = ReadonlyArray<{
8
+ name: string;
9
+ type: string;
10
+ }>;
7
11
  /**
8
12
  * Base class to implement a decoder for a device model.
9
13
  * The device model must be passed to the parent constructor.
@@ -12,13 +16,24 @@ string>;
12
16
  export declare abstract class Decoder {
13
17
  private _http?;
14
18
  /**
15
- * Device model name
19
+ * Device model name.
20
+ *
21
+ * Will be infered from the class name if not defined:
22
+ * `AbeewayGPSDecoder` => `AbeewayGPS`
16
23
  */
17
24
  deviceModel: string;
18
25
  /**
19
- * Array of device measure and their type
26
+ * Declaration of the measures decoded by this decoder.
27
+ * The name correspond of the measure name for the device.
28
+ * Measures types should be registered on the plugin beforehand.
29
+ *
30
+ * @example
31
+ *
32
+ * this.measures = [
33
+ * { type: 'temperature', name: 'temperatureExterior' },
34
+ * ];
20
35
  */
21
- decoderMeasures: DecoderMeasures;
36
+ measures: NamedMeasures;
22
37
  /**
23
38
  * Custom name for the associated API action in the "payload" controller
24
39
  */
@@ -29,6 +44,7 @@ export declare abstract class Decoder {
29
44
  * the device model unique identifier field.
30
45
  *
31
46
  * @example
47
+ *
32
48
  * this.payloadsMappings = {
33
49
  * device_properties: {
34
50
  * properties: {
@@ -45,14 +61,8 @@ export declare abstract class Decoder {
45
61
  */
46
62
  set http(http: HttpRoute[]);
47
63
  get http(): HttpRoute[];
48
- /**
49
- * @param deviceModel Device model for this decoder
50
- * @param decoderMeasures Measures created by this decoder
51
- *
52
- * @example
53
- * super('AbeewayGPS', ['position']);
54
- */
55
- constructor(deviceModel: string, decoderMeasures: DecoderMeasures, measuresRegister: MeasuresRegister);
64
+ get measureNames(): string[];
65
+ get measureTypes(): string[];
56
66
  /**
57
67
  * Validate the payload format before processing.
58
68
  *
@@ -72,12 +82,13 @@ export declare abstract class Decoder {
72
82
  * - set "reference"
73
83
  * - fetch measures
74
84
  *
85
+ * @param decodedPayload Decoded payload to store decoded measures
75
86
  * @param payload Raw payload received in the API action body
76
87
  * @param request Original request
77
88
  *
78
- * @returns Map of `Measurements` by device reference.
89
+ * @returns DecodedPayload
79
90
  */
80
- abstract decode(payload: JSONObject, request: KuzzleRequest): Promise<DecodedPayload>;
91
+ abstract decode(decodedPayload: DecodedPayload<any>, payload: JSONObject, request: KuzzleRequest): Promise<DecodedPayload<any>>;
81
92
  /**
82
93
  * Checks if the provided properties are present in the payload
83
94
  *
@@ -12,20 +12,26 @@ const lodash_1 = __importDefault(require("lodash"));
12
12
  * The abstract "decode" method must be implemented.
13
13
  */
14
14
  class Decoder {
15
- /**
16
- * @param deviceModel Device model for this decoder
17
- * @param decoderMeasures Measures created by this decoder
18
- *
19
- * @example
20
- * super('AbeewayGPS', ['position']);
21
- */
22
- constructor(deviceModel, decoderMeasures, measuresRegister) {
15
+ constructor() {
16
+ /**
17
+ * Declaration of the measures decoded by this decoder.
18
+ * The name correspond of the measure name for the device.
19
+ * Measures types should be registered on the plugin beforehand.
20
+ *
21
+ * @example
22
+ *
23
+ * this.measures = [
24
+ * { type: 'temperature', name: 'temperatureExterior' },
25
+ * ];
26
+ */
27
+ this.measures = [];
23
28
  /**
24
29
  * Custom mappings for the payload collection.
25
30
  * It will be injected in the "payload" property and it should allows to index
26
31
  * the device model unique identifier field.
27
32
  *
28
33
  * @example
34
+ *
29
35
  * this.payloadsMappings = {
30
36
  * device_properties: {
31
37
  * properties: {
@@ -35,13 +41,6 @@ class Decoder {
35
41
  * }
36
42
  */
37
43
  this.payloadsMappings = {};
38
- this.deviceModel = deviceModel;
39
- for (const [measureName, measureType] of Object.entries(decoderMeasures)) {
40
- if (!measuresRegister.has(measureType)) {
41
- throw new kuzzle_1.PluginImplementationError(`Decoder "${this.constructor.name}" cannot register unknown measure type "${measureType}"`);
42
- }
43
- }
44
- this.decoderMeasures = decoderMeasures;
45
44
  }
46
45
  /**
47
46
  * Define custom HTTP routes
@@ -53,10 +52,34 @@ class Decoder {
53
52
  }
54
53
  get http() {
55
54
  if (!this._http) {
56
- this._http = [{ path: `device-manager/payload/${this.action}`, verb: 'post' }];
55
+ this._http = [
56
+ {
57
+ openapi: {
58
+ description: `Receive a payload from a ${this.deviceModel} device`,
59
+ parameters: [
60
+ {
61
+ in: "body",
62
+ name: "payload",
63
+ required: true,
64
+ schema: {
65
+ type: "object",
66
+ },
67
+ },
68
+ ],
69
+ },
70
+ path: `device-manager/payload/${this.action}`,
71
+ verb: "post",
72
+ },
73
+ ];
57
74
  }
58
75
  return this._http;
59
76
  }
77
+ get measureNames() {
78
+ return this.measures.map(({ name }) => name);
79
+ }
80
+ get measureTypes() {
81
+ return this.measures.map(({ type }) => type);
82
+ }
60
83
  /**
61
84
  * Validate the payload format before processing.
62
85
  *
@@ -91,8 +114,8 @@ class Decoder {
91
114
  }
92
115
  serialize() {
93
116
  return {
94
- decoderMeasures: this.decoderMeasures,
95
117
  deviceModel: this.deviceModel,
118
+ measures: this.measures,
96
119
  };
97
120
  }
98
121
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Decoder.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/Decoder.ts"],"names":[],"mappings":";;;;;;AAAA,mCAKgB;AAChB,oDAAuB;AAgBvB;;;;GAIG;AACH,MAAsB,OAAO;IAA7B;QAWE;;;;;;;;;;WAUG;QACI,aAAQ,GAAkB,EAAE,CAAC;QAOpC;;;;;;;;;;;;;;WAcG;QACI,qBAAgB,GAAgB,EAAE,CAAC;IA0G5C,CAAC;IAxGC;;;;OAIG;IACH,IAAI,IAAI,CAAC,IAAiB;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG;gBACX;oBACE,OAAO,EAAE;wBACP,WAAW,EAAE,4BAA4B,IAAI,CAAC,WAAW,SAAS;wBAClE,UAAU,EAAE;4BACV;gCACE,EAAE,EAAE,MAAM;gCACV,IAAI,EAAE,SAAS;gCACf,QAAQ,EAAE,IAAI;gCACd,MAAM,EAAE;oCACN,IAAI,EAAE,QAAQ;iCACf;6BACF;yBACF;qBACF;oBACD,IAAI,EAAE,0BAA0B,IAAI,CAAC,MAAM,EAAE;oBAC7C,IAAI,EAAE,MAAM;iBACb;aACF,CAAC;SACH;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,0CAA0C;IAC1C,KAAK,CAAC,QAAQ,CACZ,OAAmB,EACnB,OAAsB;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAoBD;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAmB,EAAE,KAAe;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,gBAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBACzB,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,IAAI,cAAc,CAAC,CAAC;aACtE;SACF;IACH,CAAC;IAED,SAAS;QACP,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF;AAtJD,0BAsJC;AAED,qDAAqD"}
@@ -0,0 +1,8 @@
1
+ import { Module } from "../shared/Module";
2
+ export declare class DecoderModule extends Module {
3
+ private payloadService;
4
+ private decoderController;
5
+ private payloadsController;
6
+ private get decodersRegister();
7
+ init(): Promise<void>;
8
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DecoderModule = void 0;
4
+ const Module_1 = require("../shared/Module");
5
+ const DecodersController_1 = require("./DecodersController");
6
+ const PayloadsController_1 = require("./PayloadsController");
7
+ const PayloadService_1 = require("./PayloadService");
8
+ const RoleDecodersAdmin_1 = require("./roles/RoleDecodersAdmin");
9
+ const RolePayloadsAll_1 = require("./roles/RolePayloadsAll");
10
+ class DecoderModule extends Module_1.Module {
11
+ // @todo temporary until registers refactor
12
+ get decodersRegister() {
13
+ // eslint-disable-next-line dot-notation
14
+ return this.plugin["decodersRegister"];
15
+ }
16
+ async init() {
17
+ this.payloadService = new PayloadService_1.PayloadService(this.plugin);
18
+ this.decoderController = new DecodersController_1.DecodersController(this.payloadService, this.decodersRegister);
19
+ this.payloadsController = new PayloadsController_1.PayloadsController(this.payloadService, this.decodersRegister);
20
+ this.plugin.api["device-manager/decoders"] =
21
+ this.decoderController.definition;
22
+ this.plugin.api["device-manager/payloads"] =
23
+ this.payloadsController.definition;
24
+ this.plugin.roles.push(RoleDecodersAdmin_1.RoleDecodersAdmin);
25
+ this.plugin.roles.push(RolePayloadsAll_1.RolePayloadsAll);
26
+ }
27
+ }
28
+ exports.DecoderModule = DecoderModule;
29
+ //# sourceMappingURL=DecoderModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecoderModule.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecoderModule.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,6DAA0D;AAC1D,6DAA0D;AAC1D,qDAAkD;AAClD,iEAA8D;AAC9D,6DAA0D;AAE1D,MAAa,aAAc,SAAQ,eAAM;IAKvC,2CAA2C;IAC3C,IAAY,gBAAgB;QAC1B,wCAAwC;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,uCAAkB,CAC7C,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CAC9C,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAiB,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAe,CAAC,CAAC;IAC1C,CAAC;CACF;AA/BD,sCA+BC"}
@@ -0,0 +1,18 @@
1
+ import { ControllerDefinition, KuzzleRequest } from "kuzzle";
2
+ import { DecodersRegister } from "../../core/registers/DecodersRegister";
3
+ import { PayloadService } from "./PayloadService";
4
+ import { ApiDecoderListResult, ApiDecoderPrunePayloadsResult } from "./types/DecoderApi";
5
+ export declare class DecodersController {
6
+ private payloadService;
7
+ private decodersRegister;
8
+ definition: ControllerDefinition;
9
+ constructor(payloadService: PayloadService, decodersRegister: DecodersRegister);
10
+ /**
11
+ * List all available decoders
12
+ */
13
+ list(): Promise<ApiDecoderListResult>;
14
+ /**
15
+ * Clean payload collection for a time period
16
+ */
17
+ prunePayloads(request: KuzzleRequest): Promise<ApiDecoderPrunePayloadsResult>;
18
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DecodersController = void 0;
4
+ class DecodersController {
5
+ constructor(payloadService, decodersRegister) {
6
+ this.payloadService = payloadService;
7
+ this.decodersRegister = decodersRegister;
8
+ this.definition = {
9
+ actions: {
10
+ list: {
11
+ handler: this.list.bind(this),
12
+ http: [{ path: "device-manager/decoders", verb: "get" }],
13
+ },
14
+ prunePayloads: {
15
+ handler: this.prunePayloads.bind(this),
16
+ http: [
17
+ { path: "device-manager/decoders/_prunePayloads", verb: "delete" },
18
+ ],
19
+ },
20
+ },
21
+ };
22
+ }
23
+ /**
24
+ * List all available decoders
25
+ */
26
+ async list() {
27
+ const decoders = this.decodersRegister.list();
28
+ return { decoders };
29
+ }
30
+ /**
31
+ * Clean payload collection for a time period
32
+ */
33
+ async prunePayloads(request) {
34
+ const days = request.getBodyNumber("days");
35
+ const deviceModel = request.input.body.deviceModel;
36
+ const onlyValid = request.input.body.onlyValid ?? true;
37
+ const deleted = await this.payloadService.prune(days, onlyValid, {
38
+ deviceModel,
39
+ });
40
+ return { deleted };
41
+ }
42
+ }
43
+ exports.DecodersController = DecodersController;
44
+ //# sourceMappingURL=DecodersController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecodersController.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecodersController.ts"],"names":[],"mappings":";;;AAUA,MAAa,kBAAkB;IAM7B,YACE,cAA8B,EAC9B,gBAAkC;QAElC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC7B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBACzD;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtC,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACnE;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAE9C,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,OAAsB;QAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE;YAC/D,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF;AAtDD,gDAsDC"}
@@ -0,0 +1,34 @@
1
+ import { JSONObject, KuzzleRequest } from "kuzzle";
2
+ import { DeviceManagerPlugin } from "../../core";
3
+ import { Decoder } from "./Decoder";
4
+ export declare class PayloadService {
5
+ private config;
6
+ private context;
7
+ private get sdk();
8
+ private get app();
9
+ constructor(plugin: DeviceManagerPlugin);
10
+ /**
11
+ * Process a payload by validating and decode it with the `decoder` associated
12
+ * with the device model. It :
13
+ * - register the brut `Payload`
14
+ * - redirect measurements to MeasureService
15
+ */
16
+ receive(request: KuzzleRequest, decoder: Decoder, { refresh }?: any): Promise<{
17
+ valid: boolean;
18
+ }>;
19
+ /**
20
+ * Method used to save the payload and catch + log the error if any.
21
+ *
22
+ * This method never returns a rejected promise.
23
+ */
24
+ private savePayload;
25
+ /**
26
+ * Get devices or create missing ones (when auto-provisionning is enabled)
27
+ */
28
+ private retrieveDevices;
29
+ private provisionDevices;
30
+ prune(days: number, onlyValid: boolean, { deviceModel }?: {
31
+ deviceModel?: string;
32
+ }): Promise<number>;
33
+ receiveUnknown(deviceModel: string, payload: JSONObject): Promise<void>;
34
+ }