@kalisio/kdk 1.4.2 → 1.6.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 (410) hide show
  1. package/.nyc_output/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
  2. package/.nyc_output/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
  3. package/.nyc_output/{2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json → 27401f21-8ccf-42fa-8230-4232189d86b3.json} +0 -0
  4. package/.nyc_output/{81d21e46-766a-46bc-b1b7-143ca577347a.json → 52278ef5-c337-4724-97be-e2e4416847c5.json} +0 -0
  5. package/.nyc_output/{aaf3ebbb-f895-4d7b-9255-bc5dee832570.json → 5dd49b8a-4c84-42f9-a3d5-712247a84775.json} +0 -0
  6. package/.nyc_output/{dbeb2602-0ac2-4e66-978b-0d29548359ca.json → 612b4859-9645-45c1-a41e-1fae420518c4.json} +0 -0
  7. package/.nyc_output/{e47d1e4c-2fff-4dcb-908f-d3081162547c.json → bab87fe9-d99a-4759-99e6-3fc4622eeca0.json} +0 -0
  8. package/.nyc_output/processinfo/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
  9. package/.nyc_output/processinfo/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
  10. package/.nyc_output/processinfo/27401f21-8ccf-42fa-8230-4232189d86b3.json +1 -0
  11. package/.nyc_output/processinfo/52278ef5-c337-4724-97be-e2e4416847c5.json +1 -0
  12. package/.nyc_output/processinfo/5dd49b8a-4c84-42f9-a3d5-712247a84775.json +1 -0
  13. package/.nyc_output/processinfo/612b4859-9645-45c1-a41e-1fae420518c4.json +1 -0
  14. package/.nyc_output/processinfo/bab87fe9-d99a-4759-99e6-3fc4622eeca0.json +1 -0
  15. package/.nyc_output/processinfo/index.json +1 -1
  16. package/CHANGELOG.md +69 -10
  17. package/coverage/core/api/application.js.html +500 -422
  18. package/coverage/core/api/authentication.js.html +119 -119
  19. package/coverage/core/api/db.js.html +172 -172
  20. package/coverage/core/api/hooks/hooks.account.js.html +45 -45
  21. package/coverage/core/api/hooks/hooks.authentication.js.html +71 -71
  22. package/coverage/core/api/hooks/hooks.authorisations.js.html +368 -353
  23. package/coverage/core/api/hooks/hooks.devices.js.html +49 -49
  24. package/coverage/core/api/hooks/hooks.groups.js.html +37 -37
  25. package/coverage/core/api/hooks/hooks.logger.js.html +27 -27
  26. package/coverage/core/api/hooks/hooks.model.js.html +269 -269
  27. package/coverage/core/api/hooks/hooks.organisations.js.html +190 -190
  28. package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
  29. package/coverage/core/api/hooks/hooks.query.js.html +277 -211
  30. package/coverage/core/api/hooks/hooks.service.js.html +82 -82
  31. package/coverage/core/api/hooks/hooks.storage.js.html +121 -121
  32. package/coverage/core/api/hooks/hooks.tags.js.html +232 -232
  33. package/coverage/core/api/hooks/hooks.users.js.html +263 -263
  34. package/coverage/core/api/hooks/index.html +172 -172
  35. package/coverage/core/api/hooks/index.js.html +24 -24
  36. package/coverage/core/api/index.html +76 -76
  37. package/coverage/core/api/index.js.html +30 -30
  38. package/coverage/core/api/marshall.js.html +57 -57
  39. package/coverage/core/api/models/groups.model.mongodb.js.html +20 -20
  40. package/coverage/core/api/models/index.html +50 -50
  41. package/coverage/core/api/models/organisations.model.mongodb.js.html +12 -12
  42. package/coverage/core/api/models/tags.model.mongodb.js.html +22 -22
  43. package/coverage/core/api/models/users.model.mongodb.js.html +20 -20
  44. package/coverage/core/api/oauth2-handler.js.html +18 -18
  45. package/coverage/core/api/oauth2-verifier.js.html +38 -38
  46. package/coverage/core/api/services/account/account.hooks.js.html +16 -16
  47. package/coverage/core/api/services/account/account.service.js.html +104 -104
  48. package/coverage/core/api/services/account/index.html +32 -32
  49. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  50. package/coverage/core/api/services/authorisations/authorisations.service.js.html +156 -132
  51. package/coverage/core/api/services/authorisations/index.html +28 -28
  52. package/coverage/core/api/services/databases/databases.hooks.js.html +9 -9
  53. package/coverage/core/api/services/databases/databases.service.js.html +12 -12
  54. package/coverage/core/api/services/databases/index.html +24 -24
  55. package/coverage/core/api/services/devices/devices.hooks.js.html +9 -9
  56. package/coverage/core/api/services/devices/devices.service.js.html +121 -121
  57. package/coverage/core/api/services/devices/index.html +28 -28
  58. package/coverage/core/api/services/groups/groups.hooks.js.html +9 -9
  59. package/coverage/core/api/services/groups/index.html +13 -13
  60. package/coverage/core/api/services/index.html +21 -21
  61. package/coverage/core/api/services/index.js.html +118 -118
  62. package/coverage/core/api/services/mailer/index.html +24 -24
  63. package/coverage/core/api/services/mailer/mailer.hooks.js.html +9 -9
  64. package/coverage/core/api/services/mailer/mailer.service.js.html +19 -19
  65. package/coverage/core/api/services/organisations/index.html +24 -24
  66. package/coverage/core/api/services/organisations/organisations.hooks.js.html +8 -8
  67. package/coverage/core/api/services/organisations/organisations.service.js.html +67 -67
  68. package/coverage/core/api/services/pusher/index.html +34 -34
  69. package/coverage/core/api/services/pusher/pusher.channels.js.html +8 -8
  70. package/coverage/core/api/services/pusher/pusher.hooks.js.html +10 -10
  71. package/coverage/core/api/services/pusher/pusher.service.js.html +414 -414
  72. package/coverage/core/api/services/storage/index.html +21 -21
  73. package/coverage/core/api/services/storage/storage.hooks.js.html +35 -35
  74. package/coverage/core/api/services/tags/index.html +21 -21
  75. package/coverage/core/api/services/tags/tags.hooks.js.html +25 -25
  76. package/coverage/core/api/services/users/index.html +21 -21
  77. package/coverage/core/api/services/users/users.hooks.js.html +33 -33
  78. package/coverage/core/common/errors.js.html +1 -1
  79. package/coverage/core/common/index.html +42 -27
  80. package/coverage/core/common/index.js.html +16 -16
  81. package/coverage/core/common/permissions.js.html +320 -290
  82. package/coverage/index.html +181 -181
  83. package/coverage/lcov-report/core/api/application.js.html +500 -422
  84. package/coverage/lcov-report/core/api/authentication.js.html +119 -119
  85. package/coverage/lcov-report/core/api/db.js.html +172 -172
  86. package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +45 -45
  87. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +71 -71
  88. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +368 -353
  89. package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +49 -49
  90. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +37 -37
  91. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +27 -27
  92. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +269 -269
  93. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +190 -190
  94. package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
  95. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +277 -211
  96. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +82 -82
  97. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +121 -121
  98. package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +232 -232
  99. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +263 -263
  100. package/coverage/lcov-report/core/api/hooks/index.html +172 -172
  101. package/coverage/lcov-report/core/api/hooks/index.js.html +24 -24
  102. package/coverage/lcov-report/core/api/index.html +76 -76
  103. package/coverage/lcov-report/core/api/index.js.html +30 -30
  104. package/coverage/lcov-report/core/api/marshall.js.html +57 -57
  105. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +20 -20
  106. package/coverage/lcov-report/core/api/models/index.html +50 -50
  107. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +12 -12
  108. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +22 -22
  109. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +20 -20
  110. package/coverage/lcov-report/core/api/oauth2-handler.js.html +18 -18
  111. package/coverage/lcov-report/core/api/oauth2-verifier.js.html +38 -38
  112. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +16 -16
  113. package/coverage/lcov-report/core/api/services/account/account.service.js.html +104 -104
  114. package/coverage/lcov-report/core/api/services/account/index.html +32 -32
  115. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  116. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +156 -132
  117. package/coverage/lcov-report/core/api/services/authorisations/index.html +28 -28
  118. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +9 -9
  119. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +12 -12
  120. package/coverage/lcov-report/core/api/services/databases/index.html +24 -24
  121. package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +9 -9
  122. package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +121 -121
  123. package/coverage/lcov-report/core/api/services/devices/index.html +28 -28
  124. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +9 -9
  125. package/coverage/lcov-report/core/api/services/groups/index.html +13 -13
  126. package/coverage/lcov-report/core/api/services/index.html +21 -21
  127. package/coverage/lcov-report/core/api/services/index.js.html +118 -118
  128. package/coverage/lcov-report/core/api/services/mailer/index.html +24 -24
  129. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +9 -9
  130. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +19 -19
  131. package/coverage/lcov-report/core/api/services/organisations/index.html +24 -24
  132. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +8 -8
  133. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +67 -67
  134. package/coverage/lcov-report/core/api/services/pusher/index.html +34 -34
  135. package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +8 -8
  136. package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +10 -10
  137. package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +414 -414
  138. package/coverage/lcov-report/core/api/services/storage/index.html +21 -21
  139. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +35 -35
  140. package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
  141. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +25 -25
  142. package/coverage/lcov-report/core/api/services/users/index.html +21 -21
  143. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +33 -33
  144. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  145. package/coverage/lcov-report/core/common/index.html +42 -27
  146. package/coverage/lcov-report/core/common/index.js.html +16 -16
  147. package/coverage/lcov-report/core/common/permissions.js.html +320 -290
  148. package/coverage/lcov-report/index.html +181 -181
  149. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  150. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +25 -7
  151. package/coverage/lcov-report/map/api/hooks/index.html +7 -7
  152. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  153. package/coverage/lcov-report/map/api/index.html +1 -1
  154. package/coverage/lcov-report/map/api/index.js.html +1 -1
  155. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  156. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  157. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  158. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +14 -5
  159. package/coverage/lcov-report/map/api/models/index.html +7 -7
  160. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  161. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  163. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
  164. package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
  165. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  166. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  167. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
  168. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  169. package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  170. package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
  171. package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
  172. package/coverage/lcov-report/map/api/services/index.html +1 -1
  173. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  174. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  175. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  176. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  177. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  178. package/coverage/lcov-report/map/common/index.html +1 -1
  179. package/coverage/lcov-report/map/common/index.js.html +1 -1
  180. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  181. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  182. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  183. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  184. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  185. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  186. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  187. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  188. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  189. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  190. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  191. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  192. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  193. package/coverage/lcov.info +3683 -3825
  194. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  195. package/coverage/map/api/hooks/hooks.query.js.html +25 -7
  196. package/coverage/map/api/hooks/index.html +7 -7
  197. package/coverage/map/api/hooks/index.js.html +1 -1
  198. package/coverage/map/api/index.html +1 -1
  199. package/coverage/map/api/index.js.html +1 -1
  200. package/coverage/map/api/marshall.js.html +1 -1
  201. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  202. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  203. package/coverage/map/api/models/features.model.mongodb.js.html +14 -5
  204. package/coverage/map/api/models/index.html +7 -7
  205. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  206. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  207. package/coverage/map/api/services/alerts/index.html +1 -1
  208. package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
  209. package/coverage/map/api/services/catalog/index.html +1 -1
  210. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  211. package/coverage/map/api/services/daptiles/index.html +1 -1
  212. package/coverage/map/api/services/features/features.hooks.js.html +1 -1
  213. package/coverage/map/api/services/features/index.html +1 -1
  214. package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  215. package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
  216. package/coverage/map/api/services/geocoder/index.html +1 -1
  217. package/coverage/map/api/services/index.html +1 -1
  218. package/coverage/map/api/services/index.js.html +1 -1
  219. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  220. package/coverage/map/common/errors.js.html +1 -1
  221. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  222. package/coverage/map/common/grid.js.html +1 -1
  223. package/coverage/map/common/index.html +1 -1
  224. package/coverage/map/common/index.js.html +1 -1
  225. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  226. package/coverage/map/common/moment-utils.js.html +1 -1
  227. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  228. package/coverage/map/common/opendap-utils.js.html +1 -1
  229. package/coverage/map/common/permissions.js.html +1 -1
  230. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  231. package/coverage/map/common/tms-utils.js.html +1 -1
  232. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  233. package/coverage/map/common/wcs-utils.js.html +1 -1
  234. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  235. package/coverage/map/common/wfs-utils.js.html +1 -1
  236. package/coverage/map/common/wms-utils.js.html +1 -1
  237. package/coverage/map/common/wmts-utils.js.html +1 -1
  238. package/extras/tours/map/navigation-bar.js +49 -1
  239. package/lib/core/api/application.js +35 -9
  240. package/lib/core/api/application.js.map +1 -1
  241. package/lib/core/api/hooks/hooks.authorisations.js +8 -1
  242. package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
  243. package/lib/core/api/hooks/hooks.query.js +135 -100
  244. package/lib/core/api/hooks/hooks.query.js.map +1 -1
  245. package/lib/core/api/services/authorisations/authorisations.service.js +13 -1
  246. package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
  247. package/lib/core/api/services/pusher/pusher.service.js +40 -16
  248. package/lib/core/api/services/pusher/pusher.service.js.map +1 -1
  249. package/lib/core/client/components/collection/KColumn.vue +29 -28
  250. package/lib/core/client/components/collection/KFilter.vue +97 -72
  251. package/lib/core/client/components/editor/KModalEditor.vue +3 -4
  252. package/lib/core/client/components/editor/KSettingsEditor.vue +6 -2
  253. package/lib/core/client/components/form/KFileField.vue +14 -36
  254. package/lib/core/client/components/form/KRoleField.vue +5 -2
  255. package/lib/core/client/components/form/KTextField.vue +12 -2
  256. package/lib/core/client/components/form/KUnitField.vue +57 -0
  257. package/lib/core/client/components/form/KUrlField.vue +1 -1
  258. package/lib/core/client/components/frame/KAction.vue +1 -2
  259. package/lib/core/client/components/frame/KModal.vue +66 -20
  260. package/lib/core/client/components/frame/KScrollArea.vue +65 -0
  261. package/lib/core/client/components/frame/index.js +6 -1
  262. package/lib/core/client/components/frame/index.js.map +1 -1
  263. package/lib/core/client/components/input/KColorChooser.vue +3 -5
  264. package/lib/core/client/components/input/KIconChooser.vue +38 -40
  265. package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
  266. package/lib/core/client/components/layout/KAbout.vue +47 -49
  267. package/lib/core/client/components/team/KAddMember.vue +1 -1
  268. package/lib/core/client/components/team/KChangeRole.vue +11 -14
  269. package/lib/core/client/components/team/KGroupCard.vue +12 -5
  270. package/lib/core/client/components/team/KGroupsActivity.vue +1 -1
  271. package/lib/core/client/components/team/KJoinGroup.vue +22 -22
  272. package/lib/core/client/components/team/KMemberCard.vue +19 -4
  273. package/lib/core/client/components/viewer/KModalViewer.vue +10 -9
  274. package/lib/core/client/i18n/core_en.json +72 -8
  275. package/lib/core/client/i18n/core_fr.json +66 -8
  276. package/lib/core/client/index.js +31 -0
  277. package/lib/core/client/index.js.map +1 -1
  278. package/lib/core/client/layout.js +8 -1
  279. package/lib/core/client/layout.js.map +1 -1
  280. package/lib/core/client/mixins/mixin.base-widget.js +5 -3
  281. package/lib/core/client/mixins/mixin.base-widget.js.map +1 -1
  282. package/lib/core/client/reader.js +85 -0
  283. package/lib/core/client/reader.js.map +1 -0
  284. package/lib/core/client/readers/index.js +30 -0
  285. package/lib/core/client/readers/index.js.map +1 -0
  286. package/lib/core/client/readers/reader.csv.js +54 -0
  287. package/lib/core/client/readers/reader.csv.js.map +1 -0
  288. package/lib/core/client/readers/reader.json.js +49 -0
  289. package/lib/core/client/readers/reader.json.js.map +1 -0
  290. package/lib/core/client/services/index.js +14 -3
  291. package/lib/core/client/services/index.js.map +1 -1
  292. package/lib/core/client/services/local-settings.service.js +6 -4
  293. package/lib/core/client/services/local-settings.service.js.map +1 -1
  294. package/lib/core/client/time.js +4 -3
  295. package/lib/core/client/time.js.map +1 -1
  296. package/lib/core/client/units.js +195 -0
  297. package/lib/core/client/units.js.map +1 -0
  298. package/lib/core/common/permissions.js +44 -34
  299. package/lib/core/common/permissions.js.map +1 -1
  300. package/lib/core/common/schemas/settings.update.json +72 -0
  301. package/lib/map/api/hooks/hooks.query.js +7 -2
  302. package/lib/map/api/hooks/hooks.query.js.map +1 -1
  303. package/lib/map/api/models/features.model.mongodb.js +3 -0
  304. package/lib/map/api/models/features.model.mongodb.js.map +1 -1
  305. package/lib/map/client/components/KCaptureToolbar.vue +151 -0
  306. package/lib/map/client/components/KColorLegend.vue +16 -4
  307. package/lib/map/client/components/KFeaturesChart.vue +10 -11
  308. package/lib/map/client/components/KFeaturesFilter.vue +40 -39
  309. package/lib/map/client/components/KFeaturesTable.vue +15 -16
  310. package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
  311. package/lib/map/client/components/KLayerStyleEditor.vue +3 -2
  312. package/lib/map/client/components/KLayerStyleForm.vue +38 -27
  313. package/lib/map/client/components/KMeasureTool.vue +337 -0
  314. package/lib/map/client/components/KTimeline.vue +5 -9
  315. package/lib/map/client/components/catalog/KAddLayer.vue +3 -2
  316. package/lib/map/client/components/catalog/KCatalog.vue +26 -7
  317. package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
  318. package/lib/map/client/components/catalog/KLayerCategories.vue +3 -2
  319. package/lib/map/client/components/catalog/KLayersSelector.vue +8 -6
  320. package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +1 -1
  321. package/lib/map/client/components/widget/KInformationBox.vue +8 -17
  322. package/lib/map/client/components/widget/KMapillaryViewer.vue +5 -1
  323. package/lib/map/client/components/widget/KTimeSeries.vue +92 -9
  324. package/lib/map/client/i18n/map_en.json +51 -20
  325. package/lib/map/client/i18n/map_fr.json +51 -20
  326. package/lib/map/client/init.js +7 -1
  327. package/lib/map/client/init.js.map +1 -1
  328. package/lib/map/client/leaflet/MaskLayer.js +9 -0
  329. package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
  330. package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
  331. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  332. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +16 -21
  333. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  334. package/lib/map/client/mixins/globe/mixin.popup.js +7 -1
  335. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  336. package/lib/map/client/mixins/globe/mixin.tooltip.js +7 -1
  337. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  338. package/lib/map/client/mixins/map/mixin.base-map.js +54 -9
  339. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  340. package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
  341. package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
  342. package/lib/map/client/mixins/map/mixin.file-layers.js +51 -97
  343. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  344. package/lib/map/client/mixins/map/mixin.geojson-layers.js +43 -11
  345. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  346. package/lib/map/client/mixins/map/mixin.popup.js +7 -1
  347. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  348. package/lib/map/client/mixins/map/mixin.style.js +1 -1
  349. package/lib/map/client/mixins/map/mixin.style.js.map +1 -1
  350. package/lib/map/client/mixins/map/mixin.tooltip.js +7 -1
  351. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  352. package/lib/map/client/mixins/mixin.activity.js +2 -0
  353. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  354. package/lib/map/client/mixins/mixin.context.js +26 -3
  355. package/lib/map/client/mixins/mixin.context.js.map +1 -1
  356. package/lib/map/client/mixins/mixin.feature-service.js +3 -3
  357. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  358. package/lib/map/client/mixins/mixin.infobox.js +4 -0
  359. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  360. package/lib/map/client/mixins/mixin.weacast.js +7 -5
  361. package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
  362. package/lib/map/client/readers/index.js +54 -0
  363. package/lib/map/client/readers/index.js.map +1 -0
  364. package/lib/map/client/readers/reader.geojson.js +87 -0
  365. package/lib/map/client/readers/reader.geojson.js.map +1 -0
  366. package/lib/map/client/readers/reader.gpx.js +52 -0
  367. package/lib/map/client/readers/reader.gpx.js.map +1 -0
  368. package/lib/map/client/readers/reader.kml.js +52 -0
  369. package/lib/map/client/readers/reader.kml.js.map +1 -0
  370. package/lib/map/client/readers/reader.shp.js +116 -0
  371. package/lib/map/client/readers/reader.shp.js.map +1 -0
  372. package/lib/map/client/utils.js +0 -7
  373. package/lib/map/client/utils.js.map +1 -1
  374. package/lib/test/client/core/account.js +1 -1
  375. package/lib/test/client/core/account.js.map +1 -1
  376. package/lib/test/client/core/runner.js +1 -2
  377. package/lib/test/client/core/runner.js.map +1 -1
  378. package/lib/test/client/core/screens.js +1 -1
  379. package/lib/test/client/core/screens.js.map +1 -1
  380. package/lib/test/client/core/utils.js +2 -2
  381. package/lib/test/client/core/utils.js.map +1 -1
  382. package/lib/test/client/map/catalog.js +50 -49
  383. package/lib/test/client/map/catalog.js.map +1 -1
  384. package/package.json +3 -3
  385. package/.nyc_output/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +0 -1
  386. package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
  387. package/.nyc_output/processinfo/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +0 -1
  388. package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +0 -1
  389. package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +0 -1
  390. package/.nyc_output/processinfo/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
  391. package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +0 -1
  392. package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +0 -1
  393. package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +0 -1
  394. package/extras/testcafe/Dockerfile +0 -48
  395. package/extras/testcafe/docker-entrypoint.sh +0 -27
  396. package/extras/testcafe/page-models/core/account.js +0 -75
  397. package/extras/testcafe/page-models/core/base-collection.js +0 -41
  398. package/extras/testcafe/page-models/core/base-page.js +0 -25
  399. package/extras/testcafe/page-models/core/groups.js +0 -36
  400. package/extras/testcafe/page-models/core/index.js +0 -140
  401. package/extras/testcafe/page-models/core/layout.js +0 -145
  402. package/extras/testcafe/page-models/core/members.js +0 -98
  403. package/extras/testcafe/page-models/core/organisations.js +0 -76
  404. package/extras/testcafe/page-models/core/screens.js +0 -99
  405. package/extras/testcafe/page-models/core/tags.js +0 -21
  406. package/extras/testcafe/page-models/map/add-layer.js +0 -51
  407. package/extras/testcafe/page-models/map/catalog.js +0 -132
  408. package/extras/testcafe/page-models/map/index.js +0 -36
  409. package/extras/testcafe/page-models/map/map-activity.js +0 -42
  410. package/extras/testcafe/page-models/map/timeline.js +0 -67
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">61.68% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>66/107</span>
28
+ <span class='fraction'>0/104</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">30.56% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>11/36</span>
35
+ <span class='fraction'>0/36</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>18/24</span>
42
+ <span class='fraction'>0/23</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">62.26% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>66/106</span>
49
+ <span class='fraction'>0/103</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 medium'></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>
@@ -303,10 +303,10 @@
303
303
  <a name='L244'></a><a href='#L244'>244</a>
304
304
  <a name='L245'></a><a href='#L245'>245</a>
305
305
  <a name='L246'></a><a href='#L246'>246</a>
306
- <a name='L247'></a><a href='#L247'>247</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
307
- <span class="cline-any cline-yes">1x</span>
308
- <span class="cline-any cline-yes">1x</span>
309
- <span class="cline-any cline-yes">1x</span>
306
+ <a name='L247'></a><a href='#L247'>247</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-no">&nbsp;</span>
310
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
312
  <span class="cline-any cline-no">&nbsp;</span>
@@ -324,59 +324,59 @@
324
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
325
  <span class="cline-any cline-neutral">&nbsp;</span>
326
326
  <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">3x</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
328
328
  <span class="cline-any cline-no">&nbsp;</span>
329
329
  <span class="cline-any cline-neutral">&nbsp;</span>
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-yes">3x</span>
332
- <span class="cline-any cline-yes">3x</span>
333
- <span class="cline-any cline-yes">3x</span>
331
+ <span class="cline-any cline-no">&nbsp;</span>
332
+ <span class="cline-any cline-no">&nbsp;</span>
333
+ <span class="cline-any cline-no">&nbsp;</span>
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
335
  <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-yes">3x</span>
336
+ <span class="cline-any cline-no">&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">3x</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
343
  <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">3x</span>
345
- <span class="cline-any cline-yes">3x</span>
346
- <span class="cline-any cline-yes">3x</span>
344
+ <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-no">&nbsp;</span>
346
+ <span class="cline-any cline-no">&nbsp;</span>
347
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
348
  <span class="cline-any cline-neutral">&nbsp;</span>
349
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-yes">3x</span>
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">3x</span>
356
- <span class="cline-any cline-yes">3x</span>
357
- <span class="cline-any cline-yes">3x</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">3x</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
362
362
  <span class="cline-any cline-neutral">&nbsp;</span>
363
363
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-yes">3x</span>
365
- <span class="cline-any cline-yes">3x</span>
366
- <span class="cline-any cline-yes">3x</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
367
  <span class="cline-any cline-neutral">&nbsp;</span>
368
368
  <span class="cline-any cline-neutral">&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">3x</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
372
  <span class="cline-any cline-no">&nbsp;</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">3x</span>
376
- <span class="cline-any cline-yes">3x</span>
377
- <span class="cline-any cline-yes">3x</span>
375
+ <span class="cline-any cline-no">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
378
378
  <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-yes">3x</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
380
  <span class="cline-any cline-neutral">&nbsp;</span>
381
381
  <span class="cline-any cline-neutral">&nbsp;</span>
382
382
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -388,21 +388,21 @@
388
388
  <span class="cline-any cline-neutral">&nbsp;</span>
389
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
390
  <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-yes">3x</span>
392
- <span class="cline-any cline-yes">3x</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
393
  <span class="cline-any cline-neutral">&nbsp;</span>
394
394
  <span class="cline-any cline-neutral">&nbsp;</span>
395
395
  <span class="cline-any cline-neutral">&nbsp;</span>
396
396
  <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-yes">3x</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
398
  <span class="cline-any cline-no">&nbsp;</span>
399
399
  <span class="cline-any cline-neutral">&nbsp;</span>
400
400
  <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">3x</span>
402
- <span class="cline-any cline-yes">3x</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
403
403
  <span class="cline-any cline-neutral">&nbsp;</span>
404
404
  <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-yes">3x</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
406
  <span class="cline-any cline-neutral">&nbsp;</span>
407
407
  <span class="cline-any cline-neutral">&nbsp;</span>
408
408
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -414,59 +414,59 @@
414
414
  <span class="cline-any cline-neutral">&nbsp;</span>
415
415
  <span class="cline-any cline-neutral">&nbsp;</span>
416
416
  <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-yes">3x</span>
418
- <span class="cline-any cline-yes">3x</span>
417
+ <span class="cline-any cline-no">&nbsp;</span>
418
+ <span class="cline-any cline-no">&nbsp;</span>
419
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
420
  <span class="cline-any cline-neutral">&nbsp;</span>
421
421
  <span class="cline-any cline-neutral">&nbsp;</span>
422
422
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">13x</span>
424
- <span class="cline-any cline-yes">1x</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
424
+ <span class="cline-any cline-no">&nbsp;</span>
425
425
  <span class="cline-any cline-no">&nbsp;</span>
426
426
  <span class="cline-any cline-neutral">&nbsp;</span>
427
427
  <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-yes">1x</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
429
  <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-yes">1x</span>
431
- <span class="cline-any cline-yes">1x</span>
430
+ <span class="cline-any cline-no">&nbsp;</span>
431
+ <span class="cline-any cline-no">&nbsp;</span>
432
432
  <span class="cline-any cline-neutral">&nbsp;</span>
433
433
  <span class="cline-any cline-neutral">&nbsp;</span>
434
434
  <span class="cline-any cline-neutral">&nbsp;</span>
435
435
  <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-yes">1x</span>
437
- <span class="cline-any cline-yes">2x</span>
438
- <span class="cline-any cline-yes">2x</span>
439
- <span class="cline-any cline-yes">2x</span>
440
- <span class="cline-any cline-yes">2x</span>
441
- <span class="cline-any cline-yes">2x</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-no">&nbsp;</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-no">&nbsp;</span>
440
+ <span class="cline-any cline-no">&nbsp;</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
442
  <span class="cline-any cline-neutral">&nbsp;</span>
443
443
  <span class="cline-any cline-no">&nbsp;</span>
444
444
  <span class="cline-any cline-neutral">&nbsp;</span>
445
445
  <span class="cline-any cline-neutral">&nbsp;</span>
446
446
  <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-yes">1x</span>
448
- <span class="cline-any cline-yes">1x</span>
447
+ <span class="cline-any cline-no">&nbsp;</span>
448
+ <span class="cline-any cline-no">&nbsp;</span>
449
449
  <span class="cline-any cline-neutral">&nbsp;</span>
450
450
  <span class="cline-any cline-neutral">&nbsp;</span>
451
451
  <span class="cline-any cline-neutral">&nbsp;</span>
452
452
  <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">3x</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
454
454
  <span class="cline-any cline-no">&nbsp;</span>
455
455
  <span class="cline-any cline-neutral">&nbsp;</span>
456
456
  <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-yes">3x</span>
458
- <span class="cline-any cline-yes">3x</span>
459
- <span class="cline-any cline-yes">3x</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
458
+ <span class="cline-any cline-no">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
460
  <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-yes">3x</span>
461
+ <span class="cline-any cline-no">&nbsp;</span>
462
462
  <span class="cline-any cline-no">&nbsp;</span>
463
463
  <span class="cline-any cline-neutral">&nbsp;</span>
464
464
  <span class="cline-any cline-neutral">&nbsp;</span>
465
465
  <span class="cline-any cline-neutral">&nbsp;</span>
466
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
467
  <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-yes">3x</span>
469
- <span class="cline-any cline-yes">3x</span>
468
+ <span class="cline-any cline-no">&nbsp;</span>
469
+ <span class="cline-any cline-no">&nbsp;</span>
470
470
  <span class="cline-any cline-neutral">&nbsp;</span>
471
471
  <span class="cline-any cline-neutral">&nbsp;</span>
472
472
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -498,21 +498,21 @@
498
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
499
  <span class="cline-any cline-neutral">&nbsp;</span>
500
500
  <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">2x</span>
501
+ <span class="cline-any cline-no">&nbsp;</span>
502
502
  <span class="cline-any cline-no">&nbsp;</span>
503
503
  <span class="cline-any cline-neutral">&nbsp;</span>
504
504
  <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-yes">2x</span>
506
- <span class="cline-any cline-yes">2x</span>
505
+ <span class="cline-any cline-no">&nbsp;</span>
506
+ <span class="cline-any cline-no">&nbsp;</span>
507
507
  <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-yes">2x</span>
508
+ <span class="cline-any cline-no">&nbsp;</span>
509
509
  <span class="cline-any cline-neutral">&nbsp;</span>
510
510
  <span class="cline-any cline-neutral">&nbsp;</span>
511
511
  <span class="cline-any cline-neutral">&nbsp;</span>
512
512
  <span class="cline-any cline-neutral">&nbsp;</span>
513
513
  <span class="cline-any cline-neutral">&nbsp;</span>
514
514
  <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">2x</span>
515
+ <span class="cline-any cline-no">&nbsp;</span>
516
516
  <span class="cline-any cline-neutral">&nbsp;</span>
517
517
  <span class="cline-any cline-neutral">&nbsp;</span>
518
518
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -533,96 +533,96 @@
533
533
  <span class="cline-any cline-neutral">&nbsp;</span>
534
534
  <span class="cline-any cline-neutral">&nbsp;</span>
535
535
  <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-yes">3x</span>
536
+ <span class="cline-any cline-no">&nbsp;</span>
537
537
  <span class="cline-any cline-no">&nbsp;</span>
538
538
  <span class="cline-any cline-neutral">&nbsp;</span>
539
539
  <span class="cline-any cline-neutral">&nbsp;</span>
540
540
  <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-yes">3x</span>
542
- <span class="cline-any cline-yes">3x</span>
543
- <span class="cline-any cline-yes">3x</span>
544
- <span class="cline-any cline-yes">3x</span>
545
- <span class="cline-any cline-yes">3x</span>
541
+ <span class="cline-any cline-no">&nbsp;</span>
542
+ <span class="cline-any cline-no">&nbsp;</span>
543
+ <span class="cline-any cline-no">&nbsp;</span>
544
+ <span class="cline-any cline-no">&nbsp;</span>
545
+ <span class="cline-any cline-no">&nbsp;</span>
546
546
  <span class="cline-any cline-no">&nbsp;</span>
547
547
  <span class="cline-any cline-neutral">&nbsp;</span>
548
548
  <span class="cline-any cline-neutral">&nbsp;</span>
549
549
  <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-yes">3x</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
551
551
  <span class="cline-any cline-neutral">&nbsp;</span>
552
552
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
553
553
  import makeDebug from 'debug'
554
554
  import { Forbidden } from '@feathersjs/errors'
555
- const debug = makeDebug('kdk:core:organisations:hooks')
555
+ const debug = <span class="cstat-no" title="statement not covered" >makeDebug('kdk:core:organisations:hooks')</span>
556
556
  &nbsp;
557
- export function <span class="fstat-no" title="function not covered" >addOrganisationPlan (h</span>ook) {
557
+ export function <span class="fstat-no" title="function not covered" >addOrganisationPlan </span>(hook) {
558
558
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'before') {</span>
559
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'addOrganisationPlan\' hook should only be used as a \'before\' hook.')
559
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'addOrganisationPlan\' hook should only be used as a \'before\' hook.')</span>
560
560
  }
561
561
  &nbsp;
562
- const plans = <span class="cstat-no" title="statement not covered" >_.k</span>eys(hook.app.get('plans') || {})
563
- const plan = <span class="cstat-no" title="statement not covered" >_.g</span>et(hook.data, 'billing.plan')
562
+ const plans = <span class="cstat-no" title="statement not covered" >_.keys(hook.app.get('plans') || {})</span>
563
+ const plan = <span class="cstat-no" title="statement not covered" >_.get(hook.data, 'billing.plan')</span>
564
564
  <span class="cstat-no" title="statement not covered" > if (!plan &amp;&amp; (plans.length &gt; 0)) {</span>
565
565
  // Add defaul plan
566
- <span class="cstat-no" title="statement not covered" > _.s</span>et(hook.data, 'billing.plan', plans[0])
567
- <span class="cstat-no" title="statement not covered" > debug('</span>Added default plan to organisation: ', hook.data)
566
+ <span class="cstat-no" title="statement not covered" > _.set(hook.data, 'billing.plan', plans[0])</span>
567
+ <span class="cstat-no" title="statement not covered" > debug('Added default plan to organisation: ', hook.data)</span>
568
568
  }
569
- <span class="cstat-no" title="statement not covered" > return h</span>ook
569
+ <span class="cstat-no" title="statement not covered" > return hook</span>
570
570
  }
571
571
  &nbsp;
572
- export function createOrganisationServices (hook) {
573
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
574
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'createOrganisationServices\' hook should only be used as a \'after\' hook.')
572
+ export function <span class="fstat-no" title="function not covered" >createOrganisationServices </span>(hook) {
573
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
574
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'createOrganisationServices\' hook should only be used as a \'after\' hook.')</span>
575
575
  }
576
576
  &nbsp;
577
- const app = hook.app
578
- const organisationService = hook.service
579
- const databaseService = app.getService('databases')
577
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
578
+ const organisationService = <span class="cstat-no" title="statement not covered" >hook.service</span>
579
+ const databaseService = <span class="cstat-no" title="statement not covered" >app.getService('databases')</span>
580
580
  &nbsp;
581
581
  // First we create the organisation DB
582
- return databaseService.create({
582
+ <span class="cstat-no" title="statement not covered" > return databaseService.create({</span>
583
583
  name: hook.result._id.toString()
584
584
  }, {
585
585
  user: hook.params.user
586
586
  })
587
- .then(db =&gt; {
588
- debug('DB created for organisation ' + hook.result.name)
587
+ .then(<span class="fstat-no" title="function not covered" >db</span> =&gt; {
588
+ <span class="cstat-no" title="statement not covered" > debug('DB created for organisation ' + hook.result.name)</span>
589
589
  // Jump from infos/stats to real DB object
590
- db = app.db.client.db(hook.result._id.toString())
591
- organisationService.createOrganisationServices(hook.result, db)
592
- return hook
590
+ <span class="cstat-no" title="statement not covered" > db = app.db.client.db(hook.result._id.toString())</span>
591
+ <span class="cstat-no" title="statement not covered" > organisationService.createOrganisationServices(hook.result, db)</span>
592
+ <span class="cstat-no" title="statement not covered" > return hook</span>
593
593
  })
594
594
  }
595
595
  &nbsp;
596
- export function removeOrganisationServices (hook) {
597
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
598
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'removeOrganisationServices\' hook should only be used as a \'after\' hook.')
596
+ export function <span class="fstat-no" title="function not covered" >removeOrganisationServices </span>(hook) {
597
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
598
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'removeOrganisationServices\' hook should only be used as a \'after\' hook.')</span>
599
599
  }
600
600
  &nbsp;
601
- const app = hook.app
602
- const organisationService = hook.service
603
- const databaseService = app.getService('databases')
601
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
602
+ const organisationService = <span class="cstat-no" title="statement not covered" >hook.service</span>
603
+ const databaseService = <span class="cstat-no" title="statement not covered" >app.getService('databases')</span>
604
604
  &nbsp;
605
605
  // Then we remove the organisation DB
606
- return databaseService.remove(hook.result._id.toString(), {
606
+ <span class="cstat-no" title="statement not covered" > return databaseService.remove(hook.result._id.toString(), {</span>
607
607
  user: hook.params.user
608
608
  })
609
- .then(db =&gt; {
610
- debug('DB removed for organisation ' + hook.result.name)
611
- organisationService.removeOrganisationServices(hook.result)
612
- return hook
609
+ .then(<span class="fstat-no" title="function not covered" >db</span> =&gt; {
610
+ <span class="cstat-no" title="statement not covered" > debug('DB removed for organisation ' + hook.result.name)</span>
611
+ <span class="cstat-no" title="statement not covered" > organisationService.removeOrganisationServices(hook.result)</span>
612
+ <span class="cstat-no" title="statement not covered" > return hook</span>
613
613
  })
614
614
  }
615
615
  &nbsp;
616
- export function createOrganisationAuthorisations (hook) {
617
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
618
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'createOrganisationAuthorisations\' hook should only be used as a \'after\' hook.')
616
+ export function <span class="fstat-no" title="function not covered" >createOrganisationAuthorisations </span>(hook) {
617
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
618
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'createOrganisationAuthorisations\' hook should only be used as a \'after\' hook.')</span>
619
619
  }
620
620
  &nbsp;
621
- const app = hook.app
622
- const authorisationService = app.getService('authorisations')
623
- const userService = app.getService('users')
621
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
622
+ const authorisationService = <span class="cstat-no" title="statement not covered" >app.getService('authorisations')</span>
623
+ const userService = <span class="cstat-no" title="statement not covered" >app.getService('users')</span>
624
624
  // Set membership for the owner
625
- return authorisationService.create({
625
+ <span class="cstat-no" title="statement not covered" > return authorisationService.create({</span>
626
626
  scope: 'organisations',
627
627
  permissions: 'owner' // Owner by default
628
628
  }, {
@@ -633,22 +633,22 @@ export function createOrganisationAuthorisations (hook) {
633
633
  resource: hook.result,
634
634
  resourcesService: hook.service
635
635
  })
636
- .then(authorisation =&gt; {
637
- debug('Organisation ownership set for user ' + hook.result._id)
638
- return hook
636
+ .then(<span class="fstat-no" title="function not covered" >au</span>thorisation =&gt; {
637
+ <span class="cstat-no" title="statement not covered" > debug('Organisation ownership set for user ' + hook.result._id)</span>
638
+ <span class="cstat-no" title="statement not covered" > return hook</span>
639
639
  })
640
640
  }
641
641
  &nbsp;
642
- export function removeOrganisationAuthorisations (hook) {
643
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
644
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'removeOrganisationAuthorisations\' hook should only be used as a \'after\' hook.')
642
+ export function <span class="fstat-no" title="function not covered" >removeOrganisationAuthorisations </span>(hook) {
643
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
644
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'removeOrganisationAuthorisations\' hook should only be used as a \'after\' hook.')</span>
645
645
  }
646
646
  &nbsp;
647
- const app = hook.app
648
- const authorisationService = app.getService('authorisations')
647
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
648
+ const authorisationService = <span class="cstat-no" title="statement not covered" >app.getService('authorisations')</span>
649
649
  &nbsp;
650
650
  // Unset membership for the all org users
651
- return authorisationService.remove(hook.result._id.toString(), {
651
+ <span class="cstat-no" title="statement not covered" > return authorisationService.remove(hook.result._id.toString(), {</span>
652
652
  query: {
653
653
  subjectsService: hook.result._id.toString() + '/members',
654
654
  scope: 'organisations'
@@ -659,141 +659,141 @@ export function removeOrganisationAuthorisations (hook) {
659
659
  resource: hook.result,
660
660
  resourcesService: hook.service
661
661
  })
662
- .then(authorisation =&gt; {
663
- debug('Authorisations unset for organisation ' + hook.result._id)
664
- return hook
662
+ .then(<span class="fstat-no" title="function not covered" >au</span>thorisation =&gt; {
663
+ <span class="cstat-no" title="statement not covered" > debug('Authorisations unset for organisation ' + hook.result._id)</span>
664
+ <span class="cstat-no" title="statement not covered" > return hook</span>
665
665
  })
666
666
  }
667
667
  &nbsp;
668
- export function updateOrganisationResource (resourceScope) {
669
- return async function (hook) {
670
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
671
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'updateOrganisationResource\' hook should only be used as a \'after\' hook.')
668
+ export function <span class="fstat-no" title="function not covered" >updateOrganisationResource </span>(resourceScope) {
669
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >as</span>ync function (hook) {</span>
670
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
671
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'updateOrganisationResource\' hook should only be used as a \'after\' hook.')</span>
672
672
  }
673
673
  &nbsp;
674
- const app = hook.app
674
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
675
675
  // Retrieve the list of members
676
- const orgMembersService = app.getService('members', hook.service.getContextId())
677
- const members = await orgMembersService.find({
676
+ const orgMembersService = <span class="cstat-no" title="statement not covered" >app.getService('members', hook.service.getContextId())</span>
677
+ const members = <span class="cstat-no" title="statement not covered" >await orgMembersService.find({</span>
678
678
  query: { [resourceScope]: { $elemMatch: { _id: hook.result._id } } },
679
679
  paginate: false
680
680
  })
681
681
  // Update each members
682
- await Promise.all(members.map(member =&gt; {
683
- const resources = _.get(member, resourceScope, [])
684
- const resource = _.find(resources, { _id: hook.result._id })
685
- <span class="missing-if-branch" title="else path not taken" >E</span>if (resource) {
686
- Object.assign(resource, hook.result)
687
- return orgMembersService.patch(member._id, { [resourceScope]: resources })
682
+ <span class="cstat-no" title="statement not covered" > await Promise.all(members.map(<span class="fstat-no" title="function not covered" >me</span>mber =&gt; {</span>
683
+ const resources = <span class="cstat-no" title="statement not covered" >_.get(member, resourceScope, [])</span>
684
+ const resource = <span class="cstat-no" title="statement not covered" >_.find(resources, { _id: hook.result._id })</span>
685
+ <span class="cstat-no" title="statement not covered" > if (resource) {</span>
686
+ <span class="cstat-no" title="statement not covered" > Object.assign(resource, hook.result)</span>
687
+ <span class="cstat-no" title="statement not covered" > return orgMembersService.patch(member._id, { [resourceScope]: resources })</span>
688
688
  } else {
689
- <span class="cstat-no" title="statement not covered" > return P</span>romise.resolve()
689
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve()</span>
690
690
  }
691
691
  }))
692
692
  &nbsp;
693
- debug(`Updated resource ${hook.result._id} on scope ${resourceScope} for members of organisation ` + hook.result._id)
694
- return hook
693
+ <span class="cstat-no" title="statement not covered" > debug(`Updated resource ${hook.result._id} on scope ${resourceScope} for members of organisation ` + hook.result._id)</span>
694
+ <span class="cstat-no" title="statement not covered" > return hook</span>
695
695
  }
696
696
  }
697
697
  &nbsp;
698
- export function removeOrganisationGroups (hook) {
699
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
700
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'removeOrganisationGroups\' hook should only be used as a \'after\' hook.')
698
+ export function <span class="fstat-no" title="function not covered" >removeOrganisationGroups </span>(hook) {
699
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
700
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'removeOrganisationGroups\' hook should only be used as a \'after\' hook.')</span>
701
701
  }
702
702
  &nbsp;
703
- const app = hook.app
704
- const orgGroupService = app.getService('groups', hook.result)
705
- return orgGroupService.find({ paginate: false })
706
- .then(groups =&gt; {
707
- return Promise.all(groups.map(<span class="fstat-no" title="function not covered" >group =&gt; {</span>
708
- <span class="cstat-no" title="statement not covered" > return o</span>rgGroupService.remove(group._id.toString(), {
703
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
704
+ const orgGroupService = <span class="cstat-no" title="statement not covered" >app.getService('groups', hook.result)</span>
705
+ <span class="cstat-no" title="statement not covered" > return orgGroupService.find({ paginate: false })</span>
706
+ .then(<span class="fstat-no" title="function not covered" >gr</span>oups =&gt; {
707
+ <span class="cstat-no" title="statement not covered" > return Promise.all(groups.map(<span class="fstat-no" title="function not covered" >gr</span>oup =&gt; {</span>
708
+ <span class="cstat-no" title="statement not covered" > return orgGroupService.remove(group._id.toString(), {</span>
709
709
  user: hook.params.user
710
710
  })
711
711
  }))
712
712
  })
713
- .then(groups =&gt; {
714
- debug('Removed groups for organisation ' + hook.result._id)
715
- return hook
713
+ .then(<span class="fstat-no" title="function not covered" >gr</span>oups =&gt; {
714
+ <span class="cstat-no" title="statement not covered" > debug('Removed groups for organisation ' + hook.result._id)</span>
715
+ <span class="cstat-no" title="statement not covered" > return hook</span>
716
716
  })
717
717
  }
718
718
  &nbsp;
719
- export <span class="fstat-no" title="function not covered" >async function r</span>emoveOrganisationTags (hook) {
719
+ export async function <span class="fstat-no" title="function not covered" >removeOrganisationTags </span>(hook) {
720
720
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
721
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'removeOrganisationTags\' hook should only be used as a \'after\' hook.')
721
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'removeOrganisationTags\' hook should only be used as a \'after\' hook.')</span>
722
722
  }
723
723
  &nbsp;
724
724
  const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
725
725
  // Retrieve the list of tags
726
- const orgTagsService = <span class="cstat-no" title="statement not covered" >app.g</span>etService('tags', hook.result)
727
- const tags = <span class="cstat-no" title="statement not covered" >await orgTagsService.f</span>ind({ paginate: false })
726
+ const orgTagsService = <span class="cstat-no" title="statement not covered" >app.getService('tags', hook.result)</span>
727
+ const tags = <span class="cstat-no" title="statement not covered" >await orgTagsService.find({ paginate: false })</span>
728
728
  // Retrieve the list of members
729
- const orgMembersService = <span class="cstat-no" title="statement not covered" >app.g</span>etService('members', hook.result)
730
- const members = <span class="cstat-no" title="statement not covered" >await orgMembersService.f</span>ind({ paginate: false })
729
+ const orgMembersService = <span class="cstat-no" title="statement not covered" >app.getService('members', hook.result)</span>
730
+ const members = <span class="cstat-no" title="statement not covered" >await orgMembersService.find({ paginate: false })</span>
731
731
  // Update each members
732
732
  <span class="cstat-no" title="statement not covered" > for (const i in members) {</span>
733
- const member = <span class="cstat-no" title="statement not covered" >members[i</span>]
733
+ const member = <span class="cstat-no" title="statement not covered" >members[i]</span>
734
734
  <span class="cstat-no" title="statement not covered" > if (member.tags) {</span>
735
- const filteredTagsMember = <span class="cstat-no" title="statement not covered" >_.f</span>ilter(member.tags, <span class="fstat-no" title="function not covered" >(t</span>ag) =&gt; {
736
- <span class="cstat-no" title="statement not covered" > return _</span>.findIndex(tags, { _id: tag._id }) === -1
735
+ const filteredTagsMember = <span class="cstat-no" title="statement not covered" >_.filter(member.tags, <span class="fstat-no" title="function not covered" >(t</span>ag) =&gt; {</span>
736
+ <span class="cstat-no" title="statement not covered" > return _.findIndex(tags, { _id: tag._id }) === -1</span>
737
737
  })
738
- <span class="cstat-no" title="statement not covered" > await o</span>rgMembersService.patch(member._id, { tags: filteredTagsMember })
738
+ <span class="cstat-no" title="statement not covered" > await orgMembersService.patch(member._id, { tags: filteredTagsMember })</span>
739
739
  }
740
740
  }
741
741
  &nbsp;
742
- <span class="cstat-no" title="statement not covered" > debug('</span>Removed tags from organisation ' + hook.result._id)
743
- <span class="cstat-no" title="statement not covered" > return h</span>ook
742
+ <span class="cstat-no" title="statement not covered" > debug('Removed tags from organisation ' + hook.result._id)</span>
743
+ <span class="cstat-no" title="statement not covered" > return hook</span>
744
744
  }
745
745
  &nbsp;
746
- export function createPrivateOrganisation (hook) {
747
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
748
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'createPrivateOrganisation\' hook should only be used as a \'after\' hook.')
746
+ export function <span class="fstat-no" title="function not covered" >createPrivateOrganisation </span>(hook) {
747
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
748
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'createPrivateOrganisation\' hook should only be used as a \'after\' hook.')</span>
749
749
  }
750
750
  &nbsp;
751
- const app = hook.app
752
- const organisationService = app.getService('organisations')
751
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
752
+ const organisationService = <span class="cstat-no" title="statement not covered" >app.getService('organisations')</span>
753
753
  // Create a private organisation for the user
754
- return organisationService.create({
754
+ <span class="cstat-no" title="statement not covered" > return organisationService.create({</span>
755
755
  _id: hook.result._id, // Same ID as user, fine because in another service
756
756
  name: hook.result.profile.name // Same name as user
757
757
  }, {
758
758
  user: hook.result
759
759
  })
760
- .then(org =&gt; {
761
- debug('Private organisation created for user ' + hook.result._id)
760
+ .then(<span class="fstat-no" title="function not covered" >or</span>g =&gt; {
761
+ <span class="cstat-no" title="statement not covered" > debug('Private organisation created for user ' + hook.result._id)</span>
762
762
  })
763
763
  }
764
764
  &nbsp;
765
- export function <span class="fstat-no" title="function not covered" >removePrivateOrganisation (h</span>ook) {
765
+ export function <span class="fstat-no" title="function not covered" >removePrivateOrganisation </span>(hook) {
766
766
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
767
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'removePrivateOrganisation\' hook should only be used as a \'after\' hook.')
767
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'removePrivateOrganisation\' hook should only be used as a \'after\' hook.')</span>
768
768
  }
769
769
  &nbsp;
770
770
  const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
771
- const organisationService = <span class="cstat-no" title="statement not covered" >app.g</span>etService('organisations')
771
+ const organisationService = <span class="cstat-no" title="statement not covered" >app.getService('organisations')</span>
772
772
  // Remove the private user's organisation
773
- <span class="cstat-no" title="statement not covered" > return o</span>rganisationService.remove(hook.result._id.toString(), {
773
+ <span class="cstat-no" title="statement not covered" > return organisationService.remove(hook.result._id.toString(), {</span>
774
774
  user: hook.result
775
775
  })
776
- .then(<span class="fstat-no" title="function not covered" >org =&gt; {</span>
777
- <span class="cstat-no" title="statement not covered" > debug('</span>Private organisation removed for user ' + hook.result._id)
776
+ .then(<span class="fstat-no" title="function not covered" >or</span>g =&gt; {
777
+ <span class="cstat-no" title="statement not covered" > debug('Private organisation removed for user ' + hook.result._id)</span>
778
778
  })
779
779
  }
780
780
  &nbsp;
781
- export async function preventRemoveOrganisation (hook) {
782
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'before') {
783
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'preventRemoveOrganisations\' hook should only be used as a \'before\' hook.')
781
+ export async function <span class="fstat-no" title="function not covered" >preventRemoveOrganisation </span>(hook) {
782
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'before') {</span>
783
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'preventRemoveOrganisations\' hook should only be used as a \'before\' hook.')</span>
784
784
  }
785
785
  &nbsp;
786
786
  // By pass check ?
787
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.params.force) <span class="cstat-no" title="statement not covered" >return h</span>ook
788
- const app = hook.app
789
- const orgGroupService = app.getService('groups', hook.id)
790
- const result = await orgGroupService.find({ $limit: 0 })
791
- <span class="missing-if-branch" title="if path not taken" >I</span>if (result.total &gt; 0) {
792
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Forbidden('You are not allowed to delete the organisation', {
787
+ <span class="cstat-no" title="statement not covered" > if (hook.params.force) <span class="cstat-no" title="statement not covered" >return hook</span></span>
788
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
789
+ const orgGroupService = <span class="cstat-no" title="statement not covered" >app.getService('groups', hook.id)</span>
790
+ const result = <span class="cstat-no" title="statement not covered" >await orgGroupService.find({ $limit: 0 })</span>
791
+ <span class="cstat-no" title="statement not covered" > if (result.total &gt; 0) {</span>
792
+ <span class="cstat-no" title="statement not covered" > throw new Forbidden('You are not allowed to delete the organisation', {</span>
793
793
  translation: { key: 'CANNOT_REMOVE_ORGANISATION' }
794
794
  })
795
795
  }
796
- return hook
796
+ <span class="cstat-no" title="statement not covered" > return hook</span>
797
797
  }
798
798
  &nbsp;</pre></td></tr></table></pre>
799
799
 
@@ -802,7 +802,7 @@ export async function preventRemoveOrganisation (hook) {
802
802
  <div class='footer quiet pad2 space-top1 center small'>
803
803
  Code coverage generated by
804
804
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
805
- at Wed Dec 08 2021 20:41:51 GMT+0100 (GMT+01:00)
805
+ at Thu Feb 17 2022 13:49:01 GMT+0100 (GMT+01:00)
806
806
  </div>
807
807
  </div>
808
808
  <script src="../../../prettify.js"></script>