@kalisio/kdk 1.3.5 → 1.4.2

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 (535) hide show
  1. package/.nyc_output/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +1 -0
  2. package/.nyc_output/{0b8aa700-8daa-49ce-85e7-a8f8965d55f0.json → 2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json} +0 -0
  3. package/.nyc_output/{20df4355-911a-4b16-a8ab-d3392e9f0a7f.json → 81d21e46-766a-46bc-b1b7-143ca577347a.json} +0 -0
  4. package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +1 -0
  5. package/.nyc_output/{257af0bb-96c3-465a-b5ef-a1df60078d5f.json → aaf3ebbb-f895-4d7b-9255-bc5dee832570.json} +0 -0
  6. package/.nyc_output/{284aebfa-23fd-425f-9d72-e4b8904dc224.json → dbeb2602-0ac2-4e66-978b-0d29548359ca.json} +0 -0
  7. package/.nyc_output/{5cbee06e-be6e-468a-bd78-4793ee785fe4.json → e47d1e4c-2fff-4dcb-908f-d3081162547c.json} +0 -0
  8. package/.nyc_output/processinfo/{2bece194-92f7-4971-a688-10604044a7fa.json → 2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json} +1 -1
  9. package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +1 -0
  10. package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +1 -0
  11. package/.nyc_output/processinfo/a762cb58-70dc-4d39-ab69-928635affa98.json +1 -0
  12. package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +1 -0
  13. package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +1 -0
  14. package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +1 -0
  15. package/.nyc_output/processinfo/index.json +1 -1
  16. package/CHANGELOG.md +189 -67
  17. package/README.md +1 -1
  18. package/coverage/core/api/application.js.html +145 -145
  19. package/coverage/core/api/authentication.js.html +37 -37
  20. package/coverage/core/api/db.js.html +74 -74
  21. package/coverage/core/api/hooks/hooks.account.js.html +15 -15
  22. package/coverage/core/api/hooks/hooks.authentication.js.html +16 -16
  23. package/coverage/core/api/hooks/hooks.authorisations.js.html +112 -121
  24. package/coverage/core/api/hooks/hooks.devices.js.html +5 -5
  25. package/coverage/core/api/hooks/hooks.groups.js.html +3 -3
  26. package/coverage/core/api/hooks/hooks.logger.js.html +7 -7
  27. package/coverage/core/api/hooks/hooks.model.js.html +149 -149
  28. package/coverage/core/api/hooks/hooks.organisations.js.html +13 -61
  29. package/coverage/core/api/hooks/hooks.pusher.js.html +7 -7
  30. package/coverage/core/api/hooks/hooks.query.js.html +68 -32
  31. package/coverage/core/api/hooks/hooks.service.js.html +15 -15
  32. package/coverage/core/api/hooks/hooks.storage.js.html +5 -5
  33. package/coverage/core/api/hooks/hooks.tags.js.html +7 -7
  34. package/coverage/core/api/hooks/hooks.users.js.html +111 -63
  35. package/coverage/core/api/hooks/index.html +72 -72
  36. package/coverage/core/api/hooks/index.js.html +15 -15
  37. package/coverage/core/api/index.html +35 -35
  38. package/coverage/core/api/index.js.html +13 -13
  39. package/coverage/core/api/marshall.js.html +81 -81
  40. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  41. package/coverage/core/api/models/index.html +1 -1
  42. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  43. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  44. package/coverage/core/api/models/users.model.mongodb.js.html +7 -7
  45. package/coverage/core/api/oauth2-handler.js.html +3 -3
  46. package/coverage/core/api/oauth2-verifier.js.html +5 -5
  47. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  48. package/coverage/core/api/services/account/account.service.js.html +34 -34
  49. package/coverage/core/api/services/account/index.html +17 -17
  50. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +3 -3
  51. package/coverage/core/api/services/authorisations/authorisations.service.js.html +40 -37
  52. package/coverage/core/api/services/authorisations/index.html +17 -17
  53. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  54. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  55. package/coverage/core/api/services/databases/index.html +1 -1
  56. package/coverage/core/api/services/devices/devices.hooks.js.html +1 -1
  57. package/coverage/core/api/services/devices/devices.service.js.html +1 -1
  58. package/coverage/core/api/services/devices/index.html +1 -1
  59. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  60. package/coverage/core/api/services/groups/index.html +1 -1
  61. package/coverage/core/api/services/index.html +5 -5
  62. package/coverage/core/api/services/index.js.html +40 -40
  63. package/coverage/core/api/services/mailer/index.html +1 -1
  64. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  65. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  66. package/coverage/core/api/services/organisations/index.html +1 -1
  67. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  68. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  69. package/coverage/core/api/services/pusher/index.html +1 -1
  70. package/coverage/core/api/services/pusher/pusher.channels.js.html +1 -1
  71. package/coverage/core/api/services/pusher/pusher.hooks.js.html +1 -1
  72. package/coverage/core/api/services/pusher/pusher.service.js.html +1 -1
  73. package/coverage/core/api/services/storage/index.html +1 -1
  74. package/coverage/core/api/services/storage/storage.hooks.js.html +4 -4
  75. package/coverage/core/api/services/tags/index.html +1 -1
  76. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  77. package/coverage/core/api/services/users/index.html +1 -1
  78. package/coverage/core/api/services/users/users.hooks.js.html +12 -12
  79. package/coverage/core/common/index.html +32 -32
  80. package/coverage/core/common/index.js.html +27 -27
  81. package/coverage/core/common/permissions.js.html +135 -75
  82. package/coverage/index.html +157 -157
  83. package/coverage/lcov-report/core/api/application.js.html +145 -145
  84. package/coverage/lcov-report/core/api/authentication.js.html +37 -37
  85. package/coverage/lcov-report/core/api/db.js.html +74 -74
  86. package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +15 -15
  87. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +16 -16
  88. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +112 -121
  89. package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +5 -5
  90. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +3 -3
  91. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +7 -7
  92. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +149 -149
  93. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +13 -61
  94. package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +7 -7
  95. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +68 -32
  96. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +15 -15
  97. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +5 -5
  98. package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +7 -7
  99. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +111 -63
  100. package/coverage/lcov-report/core/api/hooks/index.html +72 -72
  101. package/coverage/lcov-report/core/api/hooks/index.js.html +15 -15
  102. package/coverage/lcov-report/core/api/index.html +35 -35
  103. package/coverage/lcov-report/core/api/index.js.html +13 -13
  104. package/coverage/lcov-report/core/api/marshall.js.html +81 -81
  105. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  106. package/coverage/lcov-report/core/api/models/index.html +1 -1
  107. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  108. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  109. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +7 -7
  110. package/coverage/lcov-report/core/api/oauth2-handler.js.html +3 -3
  111. package/coverage/lcov-report/core/api/oauth2-verifier.js.html +5 -5
  112. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  113. package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
  114. package/coverage/lcov-report/core/api/services/account/index.html +17 -17
  115. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +3 -3
  116. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +40 -37
  117. package/coverage/lcov-report/core/api/services/authorisations/index.html +17 -17
  118. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  119. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  120. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  121. package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +1 -1
  122. package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +1 -1
  123. package/coverage/lcov-report/core/api/services/devices/index.html +1 -1
  124. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  125. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  126. package/coverage/lcov-report/core/api/services/index.html +5 -5
  127. package/coverage/lcov-report/core/api/services/index.js.html +40 -40
  128. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  129. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  130. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  131. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  132. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  133. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  134. package/coverage/lcov-report/core/api/services/pusher/index.html +1 -1
  135. package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +1 -1
  136. package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +1 -1
  137. package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +1 -1
  138. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  139. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +4 -4
  140. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  141. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  142. package/coverage/lcov-report/core/api/services/users/index.html +1 -1
  143. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +12 -12
  144. package/coverage/lcov-report/core/common/index.html +32 -32
  145. package/coverage/lcov-report/core/common/index.js.html +27 -27
  146. package/coverage/lcov-report/core/common/permissions.js.html +135 -75
  147. package/coverage/lcov-report/index.html +157 -157
  148. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +55 -55
  149. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +337 -274
  150. package/coverage/lcov-report/map/api/hooks/index.html +43 -43
  151. package/coverage/lcov-report/map/api/hooks/index.js.html +12 -12
  152. package/coverage/lcov-report/map/api/index.html +31 -31
  153. package/coverage/lcov-report/map/api/index.js.html +24 -24
  154. package/coverage/lcov-report/map/api/marshall.js.html +39 -39
  155. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +20 -20
  156. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +22 -22
  157. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +24 -24
  158. package/coverage/lcov-report/map/api/models/index.html +43 -43
  159. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +21 -21
  160. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +156 -156
  161. package/coverage/lcov-report/map/api/services/alerts/index.html +30 -30
  162. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +19 -19
  163. package/coverage/lcov-report/map/api/services/catalog/index.html +17 -17
  164. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  165. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  166. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +20 -20
  167. package/coverage/lcov-report/map/api/services/features/index.html +21 -21
  168. package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +8 -8
  169. package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +99 -99
  170. package/coverage/lcov-report/map/api/services/geocoder/index.html +28 -28
  171. package/coverage/lcov-report/map/api/services/index.html +21 -21
  172. package/coverage/lcov-report/map/api/services/index.js.html +71 -71
  173. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
  174. package/coverage/lcov-report/map/common/errors.js.html +9 -9
  175. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +120 -120
  176. package/coverage/lcov-report/map/common/grid.js.html +268 -268
  177. package/coverage/lcov-report/map/common/index.html +149 -149
  178. package/coverage/lcov-report/map/common/index.js.html +31 -31
  179. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +71 -71
  180. package/coverage/lcov-report/map/common/moment-utils.js.html +14 -14
  181. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +280 -280
  182. package/coverage/lcov-report/map/common/opendap-utils.js.html +220 -220
  183. package/coverage/lcov-report/map/common/permissions.js.html +21 -21
  184. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +51 -51
  185. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  186. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +99 -99
  187. package/coverage/lcov-report/map/common/wcs-utils.js.html +66 -66
  188. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +196 -196
  189. package/coverage/lcov-report/map/common/wfs-utils.js.html +8 -5
  190. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  191. package/coverage/lcov-report/map/common/wmts-utils.js.html +71 -11
  192. package/coverage/lcov.info +3588 -3659
  193. package/coverage/map/api/hooks/hooks.catalog.js.html +55 -55
  194. package/coverage/map/api/hooks/hooks.query.js.html +337 -274
  195. package/coverage/map/api/hooks/index.html +43 -43
  196. package/coverage/map/api/hooks/index.js.html +12 -12
  197. package/coverage/map/api/index.html +31 -31
  198. package/coverage/map/api/index.js.html +24 -24
  199. package/coverage/map/api/marshall.js.html +39 -39
  200. package/coverage/map/api/models/alerts.model.mongodb.js.html +20 -20
  201. package/coverage/map/api/models/catalog.model.mongodb.js.html +22 -22
  202. package/coverage/map/api/models/features.model.mongodb.js.html +24 -24
  203. package/coverage/map/api/models/index.html +43 -43
  204. package/coverage/map/api/services/alerts/alerts.hooks.js.html +21 -21
  205. package/coverage/map/api/services/alerts/alerts.service.js.html +156 -156
  206. package/coverage/map/api/services/alerts/index.html +30 -30
  207. package/coverage/map/api/services/catalog/catalog.hooks.js.html +19 -19
  208. package/coverage/map/api/services/catalog/index.html +17 -17
  209. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  210. package/coverage/map/api/services/daptiles/index.html +1 -1
  211. package/coverage/map/api/services/features/features.hooks.js.html +20 -20
  212. package/coverage/map/api/services/features/index.html +21 -21
  213. package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +8 -8
  214. package/coverage/map/api/services/geocoder/geocoder.service.js.html +99 -99
  215. package/coverage/map/api/services/geocoder/index.html +28 -28
  216. package/coverage/map/api/services/index.html +21 -21
  217. package/coverage/map/api/services/index.js.html +71 -71
  218. package/coverage/map/common/dynamic-grid-source.js.html +68 -68
  219. package/coverage/map/common/errors.js.html +9 -9
  220. package/coverage/map/common/geotiff-grid-source.js.html +120 -120
  221. package/coverage/map/common/grid.js.html +268 -268
  222. package/coverage/map/common/index.html +149 -149
  223. package/coverage/map/common/index.js.html +31 -31
  224. package/coverage/map/common/meteo-model-grid-source.js.html +71 -71
  225. package/coverage/map/common/moment-utils.js.html +14 -14
  226. package/coverage/map/common/opendap-grid-source.js.html +280 -280
  227. package/coverage/map/common/opendap-utils.js.html +220 -220
  228. package/coverage/map/common/permissions.js.html +21 -21
  229. package/coverage/map/common/time-based-grid-source.js.html +51 -51
  230. package/coverage/map/common/tms-utils.js.html +1 -1
  231. package/coverage/map/common/wcs-grid-source.js.html +99 -99
  232. package/coverage/map/common/wcs-utils.js.html +66 -66
  233. package/coverage/map/common/weacast-grid-source.js.html +196 -196
  234. package/coverage/map/common/wfs-utils.js.html +8 -5
  235. package/coverage/map/common/wms-utils.js.html +1 -1
  236. package/coverage/map/common/wmts-utils.js.html +71 -11
  237. package/extras/icons/kanban.png +0 -0
  238. package/extras/testcafe/page-models/map/catalog.js +2 -2
  239. package/extras/tours/core/add-member.js +10 -1
  240. package/extras/tours/core/{tag-member.js → edit-member-tags.js} +4 -3
  241. package/extras/tours/core/groups.js +8 -2
  242. package/extras/tours/core/members.js +11 -21
  243. package/extras/tours/core/tags.js +7 -1
  244. package/extras/tours/map/catalog-categories.js +4 -4
  245. package/extras/tours/map/catalog-panel.js +16 -16
  246. package/extras/tours/map/favorite-views.js +3 -3
  247. package/lib/core/api/hooks/hooks.authorisations.js +149 -140
  248. package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
  249. package/lib/core/api/hooks/hooks.organisations.js +1 -23
  250. package/lib/core/api/hooks/hooks.organisations.js.map +1 -1
  251. package/lib/core/api/hooks/hooks.query.js +22 -0
  252. package/lib/core/api/hooks/hooks.query.js.map +1 -1
  253. package/lib/core/api/hooks/hooks.users.js +34 -18
  254. package/lib/core/api/hooks/hooks.users.js.map +1 -1
  255. package/lib/core/api/services/authorisations/authorisations.service.js +34 -25
  256. package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
  257. package/lib/core/client/api.js +1 -0
  258. package/lib/core/client/api.js.map +1 -1
  259. package/lib/core/client/components/account/KAccountDZ.vue +3 -4
  260. package/lib/core/client/components/account/KAccountDevices.vue +5 -6
  261. package/lib/core/client/components/account/KDeviceCard.vue +2 -1
  262. package/lib/core/client/components/account/KIdentityPanel.vue +1 -7
  263. package/lib/core/client/components/collection/KBoard.vue +26 -155
  264. package/lib/core/client/components/collection/KCard.vue +144 -42
  265. package/lib/core/client/components/collection/KCardSection.vue +52 -0
  266. package/lib/core/client/components/collection/KColumn.vue +181 -0
  267. package/lib/core/client/components/collection/KGrid.vue +13 -18
  268. package/lib/core/client/components/collection/KHistory.vue +61 -89
  269. package/lib/core/client/components/collection/KHistoryEntry.vue +90 -66
  270. package/lib/core/client/components/collection/KItem.vue +21 -2
  271. package/lib/core/client/components/collection/KList.vue +9 -12
  272. package/lib/core/client/components/collection/KTable.vue +33 -39
  273. package/lib/core/client/components/collection/index.js +6 -1
  274. package/lib/core/client/components/collection/index.js.map +1 -1
  275. package/lib/core/client/components/editor/KEditor.vue +0 -6
  276. package/lib/core/client/components/editor/KModalEditor.vue +4 -4
  277. package/lib/core/client/components/editor/KSettingsEditor.vue +49 -0
  278. package/lib/core/client/components/form/KAttachmentField.vue +10 -10
  279. package/lib/core/client/components/form/KChipsField.vue +28 -23
  280. package/lib/core/client/components/form/KColorField.vue +30 -25
  281. package/lib/core/client/components/form/KForm.vue +0 -12
  282. package/lib/core/client/components/form/KIconField.vue +1 -0
  283. package/lib/core/client/components/form/KItemField.vue +8 -4
  284. package/lib/core/client/components/form/KRoleField.vue +56 -0
  285. package/lib/core/client/components/form/KSelectField.vue +16 -1
  286. package/lib/core/client/components/form/KView.vue +5 -14
  287. package/lib/core/client/components/frame/KAction.vue +18 -12
  288. package/lib/core/client/components/frame/KAvatar.vue +3 -3
  289. package/lib/core/client/components/frame/KChart.vue +60 -0
  290. package/lib/core/client/components/frame/KChipsPane.vue +80 -0
  291. package/lib/core/client/components/frame/KContent.vue +1 -1
  292. package/lib/core/client/components/frame/KModal.vue +30 -44
  293. package/lib/core/client/components/frame/KPanel.vue +1 -1
  294. package/lib/core/client/components/frame/{KMenu.vue → KPopupAction.vue} +6 -7
  295. package/lib/core/client/components/frame/KSpot.vue +31 -0
  296. package/lib/core/client/components/frame/KStamp.vue +62 -0
  297. package/lib/core/client/components/frame/index.js +56 -1
  298. package/lib/core/client/components/frame/index.js.map +1 -1
  299. package/lib/core/client/components/input/KColorChooser.vue +16 -8
  300. package/lib/core/client/components/input/KIconChooser.vue +2 -1
  301. package/lib/core/client/components/input/KUploader.vue +14 -5
  302. package/lib/core/client/components/layout/KAbout.vue +9 -3
  303. package/lib/core/client/components/layout/KFab.vue +1 -1
  304. package/lib/core/client/components/layout/KPage.vue +44 -19
  305. package/lib/core/client/components/layout/KTour.vue +2 -2
  306. package/lib/core/client/components/layout/KWelcome.vue +13 -12
  307. package/lib/core/client/components/layout/KWindow.vue +1 -1
  308. package/lib/core/client/components/media/KImageViewer.vue +9 -7
  309. package/lib/core/client/components/media/KMediaBrowser.vue +12 -8
  310. package/lib/core/client/components/menu/KMenu.vue +103 -0
  311. package/lib/core/client/components/team/KAddMember.vue +17 -9
  312. package/lib/core/client/components/team/KChangeRole.vue +5 -7
  313. package/lib/core/client/components/team/KGroupCard.vue +34 -51
  314. package/lib/core/client/components/team/KGroupsActivity.vue +9 -2
  315. package/lib/core/client/components/team/KJoinGroup.vue +5 -7
  316. package/lib/core/client/components/team/KMemberCard.vue +104 -63
  317. package/lib/core/client/components/team/KMembersActivity.vue +9 -2
  318. package/lib/core/client/components/team/KOrganisationsActivity.vue +8 -1
  319. package/lib/core/client/components/team/KTagCard.vue +26 -26
  320. package/lib/core/client/components/team/KTagsActivity.vue +9 -2
  321. package/lib/core/client/components/time/KTimeRange.vue +144 -0
  322. package/lib/core/client/components/viewer/KModalViewer.vue +6 -0
  323. package/lib/core/client/components/viewer/KViewer.vue +0 -6
  324. package/lib/core/client/i18n/core_en.json +133 -93
  325. package/lib/core/client/i18n/core_fr.json +56 -16
  326. package/lib/core/client/index.js +28 -14
  327. package/lib/core/client/index.js.map +1 -1
  328. package/lib/core/client/mixins/mixin.authorisation.js +28 -18
  329. package/lib/core/client/mixins/mixin.authorisation.js.map +1 -1
  330. package/lib/core/client/mixins/mixin.base-collection.js +57 -9
  331. package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
  332. package/lib/core/client/mixins/mixin.base-context.js +1 -1
  333. package/lib/core/client/mixins/mixin.base-context.js.map +1 -1
  334. package/lib/core/client/mixins/mixin.base-editor.js +26 -16
  335. package/lib/core/client/mixins/mixin.base-editor.js.map +1 -1
  336. package/lib/core/client/mixins/mixin.base-field.js +0 -4
  337. package/lib/core/client/mixins/mixin.base-field.js.map +1 -1
  338. package/lib/core/client/mixins/mixin.base-item.js +29 -14
  339. package/lib/core/client/mixins/mixin.base-item.js.map +1 -1
  340. package/lib/core/client/mixins/mixin.base-viewer.js +0 -2
  341. package/lib/core/client/mixins/mixin.base-viewer.js.map +1 -1
  342. package/lib/core/client/mixins/mixin.object-proxy.js +17 -3
  343. package/lib/core/client/mixins/mixin.object-proxy.js.map +1 -1
  344. package/lib/core/client/mixins/mixin.schema-proxy.js +31 -0
  345. package/lib/core/client/mixins/mixin.schema-proxy.js.map +1 -1
  346. package/lib/core/client/mixins/mixin.service.js +5 -33
  347. package/lib/core/client/mixins/mixin.service.js.map +1 -1
  348. package/lib/core/client/services/index.js +23 -0
  349. package/lib/core/client/services/index.js.map +1 -1
  350. package/lib/core/client/services/local-settings.service.js +4 -0
  351. package/lib/core/client/services/local-settings.service.js.map +1 -1
  352. package/lib/core/client/time.js +131 -0
  353. package/lib/core/client/time.js.map +1 -0
  354. package/lib/core/common/permissions.js +65 -23
  355. package/lib/core/common/permissions.js.map +1 -1
  356. package/lib/core/common/schemas/groups.create.json +1 -1
  357. package/lib/core/common/schemas/groups.update.json +1 -1
  358. package/lib/core/common/schemas/organisations.create.json +1 -1
  359. package/lib/core/common/schemas/organisations.update.json +2 -2
  360. package/lib/core/common/schemas/settings.update.json +139 -0
  361. package/lib/core/common/schemas/tags.update.json +9 -1
  362. package/lib/map/api/hooks/hooks.query.js +48 -27
  363. package/lib/map/api/hooks/hooks.query.js.map +1 -1
  364. package/lib/map/api/services/features/features.hooks.js +1 -1
  365. package/lib/map/api/services/features/features.hooks.js.map +1 -1
  366. package/lib/map/client/components/KColorLegend.vue +25 -23
  367. package/lib/map/client/components/KFavoriteViews.vue +71 -35
  368. package/lib/map/client/components/KFeaturesChart.vue +11 -9
  369. package/lib/map/client/components/KFeaturesFilter.vue +15 -7
  370. package/lib/map/client/components/KFeaturesTable.vue +27 -2
  371. package/lib/map/client/components/KLayerEditionToolbar.vue +43 -0
  372. package/lib/map/client/components/KLayerStyleEditor.vue +10 -4
  373. package/lib/map/client/components/KLayerStyleForm.vue +14 -11
  374. package/lib/map/client/components/KLocationInput.vue +126 -65
  375. package/lib/map/client/components/KLocationMap.vue +199 -84
  376. package/lib/map/client/components/KPositionIndicator.vue +1 -0
  377. package/lib/map/client/components/KTimeline.vue +41 -36
  378. package/lib/map/client/components/KUrlLegend.vue +21 -19
  379. package/lib/map/client/components/catalog/KBaseLayersSelector.vue +105 -0
  380. package/lib/map/client/components/catalog/KCatalog.vue +14 -2
  381. package/lib/map/client/components/catalog/KConnectLayer.vue +31 -11
  382. package/lib/map/client/components/catalog/KCreateLayer.vue +37 -14
  383. package/lib/map/client/components/catalog/KImportLayer.vue +28 -8
  384. package/lib/map/client/components/catalog/KLayerCategories.vue +86 -62
  385. package/lib/map/client/components/catalog/KLayersSelector.vue +42 -42
  386. package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
  387. package/lib/map/client/components/form/KLocationField.vue +1 -1
  388. package/lib/map/client/components/form/KOwsLayerField.vue +21 -2
  389. package/lib/map/client/components/form/KOwsServiceField.vue +1 -0
  390. package/lib/map/client/components/widget/KInformationBox.vue +10 -16
  391. package/lib/map/client/components/widget/KMapillaryViewer.vue +59 -49
  392. package/lib/map/client/components/widget/KTimeSeries.vue +39 -29
  393. package/lib/map/client/i18n/map_en.json +65 -17
  394. package/lib/map/client/i18n/map_fr.json +67 -20
  395. package/lib/map/client/init.js +18 -6
  396. package/lib/map/client/init.js.map +1 -1
  397. package/lib/map/client/leaflet/GSMaPLayer.js +4 -9
  398. package/lib/map/client/leaflet/GSMaPLayer.js.map +1 -1
  399. package/lib/map/client/leaflet/GradientPath.js.map +1 -1
  400. package/lib/map/client/leaflet/MaskLayer.js +64 -0
  401. package/lib/map/client/leaflet/MaskLayer.js.map +1 -0
  402. package/lib/map/client/mixins/globe/mixin.base-globe.js +4 -1
  403. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  404. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +7 -9
  405. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  406. package/lib/map/client/mixins/index.js +8 -13
  407. package/lib/map/client/mixins/index.js.map +1 -1
  408. package/lib/map/client/mixins/map/mixin.base-map.js +30 -6
  409. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  410. package/lib/map/client/mixins/map/mixin.canvas-layers.js +274 -51
  411. package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
  412. package/lib/map/client/mixins/map/mixin.edit-layers.js +218 -121
  413. package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
  414. package/lib/map/client/mixins/map/mixin.file-layers.js +25 -18
  415. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  416. package/lib/map/client/mixins/map/mixin.geojson-layers.js +18 -10
  417. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  418. package/lib/map/client/mixins/map/mixin.georaster-layers.js +7 -4
  419. package/lib/map/client/mixins/map/mixin.georaster-layers.js.map +1 -1
  420. package/lib/map/client/mixins/map/mixin.gsmap-layers.js +3 -3
  421. package/lib/map/client/mixins/map/mixin.gsmap-layers.js.map +1 -1
  422. package/lib/map/client/mixins/map/mixin.heatmap-layers.js +8 -10
  423. package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
  424. package/lib/map/client/mixins/map/mixin.mapillary-layers.js +25 -40
  425. package/lib/map/client/mixins/map/mixin.mapillary-layers.js.map +1 -1
  426. package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +5 -3
  427. package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js.map +1 -1
  428. package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js +5 -3
  429. package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
  430. package/lib/map/client/mixins/mixin.activity.js +60 -68
  431. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  432. package/lib/map/client/mixins/mixin.feature-selection.js +8 -10
  433. package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
  434. package/lib/map/client/mixins/mixin.feature-service.js +7 -5
  435. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  436. package/lib/map/client/mixins/mixin.weacast.js +6 -4
  437. package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
  438. package/lib/map/client/pixi-utils.js +9 -0
  439. package/lib/map/client/pixi-utils.js.map +1 -1
  440. package/lib/map/client/utils.js +50 -0
  441. package/lib/map/client/utils.js.map +1 -1
  442. package/lib/map/common/wfs-utils.js +1 -1
  443. package/lib/map/common/wfs-utils.js.map +1 -1
  444. package/lib/map/common/wmts-utils.js +31 -7
  445. package/lib/map/common/wmts-utils.js.map +1 -1
  446. package/lib/test/client/core/account.js +100 -0
  447. package/lib/test/client/core/account.js.map +1 -0
  448. package/lib/test/client/core/api.js +400 -0
  449. package/lib/test/client/core/api.js.map +1 -0
  450. package/lib/test/client/core/collection.js +109 -0
  451. package/lib/test/client/core/collection.js.map +1 -0
  452. package/lib/test/client/core/index.js +90 -0
  453. package/lib/test/client/core/index.js.map +1 -0
  454. package/lib/test/client/core/layout.js +221 -0
  455. package/lib/test/client/core/layout.js.map +1 -0
  456. package/lib/test/client/core/runner.js +204 -0
  457. package/lib/test/client/core/runner.js.map +1 -0
  458. package/lib/test/client/core/screens.js +68 -0
  459. package/lib/test/client/core/screens.js.map +1 -0
  460. package/lib/test/client/core/utils.js +304 -0
  461. package/lib/test/client/core/utils.js.map +1 -0
  462. package/lib/test/client/index.js +20 -0
  463. package/lib/test/client/index.js.map +1 -0
  464. package/lib/test/client/map/catalog.js +191 -0
  465. package/lib/test/client/map/catalog.js.map +1 -0
  466. package/lib/test/client/map/controls.js +54 -0
  467. package/lib/test/client/map/controls.js.map +1 -0
  468. package/lib/test/client/map/index.js +30 -0
  469. package/lib/test/client/map/index.js.map +1 -0
  470. package/package.json +17 -9
  471. package/test.client.js +1 -0
  472. package/tests/core/test-log-2021-07-15.log +71 -0
  473. package/tests/core/test-log-2021-09-02.log +47 -0
  474. package/tests/map/test-log-%DATE%.logYYYY-07-DD +12 -0
  475. package/tests/map/test-log-%DATE%.logYYYY-09-DD +6 -0
  476. package/tests/map/test-log-2021-07-12.log +12 -0
  477. package/tests/map/test-log-2021-07-15.log +5 -0
  478. package/tests/map/test-log-2021-09-02.log +3 -0
  479. package/.nyc_output/11cd93d8-69cb-405c-98a3-d249ea35b6da.json +0 -1
  480. package/.nyc_output/2bece194-92f7-4971-a688-10604044a7fa.json +0 -1
  481. package/.nyc_output/5ddee33e-b658-4c8e-a247-54f575ac67e8.json +0 -1
  482. package/.nyc_output/78760ae4-555f-4d9c-a6a1-acf5e2f0fe45.json +0 -1
  483. package/.nyc_output/d0bb2559-084e-4c92-b9e6-29a9abd41f7c.json +0 -1
  484. package/.nyc_output/processinfo/0b8aa700-8daa-49ce-85e7-a8f8965d55f0.json +0 -1
  485. package/.nyc_output/processinfo/11cd93d8-69cb-405c-98a3-d249ea35b6da.json +0 -1
  486. package/.nyc_output/processinfo/20df4355-911a-4b16-a8ab-d3392e9f0a7f.json +0 -1
  487. package/.nyc_output/processinfo/257af0bb-96c3-465a-b5ef-a1df60078d5f.json +0 -1
  488. package/.nyc_output/processinfo/284aebfa-23fd-425f-9d72-e4b8904dc224.json +0 -1
  489. package/.nyc_output/processinfo/5cbee06e-be6e-468a-bd78-4793ee785fe4.json +0 -1
  490. package/.nyc_output/processinfo/5ddee33e-b658-4c8e-a247-54f575ac67e8.json +0 -1
  491. package/.nyc_output/processinfo/78760ae4-555f-4d9c-a6a1-acf5e2f0fe45.json +0 -1
  492. package/.nyc_output/processinfo/d0bb2559-084e-4c92-b9e6-29a9abd41f7c.json +0 -1
  493. package/lib/core/client/components/frame/KLabel.vue +0 -56
  494. package/lib/core/client/components/team/KTagsPane.vue +0 -35
  495. package/lib/map/client/leaflet/TiledMapillaryLayer.js +0 -137
  496. package/lib/map/client/leaflet/TiledMapillaryLayer.js.map +0 -1
  497. package/lib/map/client/mixins/mixin.time.js +0 -73
  498. package/lib/map/client/mixins/mixin.time.js.map +0 -1
  499. package/tests/core/account.test.js +0 -415
  500. package/tests/core/client.test.js.skip +0 -37
  501. package/tests/core/config/default.js +0 -97
  502. package/tests/core/config/email-templates/confirmInvitation/html.ejs +0 -18
  503. package/tests/core/config/email-templates/identityChange/html.ejs +0 -12
  504. package/tests/core/config/email-templates/newDevice/html.ejs +0 -7
  505. package/tests/core/config/email-templates/passwordChange/html.ejs +0 -5
  506. package/tests/core/config/email-templates/resendVerifySignup/html.ejs +0 -10
  507. package/tests/core/config/email-templates/resetPwd/html.ejs +0 -5
  508. package/tests/core/config/email-templates/sendResetPwd/html.ejs +0 -8
  509. package/tests/core/config/email-templates/verifySignup/html.ejs +0 -3
  510. package/tests/core/data/10k_most_common_passwords.txt +0 -10000
  511. package/tests/core/data/logo.png +0 -0
  512. package/tests/core/hooks.test.js +0 -175
  513. package/tests/core/index.test.js +0 -418
  514. package/tests/core/notifications.test.js +0 -465
  515. package/tests/core/storage.test.js +0 -134
  516. package/tests/core/team.test.js +0 -610
  517. package/tests/core/utils.js +0 -59
  518. package/tests/map/alerts.test.js +0 -554
  519. package/tests/map/config/default.js +0 -112
  520. package/tests/map/config/layers.json +0 -37
  521. package/tests/map/daptiles.test.js +0 -41
  522. package/tests/map/data/DescribeCoverage.xml +0 -55
  523. package/tests/map/data/GetCoverage.tif +0 -0
  524. package/tests/map/data/adsb.observations.json +0 -132
  525. package/tests/map/data/dataset.grb.das +0 -55
  526. package/tests/map/data/dataset.grb.dds +0 -17
  527. package/tests/map/data/dataset.grb.dods +0 -0
  528. package/tests/map/data/lat_lon_bounds.grb.dods +0 -0
  529. package/tests/map/data/subdataset.grb.dods +0 -0
  530. package/tests/map/data/vigicrues.observations.json +0 -47042
  531. package/tests/map/data/vigicrues.stations.json +0 -15422
  532. package/tests/map/data/zones.json +0 -1228
  533. package/tests/map/grid-sources.test.js +0 -304
  534. package/tests/map/hooks.test.js +0 -96
  535. package/tests/map/index.test.js +0 -333
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.67% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>77/84</span>
28
+ <span class='fraction'>0/72</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70.59% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>24/34</span>
35
+ <span class='fraction'>0/34</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>13/13</span>
42
+ <span class='fraction'>0/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.67% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>74/79</span>
49
+ <span class='fraction'>0/67</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line high'></div>
58
+ <div class='status-line low'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -228,157 +228,157 @@
228
228
  <a name='L169'></a><a href='#L169'>169</a>
229
229
  <a name='L170'></a><a href='#L170'>170</a>
230
230
  <a name='L171'></a><a href='#L171'>171</a>
231
- <a name='L172'></a><a href='#L172'>172</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-yes">1x</span>
233
- <span class="cline-any cline-yes">1x</span>
234
- <span class="cline-any cline-yes">1x</span>
235
- <span class="cline-any cline-yes">1x</span>
236
- <span class="cline-any cline-yes">1x</span>
237
- <span class="cline-any cline-yes">1x</span>
238
- <span class="cline-any cline-yes">1x</span>
231
+ <a name='L172'></a><a href='#L172'>172</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
239
232
  <span class="cline-any cline-neutral">&nbsp;</span>
240
233
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-yes">1x</span>
242
234
  <span class="cline-any cline-neutral">&nbsp;</span>
243
235
  <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-yes">12x</span>
245
- <span class="cline-any cline-yes">6x</span>
246
- <span class="cline-any cline-yes">6x</span>
247
- <span class="cline-any cline-yes">8x</span>
248
- <span class="cline-any cline-yes">6x</span>
249
- <span class="cline-any cline-yes">6x</span>
250
- <span class="cline-any cline-yes">6x</span>
251
236
  <span class="cline-any cline-neutral">&nbsp;</span>
252
237
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">6x</span>
254
- <span class="cline-any cline-yes">6x</span>
255
- <span class="cline-any cline-yes">6x</span>
256
- <span class="cline-any cline-yes">6x</span>
257
- <span class="cline-any cline-yes">6x</span>
258
- <span class="cline-any cline-yes">6x</span>
259
- <span class="cline-any cline-yes">6x</span>
238
+ <span class="cline-any cline-no">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-no">&nbsp;</span>
261
242
  <span class="cline-any cline-neutral">&nbsp;</span>
262
243
  <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-yes">14x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-no">&nbsp;</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
250
+ <span class="cline-any cline-no">&nbsp;</span>
264
251
  <span class="cline-any cline-neutral">&nbsp;</span>
265
252
  <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">14x</span>
267
- <span class="cline-any cline-yes">7x</span>
268
253
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">7x</span>
270
- <span class="cline-any cline-yes">7x</span>
271
- <span class="cline-any cline-yes">7x</span>
254
+ <span class="cline-any cline-no">&nbsp;</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-no">&nbsp;</span>
257
+ <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-no">&nbsp;</span>
272
259
  <span class="cline-any cline-no">&nbsp;</span>
273
260
  <span class="cline-any cline-neutral">&nbsp;</span>
274
261
  <span class="cline-any cline-neutral">&nbsp;</span>
275
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-no">&nbsp;</span>
276
264
  <span class="cline-any cline-neutral">&nbsp;</span>
277
265
  <span class="cline-any cline-neutral">&nbsp;</span>
278
266
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">7x</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
280
268
  <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-no">&nbsp;</span>
270
+ <span class="cline-any cline-no">&nbsp;</span>
271
+ <span class="cline-any cline-no">&nbsp;</span>
272
+ <span class="cline-any cline-no">&nbsp;</span>
281
273
  <span class="cline-any cline-neutral">&nbsp;</span>
282
274
  <span class="cline-any cline-neutral">&nbsp;</span>
283
275
  <span class="cline-any cline-neutral">&nbsp;</span>
284
276
  <span class="cline-any cline-neutral">&nbsp;</span>
285
277
  <span class="cline-any cline-neutral">&nbsp;</span>
286
278
  <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-no">&nbsp;</span>
287
280
  <span class="cline-any cline-neutral">&nbsp;</span>
288
281
  <span class="cline-any cline-neutral">&nbsp;</span>
289
282
  <span class="cline-any cline-neutral">&nbsp;</span>
290
283
  <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-yes">7x</span>
292
284
  <span class="cline-any cline-neutral">&nbsp;</span>
293
285
  <span class="cline-any cline-neutral">&nbsp;</span>
294
286
  <span class="cline-any cline-neutral">&nbsp;</span>
295
287
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-yes">7x</span>
297
- <span class="cline-any cline-yes">1x</span>
298
288
  <span class="cline-any cline-neutral">&nbsp;</span>
299
289
  <span class="cline-any cline-neutral">&nbsp;</span>
300
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-no">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-no">&nbsp;</span>
297
+ <span class="cline-any cline-no">&nbsp;</span>
301
298
  <span class="cline-any cline-neutral">&nbsp;</span>
302
299
  <span class="cline-any cline-neutral">&nbsp;</span>
303
300
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">6x</span>
305
301
  <span class="cline-any cline-neutral">&nbsp;</span>
306
302
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">14x</span>
308
- <span class="cline-any cline-yes">7x</span>
309
303
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">7x</span>
311
- <span class="cline-any cline-yes">7x</span>
312
- <span class="cline-any cline-yes">7x</span>
313
304
  <span class="cline-any cline-no">&nbsp;</span>
314
305
  <span class="cline-any cline-neutral">&nbsp;</span>
315
306
  <span class="cline-any cline-neutral">&nbsp;</span>
316
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-no">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
317
314
  <span class="cline-any cline-neutral">&nbsp;</span>
318
315
  <span class="cline-any cline-neutral">&nbsp;</span>
319
316
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">7x</span>
321
317
  <span class="cline-any cline-neutral">&nbsp;</span>
322
318
  <span class="cline-any cline-neutral">&nbsp;</span>
323
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-no">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
322
  <span class="cline-any cline-neutral">&nbsp;</span>
325
323
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">7x</span>
327
- <span class="cline-any cline-yes">7x</span>
328
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
329
327
  <span class="cline-any cline-no">&nbsp;</span>
330
328
  <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-no">&nbsp;</span>
331
330
  <span class="cline-any cline-neutral">&nbsp;</span>
332
331
  <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">7x</span>
334
- <span class="cline-any cline-yes">7x</span>
335
- <span class="cline-any cline-yes">1x</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-no">&nbsp;</span>
336
336
  <span class="cline-any cline-neutral">&nbsp;</span>
337
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
338
  <span class="cline-any cline-neutral">&nbsp;</span>
339
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
340
  <span class="cline-any cline-neutral">&nbsp;</span>
341
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-yes">6x</span>
343
- <span class="cline-any cline-yes">6x</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
345
  <span class="cline-any cline-neutral">&nbsp;</span>
345
346
  <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-yes">28x</span>
347
- <span class="cline-any cline-yes">14x</span>
348
- <span class="cline-any cline-yes">14x</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
348
+ <span class="cline-any cline-no">&nbsp;</span>
349
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-yes">14x</span>
350
+ <span class="cline-any cline-no">&nbsp;</span>
351
351
  <span class="cline-any cline-no">&nbsp;</span>
352
352
  <span class="cline-any cline-no">&nbsp;</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">14x</span>
356
- <span class="cline-any cline-yes">14x</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">14x</span>
359
- <span class="cline-any cline-yes">14x</span>
360
- <span class="cline-any cline-yes">14x</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">12x</span>
363
- <span class="cline-any cline-yes">12x</span>
364
- <span class="cline-any cline-yes">12x</span>
365
- <span class="cline-any cline-yes">12x</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
366
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">6x</span>
368
- <span class="cline-any cline-yes">2x</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
369
  <span class="cline-any cline-neutral">&nbsp;</span>
370
370
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">6x</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-yes">12x</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">2x</span>
376
- <span class="cline-any cline-yes">2x</span>
375
+ <span class="cline-any cline-no">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
378
378
  <span class="cline-any cline-neutral">&nbsp;</span>
379
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">14x</span>
381
- <span class="cline-any cline-yes">14x</span>
380
+ <span class="cline-any cline-no">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
382
  <span class="cline-any cline-neutral">&nbsp;</span>
383
383
  <span class="cline-any cline-neutral">&nbsp;</span>
384
384
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -389,14 +389,14 @@
389
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
390
  <span class="cline-any cline-neutral">&nbsp;</span>
391
391
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">14x</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
393
  <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">14x</span>
395
- <span class="cline-any cline-yes">14x</span>
396
- <span class="cline-any cline-yes">14x</span>
397
- <span class="cline-any cline-yes">14x</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
398
  <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-yes">14x</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
400
  <span class="cline-any cline-neutral">&nbsp;</span>
401
401
  <span class="cline-any cline-neutral">&nbsp;</span>
402
402
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
@@ -406,48 +406,48 @@ import request from 'superagent'
406
406
  import { CronJob } from 'cron'
407
407
  import { Unprocessable } from '@feathersjs/errors'
408
408
  import makeDebug from 'debug'
409
- const debug = makeDebug('kdk:map:alerts:service')
409
+ const debug = <span class="cstat-no" title="statement not covered" >makeDebug('kdk:map:alerts:service')</span>
410
410
  &nbsp;
411
411
  // Alert map
412
- const alerts = {}
412
+ const alerts = <span class="cstat-no" title="statement not covered" >{}</span>
413
413
  &nbsp;
414
414
  export default {
415
- async registerAlert (alert, check = true) {
416
- <span class="missing-if-branch" title="if path not taken" >I</span>if (alerts[alert._id.toString()]) <span class="cstat-no" title="statement not covered" >return</span>
417
- debug('Registering new alert ', alert)
418
- const cronJob = new CronJob(alert.cron, () =&gt; this.checkAlert(alert))
419
- alerts[alert._id.toString()] = cronJob
420
- <span class="missing-if-branch" title="else path not taken" >E</span>if (check) await this.checkAlert(alert)
421
- cronJob.start()
415
+ <span class="fstat-no" title="function not covered" > as</span>ync registerAlert (alert, check = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
416
+ <span class="cstat-no" title="statement not covered" > if (alerts[alert._id.toString()]) <span class="cstat-no" title="statement not covered" >return</span></span>
417
+ <span class="cstat-no" title="statement not covered" > debug('Registering new alert ', alert)</span>
418
+ const cronJob = <span class="cstat-no" title="statement not covered" >new CronJob(alert.cron, <span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >this.checkAlert(alert))</span></span>
419
+ <span class="cstat-no" title="statement not covered" > alerts[alert._id.toString()] = cronJob</span>
420
+ <span class="cstat-no" title="statement not covered" > if (check) <span class="cstat-no" title="statement not covered" >await this.checkAlert(alert)</span></span>
421
+ <span class="cstat-no" title="statement not covered" > cronJob.start()</span>
422
422
  },
423
423
  &nbsp;
424
- async unregisterAlert (alert) {
425
- const id = (typeof alert === 'string' ? alert : <span class="branch-1 cbranch-no" title="branch not covered" >alert._id)</span>
426
- const cronJob = alerts[id.toString()]
427
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!cronJob) <span class="cstat-no" title="statement not covered" >return</span>
428
- debug('Unregistering alert ', alert)
429
- cronJob.stop()
430
- delete alerts[id.toString()]
424
+ <span class="fstat-no" title="function not covered" > as</span>ync unregisterAlert (alert) {
425
+ const id = (<span class="cstat-no" title="statement not covered" >typeof alert === 'string' ? alert : alert._id)</span>
426
+ const cronJob = <span class="cstat-no" title="statement not covered" >alerts[id.toString()]</span>
427
+ <span class="cstat-no" title="statement not covered" > if (!cronJob) <span class="cstat-no" title="statement not covered" >return</span></span>
428
+ <span class="cstat-no" title="statement not covered" > debug('Unregistering alert ', alert)</span>
429
+ <span class="cstat-no" title="statement not covered" > cronJob.stop()</span>
430
+ <span class="cstat-no" title="statement not covered" > delete alerts[id.toString()]</span>
431
431
  },
432
432
  &nbsp;
433
- getConditions (alert) {
434
- return _.mapKeys(alert.conditions, (value, key) =&gt; 'properties.' + key)
433
+ <span class="fstat-no" title="function not covered" > ge</span>tConditions (alert) {
434
+ <span class="cstat-no" title="statement not covered" > return _.mapKeys(alert.conditions, <span class="fstat-no" title="function not covered" >(v</span>alue, key) =&gt; <span class="cstat-no" title="statement not covered" >'properties.' + key)</span></span>
435
435
  },
436
436
  &nbsp;
437
- async checkWeatherAlert (alert) {
438
- const now = moment.utc()
437
+ <span class="fstat-no" title="function not covered" > as</span>ync checkWeatherAlert (alert) {
438
+ const now = <span class="cstat-no" title="statement not covered" >moment.utc()</span>
439
439
  // Convert conditions to internal data model
440
- const conditions = this.getConditions(alert)
441
- const probesService = this.app.getService('probes')
442
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!probesService) {
443
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Unprocessable('Cannot check alert ' + alert._id.toString() + ' as target probes service is not available', {
440
+ const conditions = <span class="cstat-no" title="statement not covered" >this.getConditions(alert)</span>
441
+ const probesService = <span class="cstat-no" title="statement not covered" >this.app.getService('probes')</span>
442
+ <span class="cstat-no" title="statement not covered" > if (!probesService) {</span>
443
+ <span class="cstat-no" title="statement not covered" > throw new Unprocessable('Cannot check alert ' + alert._id.toString() + ' as target probes service is not available', {</span>
444
444
  translation: {
445
445
  key: 'CANNOT_CHECK_ALERT_MISSING_SERVICE'
446
446
  }
447
447
  })
448
448
  }
449
449
  // Perform aggregation over time range
450
- const query = Object.assign({
450
+ const query = <span class="cstat-no" title="statement not covered" >Object.assign({</span>
451
451
  forecastTime: {
452
452
  $gte: now.clone().add(_.get(alert, 'period.start', { seconds: 0 })).toDate(),
453
453
  $lte: now.clone().add(_.get(alert, 'period.end', { seconds: 24 * 3600 })).toDate()
@@ -459,97 +459,97 @@ export default {
459
459
  },
460
460
  aggregate: false
461
461
  })
462
- const result = await probesService.create({
462
+ const result = <span class="cstat-no" title="statement not covered" >await probesService.create({</span>
463
463
  forecast: alert.forecast,
464
464
  elements: alert.elements
465
465
  }, { query })
466
466
  // Check for available data so that we will not close an alert because data is missing
467
- if (result.features.length === 0) {
468
- throw new Unprocessable('Cannot check alert ' + alert._id.toString() + ' as no data is available for ' + alert.forecast, {
467
+ <span class="cstat-no" title="statement not covered" > if (result.features.length === 0) {</span>
468
+ <span class="cstat-no" title="statement not covered" > throw new Unprocessable('Cannot check alert ' + alert._id.toString() + ' as no data is available for ' + alert.forecast, {</span>
469
469
  translation: {
470
470
  key: 'CANNOT_CHECK_ALERT_MISSING_DATA'
471
471
  }
472
472
  })
473
473
  }
474
474
  // Let sift performs condition matching as in this case MongoDB cannot
475
- return result.features.filter(sift(conditions))
475
+ <span class="cstat-no" title="statement not covered" > return result.features.filter(sift(conditions))</span>
476
476
  },
477
477
  &nbsp;
478
- async checkMeasureAlert (alert) {
479
- const now = moment.utc()
478
+ <span class="fstat-no" title="function not covered" > as</span>ync checkMeasureAlert (alert) {
479
+ const now = <span class="cstat-no" title="statement not covered" >moment.utc()</span>
480
480
  // Convert conditions to internal data model
481
- const conditions = this.getConditions(alert)
482
- const featureService = this.app.getService(_.get(alert, 'layer.service'))
483
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!featureService) {
484
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Unprocessable('Cannot check alert ' + alert._id.toString() + ' as target features service ' + _.get(alert, 'layer.service') + ' is not available', {
481
+ const conditions = <span class="cstat-no" title="statement not covered" >this.getConditions(alert)</span>
482
+ const featureService = <span class="cstat-no" title="statement not covered" >this.app.getService(_.get(alert, 'layer.service'))</span>
483
+ <span class="cstat-no" title="statement not covered" > if (!featureService) {</span>
484
+ <span class="cstat-no" title="statement not covered" > throw new Unprocessable('Cannot check alert ' + alert._id.toString() + ' as target features service ' + _.get(alert, 'layer.service') + ' is not available', {</span>
485
485
  translation: {
486
486
  key: 'CANNOT_CHECK_ALERT_MISSING_SERVICE'
487
487
  }
488
488
  })
489
489
  }
490
490
  // Build base query for time range and target feature
491
- const query = {
491
+ const query = <span class="cstat-no" title="statement not covered" >{</span>
492
492
  time: {
493
493
  $gte: now.clone().add(_.get(alert, 'period.start', { seconds: 0 })).toDate(),
494
494
  $lte: now.clone().add(_.get(alert, 'period.end', { seconds: 24 * 3600 })).toDate()
495
495
  }
496
496
  }
497
- <span class="missing-if-branch" title="else path not taken" >E</span>if (_.has(alert, 'layer.featureId')) {
498
- query['properties.' + _.get(alert, 'layer.featureId')] = alert.feature
497
+ <span class="cstat-no" title="statement not covered" > if (_.has(alert, 'layer.featureId')) {</span>
498
+ <span class="cstat-no" title="statement not covered" > query['properties.' + _.get(alert, 'layer.featureId')] = alert.feature</span>
499
499
  } else {
500
- <span class="cstat-no" title="statement not covered" > query._</span>id = alert.feature
500
+ <span class="cstat-no" title="statement not covered" > query._id = alert.feature</span>
501
501
  }
502
502
  // Check for available data so that we will not close an alert because data is missing
503
503
  // $limit = 0 performs a simple count query
504
- let result = await featureService.find({ query: Object.assign({ $limit: 0 }, query) })
505
- if (result.total === 0) {
506
- throw new Unprocessable('Cannot check alert ' + alert._id.toString() + ' as no data is available for features service ' + _.get(alert, 'layer.service'), {
504
+ let result = <span class="cstat-no" title="statement not covered" >await featureService.find({ query: Object.assign({ $limit: 0 }, query) })</span>
505
+ <span class="cstat-no" title="statement not covered" > if (result.total === 0) {</span>
506
+ <span class="cstat-no" title="statement not covered" > throw new Unprocessable('Cannot check alert ' + alert._id.toString() + ' as no data is available for features service ' + _.get(alert, 'layer.service'), {</span>
507
507
  translation: {
508
508
  key: 'CANNOT_CHECK_ALERT_MISSING_DATA'
509
509
  }
510
510
  })
511
511
  }
512
512
  // Perform aggregation over time range
513
- result = await featureService.find({ query: Object.assign(query, conditions) })
514
- return result.features
513
+ <span class="cstat-no" title="statement not covered" > result = await featureService.find({ query: Object.assign(query, conditions) })</span>
514
+ <span class="cstat-no" title="statement not covered" > return result.features</span>
515
515
  },
516
516
  &nbsp;
517
- async checkAlert (alert, options = { patch: true, callWebhook: true }) {
518
- const now = moment.utc()
519
- debug('Checking alert at ' + now.format(), _.omit(alert, ['status', 'webhook']))
517
+ <span class="fstat-no" title="function not covered" > as</span>ync checkAlert (alert, options = <span class="branch-0 cbranch-no" title="branch not covered" >{ patch: true, callWebhook: true })</span> {
518
+ const now = <span class="cstat-no" title="statement not covered" >moment.utc()</span>
519
+ <span class="cstat-no" title="statement not covered" > debug('Checking alert at ' + now.format(), _.omit(alert, ['status', 'webhook']))</span>
520
520
  // First check if still valid
521
- <span class="missing-if-branch" title="if path not taken" >I</span>if (now.isAfter(alert.expireAt)) {
522
- <span class="cstat-no" title="statement not covered" > await t</span>his.unregisterAlert(alert)
521
+ <span class="cstat-no" title="statement not covered" > if (now.isAfter(alert.expireAt)) {</span>
522
+ <span class="cstat-no" title="statement not covered" > await this.unregisterAlert(alert)</span>
523
523
  <span class="cstat-no" title="statement not covered" > return</span>
524
524
  }
525
525
  // Then update alert status starting from previous one (i.e. trigger time stamp, etc.)
526
- const status = _.get(alert, 'status', {})
527
- status.checkedAt = now.clone()
526
+ const status = <span class="cstat-no" title="statement not covered" >_.get(alert, 'status', {})</span>
527
+ <span class="cstat-no" title="statement not covered" > status.checkedAt = now.clone()</span>
528
528
  // Clean any error state
529
- delete status.error
530
- try {
531
- const results = (alert.feature ? await this.checkMeasureAlert(alert) : await this.checkWeatherAlert(alert))
529
+ <span class="cstat-no" title="statement not covered" > delete status.error</span>
530
+ <span class="cstat-no" title="statement not covered" > try {</span>
531
+ const results = (<span class="cstat-no" title="statement not covered" >alert.feature ? await this.checkMeasureAlert(alert) : await this.checkWeatherAlert(alert))</span>
532
532
  // FIXME: check for a specific duration where conditions are met
533
- const isActive = (results.length &gt; 0)
534
- const wasActive = status.active
535
- status.active = isActive
536
- if (isActive) {
533
+ const isActive = (<span class="cstat-no" title="statement not covered" >results.length &gt; 0)</span>
534
+ const wasActive = <span class="cstat-no" title="statement not covered" >status.active</span>
535
+ <span class="cstat-no" title="statement not covered" > status.active = isActive</span>
536
+ <span class="cstat-no" title="statement not covered" > if (isActive) {</span>
537
537
  // If not previously active and it is now add first time stamp
538
- if (!wasActive) {
539
- status.triggeredAt = now.clone()
538
+ <span class="cstat-no" title="statement not covered" > if (!wasActive) {</span>
539
+ <span class="cstat-no" title="statement not covered" > status.triggeredAt = now.clone()</span>
540
540
  }
541
541
  // Update triggers
542
- status.triggers = results
542
+ <span class="cstat-no" title="statement not covered" > status.triggers = results</span>
543
543
  }
544
- debug('Alert ' + alert._id.toString() + ' status', status, ' with ' + results.length + ' triggers')
544
+ <span class="cstat-no" title="statement not covered" > debug('Alert ' + alert._id.toString() + ' status', status, ' with ' + results.length + ' triggers')</span>
545
545
  } catch (error) { // Possible if no data
546
- this.app.logger.error(error.message)
547
- status.error = error.toJSON()
546
+ <span class="cstat-no" title="statement not covered" > this.app.logger.error(error.message)</span>
547
+ <span class="cstat-no" title="statement not covered" > status.error = error.toJSON()</span>
548
548
  }
549
549
  &nbsp;
550
550
  // As we keep in-memory objects avoid them being mutated by hooks processing operation payload
551
- <span class="missing-if-branch" title="else path not taken" >E</span>if (options.patch) {
552
- await this.patch(alert._id.toString(), { status: Object.assign({}, status) })
551
+ <span class="cstat-no" title="statement not covered" > if (options.patch) {</span>
552
+ <span class="cstat-no" title="statement not covered" > await this.patch(alert._id.toString(), { status: Object.assign({}, status) })</span>
553
553
  // DEBUG code to simulate alert closing
554
554
  /*
555
555
  setTimeout(async () =&gt; {
@@ -560,14 +560,14 @@ export default {
560
560
  */
561
561
  }
562
562
  // Keep track of changes in memory as well
563
- Object.assign(alert, { status })
563
+ <span class="cstat-no" title="statement not covered" > Object.assign(alert, { status })</span>
564
564
  // If a webhook is configured call it
565
- const webhook = alert.webhook
566
- <span class="missing-if-branch" title="else path not taken" >E</span>if (options.callWebhook &amp;&amp; webhook) {
567
- const body = Object.assign({ alert: _.omit(alert, ['webhook']) }, _.omit(webhook, ['url']))
568
- await request.post(webhook.url, body)
565
+ const webhook = <span class="cstat-no" title="statement not covered" >alert.webhook</span>
566
+ <span class="cstat-no" title="statement not covered" > if (options.callWebhook &amp;&amp; webhook) {</span>
567
+ const body = <span class="cstat-no" title="statement not covered" >Object.assign({ alert: _.omit(alert, ['webhook']) }, _.omit(webhook, ['url']))</span>
568
+ <span class="cstat-no" title="statement not covered" > await request.post(webhook.url, body)</span>
569
569
  }
570
- return alert
570
+ <span class="cstat-no" title="statement not covered" > return alert</span>
571
571
  }
572
572
  }
573
573
  &nbsp;</pre></td></tr></table></pre>
@@ -577,7 +577,7 @@ export default {
577
577
  <div class='footer quiet pad2 space-top1 center small'>
578
578
  Code coverage generated by
579
579
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
580
- at Tue Jun 08 2021 18:08:52 GMT+0200 (GMT+02:00)
580
+ at Wed Dec 08 2021 20:41:51 GMT+0100 (GMT+01:00)
581
581
  </div>
582
582
  </div>
583
583
  <script src="../../../../prettify.js"></script>