@kalisio/kdk 1.4.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/.nyc_output/{0f1a87aa-d3bb-4c61-8c1e-12294055358d.json → 058fc679-d60a-4501-ac04-71171e5200b8.json} +0 -0
  2. package/.nyc_output/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +1 -0
  3. package/.nyc_output/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
  4. package/.nyc_output/{8be4cd9f-124a-41f9-80f4-f267ced63c86.json → 8b1830fa-932e-4a61-9837-4a5b18f83ea9.json} +0 -0
  5. package/.nyc_output/{a63b0924-fd09-4e30-974f-cb4be2243b66.json → afd2d144-3570-4858-b94a-b523dbd023dd.json} +0 -0
  6. package/.nyc_output/processinfo/058fc679-d60a-4501-ac04-71171e5200b8.json +1 -0
  7. package/.nyc_output/processinfo/{27204015-ebfd-456f-a3bb-6a94f71946b8.json → 2226bcce-9d22-4dad-b9fa-46564b5565c7.json} +1 -1
  8. package/.nyc_output/processinfo/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
  9. package/.nyc_output/processinfo/8b1830fa-932e-4a61-9837-4a5b18f83ea9.json +1 -0
  10. package/.nyc_output/processinfo/afd2d144-3570-4858-b94a-b523dbd023dd.json +1 -0
  11. package/.nyc_output/processinfo/index.json +1 -1
  12. package/CHANGELOG.md +219 -68
  13. package/coverage/core/api/application.js.html +455 -455
  14. package/coverage/core/api/authentication.js.html +119 -119
  15. package/coverage/core/api/db.js.html +201 -201
  16. package/coverage/core/api/hooks/hooks.account.js.html +48 -48
  17. package/coverage/core/api/hooks/hooks.authentication.js.html +64 -64
  18. package/coverage/core/api/hooks/hooks.authorisations.js.html +353 -353
  19. package/coverage/core/api/hooks/hooks.devices.js.html +22 -22
  20. package/coverage/core/api/hooks/hooks.groups.js.html +37 -37
  21. package/coverage/core/api/hooks/hooks.logger.js.html +27 -27
  22. package/coverage/core/api/hooks/hooks.model.js.html +269 -269
  23. package/coverage/core/api/hooks/hooks.organisations.js.html +183 -231
  24. package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
  25. package/coverage/core/api/hooks/hooks.query.js.html +200 -200
  26. package/coverage/core/api/hooks/hooks.service.js.html +82 -82
  27. package/coverage/core/api/hooks/hooks.storage.js.html +121 -121
  28. package/coverage/core/api/hooks/hooks.tags.js.html +232 -232
  29. package/coverage/core/api/hooks/hooks.users.js.html +261 -261
  30. package/coverage/core/api/hooks/index.html +167 -167
  31. package/coverage/core/api/hooks/index.js.html +24 -24
  32. package/coverage/core/api/index.html +75 -75
  33. package/coverage/core/api/index.js.html +26 -26
  34. package/coverage/core/api/marshall.js.html +57 -57
  35. package/coverage/core/api/models/groups.model.mongodb.js.html +20 -20
  36. package/coverage/core/api/models/index.html +50 -50
  37. package/coverage/core/api/models/organisations.model.mongodb.js.html +12 -12
  38. package/coverage/core/api/models/tags.model.mongodb.js.html +22 -22
  39. package/coverage/core/api/models/users.model.mongodb.js.html +20 -20
  40. package/coverage/core/api/oauth2-handler.js.html +18 -18
  41. package/coverage/core/api/oauth2-verifier.js.html +38 -38
  42. package/coverage/core/api/services/account/account.hooks.js.html +16 -16
  43. package/coverage/core/api/services/account/account.service.js.html +108 -108
  44. package/coverage/core/api/services/account/index.html +32 -32
  45. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  46. package/coverage/core/api/services/authorisations/authorisations.service.js.html +132 -132
  47. package/coverage/core/api/services/authorisations/index.html +28 -28
  48. package/coverage/core/api/services/databases/databases.hooks.js.html +9 -9
  49. package/coverage/core/api/services/databases/databases.service.js.html +12 -12
  50. package/coverage/core/api/services/databases/index.html +24 -24
  51. package/coverage/core/api/services/devices/devices.hooks.js.html +9 -9
  52. package/coverage/core/api/services/devices/devices.service.js.html +61 -61
  53. package/coverage/core/api/services/devices/index.html +22 -22
  54. package/coverage/core/api/services/groups/groups.hooks.js.html +9 -9
  55. package/coverage/core/api/services/groups/index.html +13 -13
  56. package/coverage/core/api/services/index.html +21 -21
  57. package/coverage/core/api/services/index.js.html +137 -137
  58. package/coverage/core/api/services/mailer/index.html +24 -24
  59. package/coverage/core/api/services/mailer/mailer.hooks.js.html +9 -9
  60. package/coverage/core/api/services/mailer/mailer.service.js.html +19 -19
  61. package/coverage/core/api/services/organisations/index.html +24 -24
  62. package/coverage/core/api/services/organisations/organisations.hooks.js.html +8 -8
  63. package/coverage/core/api/services/organisations/organisations.service.js.html +67 -67
  64. package/coverage/core/api/services/pusher/index.html +32 -32
  65. package/coverage/core/api/services/pusher/pusher.channels.js.html +8 -8
  66. package/coverage/core/api/services/pusher/pusher.hooks.js.html +10 -10
  67. package/coverage/core/api/services/pusher/pusher.service.js.html +336 -336
  68. package/coverage/core/api/services/storage/index.html +21 -21
  69. package/coverage/core/api/services/storage/storage.hooks.js.html +35 -35
  70. package/coverage/core/api/services/tags/index.html +21 -21
  71. package/coverage/core/api/services/tags/tags.hooks.js.html +25 -25
  72. package/coverage/core/api/services/users/index.html +21 -21
  73. package/coverage/core/api/services/users/users.hooks.js.html +33 -33
  74. package/coverage/core/common/errors.js.html +1 -1
  75. package/coverage/core/common/index.html +42 -27
  76. package/coverage/core/common/index.js.html +16 -16
  77. package/coverage/core/common/permissions.js.html +274 -274
  78. package/coverage/index.html +174 -174
  79. package/coverage/lcov-report/core/api/application.js.html +455 -455
  80. package/coverage/lcov-report/core/api/authentication.js.html +119 -119
  81. package/coverage/lcov-report/core/api/db.js.html +201 -201
  82. package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +48 -48
  83. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +64 -64
  84. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +353 -353
  85. package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +22 -22
  86. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +37 -37
  87. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +27 -27
  88. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +269 -269
  89. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +183 -231
  90. package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
  91. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +200 -200
  92. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +82 -82
  93. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +121 -121
  94. package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +232 -232
  95. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +261 -261
  96. package/coverage/lcov-report/core/api/hooks/index.html +167 -167
  97. package/coverage/lcov-report/core/api/hooks/index.js.html +24 -24
  98. package/coverage/lcov-report/core/api/index.html +75 -75
  99. package/coverage/lcov-report/core/api/index.js.html +26 -26
  100. package/coverage/lcov-report/core/api/marshall.js.html +57 -57
  101. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +20 -20
  102. package/coverage/lcov-report/core/api/models/index.html +50 -50
  103. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +12 -12
  104. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +22 -22
  105. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +20 -20
  106. package/coverage/lcov-report/core/api/oauth2-handler.js.html +18 -18
  107. package/coverage/lcov-report/core/api/oauth2-verifier.js.html +38 -38
  108. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +16 -16
  109. package/coverage/lcov-report/core/api/services/account/account.service.js.html +108 -108
  110. package/coverage/lcov-report/core/api/services/account/index.html +32 -32
  111. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  112. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +132 -132
  113. package/coverage/lcov-report/core/api/services/authorisations/index.html +28 -28
  114. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +9 -9
  115. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +12 -12
  116. package/coverage/lcov-report/core/api/services/databases/index.html +24 -24
  117. package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +9 -9
  118. package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +61 -61
  119. package/coverage/lcov-report/core/api/services/devices/index.html +22 -22
  120. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +9 -9
  121. package/coverage/lcov-report/core/api/services/groups/index.html +13 -13
  122. package/coverage/lcov-report/core/api/services/index.html +21 -21
  123. package/coverage/lcov-report/core/api/services/index.js.html +137 -137
  124. package/coverage/lcov-report/core/api/services/mailer/index.html +24 -24
  125. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +9 -9
  126. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +19 -19
  127. package/coverage/lcov-report/core/api/services/organisations/index.html +24 -24
  128. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +8 -8
  129. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +67 -67
  130. package/coverage/lcov-report/core/api/services/pusher/index.html +32 -32
  131. package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +8 -8
  132. package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +10 -10
  133. package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +336 -336
  134. package/coverage/lcov-report/core/api/services/storage/index.html +21 -21
  135. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +35 -35
  136. package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
  137. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +25 -25
  138. package/coverage/lcov-report/core/api/services/users/index.html +21 -21
  139. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +33 -33
  140. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  141. package/coverage/lcov-report/core/common/index.html +42 -27
  142. package/coverage/lcov-report/core/common/index.js.html +16 -16
  143. package/coverage/lcov-report/core/common/permissions.js.html +274 -274
  144. package/coverage/lcov-report/index.html +174 -174
  145. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  146. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +72 -18
  147. package/coverage/lcov-report/map/api/hooks/index.html +7 -7
  148. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  149. package/coverage/lcov-report/map/api/index.html +1 -1
  150. package/coverage/lcov-report/map/api/index.js.html +1 -1
  151. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  152. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  153. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  154. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  155. package/coverage/lcov-report/map/api/models/index.html +1 -1
  156. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  157. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  158. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  159. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
  160. package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
  161. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  163. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
  164. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  165. package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  166. package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
  167. package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
  168. package/coverage/lcov-report/map/api/services/index.html +1 -1
  169. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  170. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  171. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  172. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  173. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  174. package/coverage/lcov-report/map/common/index.html +1 -1
  175. package/coverage/lcov-report/map/common/index.js.html +1 -1
  176. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  177. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  178. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  179. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  180. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  181. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  182. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  183. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  184. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  185. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  186. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  187. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  188. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  189. package/coverage/lcov.info +3289 -3610
  190. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  191. package/coverage/map/api/hooks/hooks.query.js.html +72 -18
  192. package/coverage/map/api/hooks/index.html +7 -7
  193. package/coverage/map/api/hooks/index.js.html +1 -1
  194. package/coverage/map/api/index.html +1 -1
  195. package/coverage/map/api/index.js.html +1 -1
  196. package/coverage/map/api/marshall.js.html +1 -1
  197. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  198. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  199. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  200. package/coverage/map/api/models/index.html +1 -1
  201. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  202. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  203. package/coverage/map/api/services/alerts/index.html +1 -1
  204. package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
  205. package/coverage/map/api/services/catalog/index.html +1 -1
  206. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  207. package/coverage/map/api/services/daptiles/index.html +1 -1
  208. package/coverage/map/api/services/features/features.hooks.js.html +1 -1
  209. package/coverage/map/api/services/features/index.html +1 -1
  210. package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  211. package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
  212. package/coverage/map/api/services/geocoder/index.html +1 -1
  213. package/coverage/map/api/services/index.html +1 -1
  214. package/coverage/map/api/services/index.js.html +1 -1
  215. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  216. package/coverage/map/common/errors.js.html +1 -1
  217. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  218. package/coverage/map/common/grid.js.html +1 -1
  219. package/coverage/map/common/index.html +1 -1
  220. package/coverage/map/common/index.js.html +1 -1
  221. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  222. package/coverage/map/common/moment-utils.js.html +1 -1
  223. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  224. package/coverage/map/common/opendap-utils.js.html +1 -1
  225. package/coverage/map/common/permissions.js.html +1 -1
  226. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  227. package/coverage/map/common/tms-utils.js.html +1 -1
  228. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  229. package/coverage/map/common/wcs-utils.js.html +1 -1
  230. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  231. package/coverage/map/common/wfs-utils.js.html +1 -1
  232. package/coverage/map/common/wms-utils.js.html +1 -1
  233. package/coverage/map/common/wmts-utils.js.html +1 -1
  234. package/lib/core/client/components/collection/KBoard.vue +6 -0
  235. package/lib/core/client/components/collection/KColumn.vue +2 -2
  236. package/lib/core/client/components/collection/KHistory.vue +14 -6
  237. package/lib/core/client/components/collection/KHistoryEntry.vue +7 -3
  238. package/lib/core/client/components/form/KFileField.vue +11 -40
  239. package/lib/core/client/components/frame/KChipsPane.vue +2 -2
  240. package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
  241. package/lib/core/client/i18n/core_en.json +7 -1
  242. package/lib/core/client/i18n/core_fr.json +7 -1
  243. package/lib/core/client/index.js +18 -0
  244. package/lib/core/client/index.js.map +1 -1
  245. package/lib/core/client/layout.js +8 -1
  246. package/lib/core/client/layout.js.map +1 -1
  247. package/lib/core/client/mixins/mixin.base-collection.js +8 -2
  248. package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
  249. package/lib/core/client/reader.js +54 -0
  250. package/lib/core/client/reader.js.map +1 -0
  251. package/lib/core/client/readers/index.js +30 -0
  252. package/lib/core/client/readers/index.js.map +1 -0
  253. package/lib/core/client/readers/reader.csv.js +43 -0
  254. package/lib/core/client/readers/reader.csv.js.map +1 -0
  255. package/lib/core/client/readers/reader.json.js +38 -0
  256. package/lib/core/client/readers/reader.json.js.map +1 -0
  257. package/lib/core/client/services/index.js +1 -3
  258. package/lib/core/client/services/index.js.map +1 -1
  259. package/lib/core/client/time.js +4 -1
  260. package/lib/core/client/time.js.map +1 -1
  261. package/lib/map/api/hooks/hooks.query.js +30 -13
  262. package/lib/map/api/hooks/hooks.query.js.map +1 -1
  263. package/lib/map/client/components/KCaptureToolbar.vue +156 -0
  264. package/lib/map/client/components/KFeaturesFilter.vue +3 -1
  265. package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
  266. package/lib/map/client/components/KLayerStyleEditor.vue +2 -1
  267. package/lib/map/client/components/KLayerStyleForm.vue +34 -23
  268. package/lib/map/client/components/KLocationMap.vue +3 -1
  269. package/lib/map/client/components/KMeasureTool.vue +340 -0
  270. package/lib/map/client/components/KPositionIndicator.vue +1 -0
  271. package/lib/map/client/components/KTimeline.vue +7 -8
  272. package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
  273. package/lib/map/client/components/catalog/KLayersSelector.vue +13 -11
  274. package/lib/map/client/components/form/KOwsLayerField.vue +7 -0
  275. package/lib/map/client/components/widget/KMapillaryViewer.vue +1 -1
  276. package/lib/map/client/components/widget/KTimeSeries.vue +81 -3
  277. package/lib/map/client/i18n/map_en.json +43 -5
  278. package/lib/map/client/i18n/map_fr.json +43 -5
  279. package/lib/map/client/init.js +6 -1
  280. package/lib/map/client/init.js.map +1 -1
  281. package/lib/map/client/leaflet/MaskLayer.js +12 -3
  282. package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
  283. package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
  284. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  285. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +0 -4
  286. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  287. package/lib/map/client/mixins/globe/mixin.popup.js +4 -0
  288. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  289. package/lib/map/client/mixins/globe/mixin.tooltip.js +4 -0
  290. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  291. package/lib/map/client/mixins/map/mixin.base-map.js +46 -7
  292. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  293. package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
  294. package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
  295. package/lib/map/client/mixins/map/mixin.file-layers.js +47 -101
  296. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  297. package/lib/map/client/mixins/map/mixin.geojson-layers.js +9 -5
  298. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  299. package/lib/map/client/mixins/map/mixin.heatmap-layers.js +0 -4
  300. package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
  301. package/lib/map/client/mixins/map/mixin.popup.js +4 -0
  302. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  303. package/lib/map/client/mixins/map/mixin.tooltip.js +4 -0
  304. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  305. package/lib/map/client/mixins/mixin.activity.js +2 -0
  306. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  307. package/lib/map/client/mixins/mixin.context.js +26 -3
  308. package/lib/map/client/mixins/mixin.context.js.map +1 -1
  309. package/lib/map/client/mixins/mixin.feature-service.js +4 -4
  310. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  311. package/lib/map/client/mixins/mixin.infobox.js +4 -0
  312. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  313. package/lib/map/client/readers/index.js +42 -0
  314. package/lib/map/client/readers/index.js.map +1 -0
  315. package/lib/map/client/readers/reader.geojson.js +59 -0
  316. package/lib/map/client/readers/reader.geojson.js.map +1 -0
  317. package/lib/map/client/readers/reader.gpx.js +41 -0
  318. package/lib/map/client/readers/reader.gpx.js.map +1 -0
  319. package/lib/map/client/readers/reader.kml.js +41 -0
  320. package/lib/map/client/readers/reader.kml.js.map +1 -0
  321. package/lib/map/client/utils.js +2 -1
  322. package/lib/map/client/utils.js.map +1 -1
  323. package/lib/test/client/core/runner.js +1 -2
  324. package/lib/test/client/core/runner.js.map +1 -1
  325. package/lib/test/client/core/utils.js +58 -38
  326. package/lib/test/client/core/utils.js.map +1 -1
  327. package/lib/test/client/map/catalog.js +50 -49
  328. package/lib/test/client/map/catalog.js.map +1 -1
  329. package/package.json +3 -3
  330. package/.nyc_output/27204015-ebfd-456f-a3bb-6a94f71946b8.json +0 -1
  331. package/.nyc_output/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
  332. package/.nyc_output/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
  333. package/.nyc_output/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
  334. package/.nyc_output/processinfo/0f1a87aa-d3bb-4c61-8c1e-12294055358d.json +0 -1
  335. package/.nyc_output/processinfo/8be4cd9f-124a-41f9-80f4-f267ced63c86.json +0 -1
  336. package/.nyc_output/processinfo/a63b0924-fd09-4e30-974f-cb4be2243b66.json +0 -1
  337. package/.nyc_output/processinfo/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
  338. package/.nyc_output/processinfo/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
  339. package/.nyc_output/processinfo/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
  340. package/extras/testcafe/Dockerfile +0 -48
  341. package/extras/testcafe/docker-entrypoint.sh +0 -27
  342. package/extras/testcafe/page-models/core/account.js +0 -75
  343. package/extras/testcafe/page-models/core/base-collection.js +0 -41
  344. package/extras/testcafe/page-models/core/base-page.js +0 -25
  345. package/extras/testcafe/page-models/core/groups.js +0 -36
  346. package/extras/testcafe/page-models/core/index.js +0 -140
  347. package/extras/testcafe/page-models/core/layout.js +0 -145
  348. package/extras/testcafe/page-models/core/members.js +0 -98
  349. package/extras/testcafe/page-models/core/organisations.js +0 -76
  350. package/extras/testcafe/page-models/core/screens.js +0 -99
  351. package/extras/testcafe/page-models/core/tags.js +0 -21
  352. package/extras/testcafe/page-models/map/add-layer.js +0 -51
  353. package/extras/testcafe/page-models/map/catalog.js +0 -132
  354. package/extras/testcafe/page-models/map/index.js +0 -36
  355. package/extras/testcafe/page-models/map/map-activity.js +0 -42
  356. 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">57.89% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>66/114</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">28.95% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>11/38</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">72% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>18/25</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">58.41% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>66/113</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,26 +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>
307
- <a name='L248'></a><a href='#L248'>248</a>
308
- <a name='L249'></a><a href='#L249'>249</a>
309
- <a name='L250'></a><a href='#L250'>250</a>
310
- <a name='L251'></a><a href='#L251'>251</a>
311
- <a name='L252'></a><a href='#L252'>252</a>
312
- <a name='L253'></a><a href='#L253'>253</a>
313
- <a name='L254'></a><a href='#L254'>254</a>
314
- <a name='L255'></a><a href='#L255'>255</a>
315
- <a name='L256'></a><a href='#L256'>256</a>
316
- <a name='L257'></a><a href='#L257'>257</a>
317
- <a name='L258'></a><a href='#L258'>258</a>
318
- <a name='L259'></a><a href='#L259'>259</a>
319
- <a name='L260'></a><a href='#L260'>260</a>
320
- <a name='L261'></a><a href='#L261'>261</a>
321
- <a name='L262'></a><a href='#L262'>262</a>
322
- <a name='L263'></a><a href='#L263'>263</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
323
- <span class="cline-any cline-yes">1x</span>
324
- <span class="cline-any cline-yes">1x</span>
325
- <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>
326
310
  <span class="cline-any cline-neutral">&nbsp;</span>
327
311
  <span class="cline-any cline-neutral">&nbsp;</span>
328
312
  <span class="cline-any cline-no">&nbsp;</span>
@@ -340,59 +324,59 @@
340
324
  <span class="cline-any cline-neutral">&nbsp;</span>
341
325
  <span class="cline-any cline-neutral">&nbsp;</span>
342
326
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">3x</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
344
328
  <span class="cline-any cline-no">&nbsp;</span>
345
329
  <span class="cline-any cline-neutral">&nbsp;</span>
346
330
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">3x</span>
348
- <span class="cline-any cline-yes">3x</span>
349
- <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>
350
334
  <span class="cline-any cline-neutral">&nbsp;</span>
351
335
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">3x</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
353
337
  <span class="cline-any cline-neutral">&nbsp;</span>
354
338
  <span class="cline-any cline-neutral">&nbsp;</span>
355
339
  <span class="cline-any cline-neutral">&nbsp;</span>
356
340
  <span class="cline-any cline-neutral">&nbsp;</span>
357
341
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">3x</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
359
343
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">3x</span>
361
- <span class="cline-any cline-yes">3x</span>
362
- <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>
363
347
  <span class="cline-any cline-neutral">&nbsp;</span>
364
348
  <span class="cline-any cline-neutral">&nbsp;</span>
365
349
  <span class="cline-any cline-neutral">&nbsp;</span>
366
350
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">3x</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
368
352
  <span class="cline-any cline-no">&nbsp;</span>
369
353
  <span class="cline-any cline-neutral">&nbsp;</span>
370
354
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">3x</span>
372
- <span class="cline-any cline-yes">3x</span>
373
- <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>
374
358
  <span class="cline-any cline-neutral">&nbsp;</span>
375
359
  <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">3x</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
377
361
  <span class="cline-any cline-neutral">&nbsp;</span>
378
362
  <span class="cline-any cline-neutral">&nbsp;</span>
379
363
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">3x</span>
381
- <span class="cline-any cline-yes">3x</span>
382
- <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>
383
367
  <span class="cline-any cline-neutral">&nbsp;</span>
384
368
  <span class="cline-any cline-neutral">&nbsp;</span>
385
369
  <span class="cline-any cline-neutral">&nbsp;</span>
386
370
  <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-yes">3x</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
388
372
  <span class="cline-any cline-no">&nbsp;</span>
389
373
  <span class="cline-any cline-neutral">&nbsp;</span>
390
374
  <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>
393
- <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>
394
378
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">3x</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
396
380
  <span class="cline-any cline-neutral">&nbsp;</span>
397
381
  <span class="cline-any cline-neutral">&nbsp;</span>
398
382
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -404,21 +388,21 @@
404
388
  <span class="cline-any cline-neutral">&nbsp;</span>
405
389
  <span class="cline-any cline-neutral">&nbsp;</span>
406
390
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">3x</span>
408
- <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>
409
393
  <span class="cline-any cline-neutral">&nbsp;</span>
410
394
  <span class="cline-any cline-neutral">&nbsp;</span>
411
395
  <span class="cline-any cline-neutral">&nbsp;</span>
412
396
  <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-yes">3x</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
414
398
  <span class="cline-any cline-no">&nbsp;</span>
415
399
  <span class="cline-any cline-neutral">&nbsp;</span>
416
400
  <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>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
419
403
  <span class="cline-any cline-neutral">&nbsp;</span>
420
404
  <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-yes">3x</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
422
406
  <span class="cline-any cline-neutral">&nbsp;</span>
423
407
  <span class="cline-any cline-neutral">&nbsp;</span>
424
408
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -430,59 +414,59 @@
430
414
  <span class="cline-any cline-neutral">&nbsp;</span>
431
415
  <span class="cline-any cline-neutral">&nbsp;</span>
432
416
  <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-yes">3x</span>
434
- <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>
435
419
  <span class="cline-any cline-neutral">&nbsp;</span>
436
420
  <span class="cline-any cline-neutral">&nbsp;</span>
437
421
  <span class="cline-any cline-neutral">&nbsp;</span>
438
422
  <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-yes">13x</span>
440
- <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>
441
425
  <span class="cline-any cline-no">&nbsp;</span>
442
426
  <span class="cline-any cline-neutral">&nbsp;</span>
443
427
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">1x</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
445
429
  <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-yes">1x</span>
447
- <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>
448
432
  <span class="cline-any cline-neutral">&nbsp;</span>
449
433
  <span class="cline-any cline-neutral">&nbsp;</span>
450
434
  <span class="cline-any cline-neutral">&nbsp;</span>
451
435
  <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">1x</span>
453
- <span class="cline-any cline-yes">2x</span>
454
- <span class="cline-any cline-yes">2x</span>
455
- <span class="cline-any cline-yes">2x</span>
456
- <span class="cline-any cline-yes">2x</span>
457
- <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>
458
442
  <span class="cline-any cline-neutral">&nbsp;</span>
459
443
  <span class="cline-any cline-no">&nbsp;</span>
460
444
  <span class="cline-any cline-neutral">&nbsp;</span>
461
445
  <span class="cline-any cline-neutral">&nbsp;</span>
462
446
  <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">1x</span>
464
- <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>
465
449
  <span class="cline-any cline-neutral">&nbsp;</span>
466
450
  <span class="cline-any cline-neutral">&nbsp;</span>
467
451
  <span class="cline-any cline-neutral">&nbsp;</span>
468
452
  <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">3x</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
470
454
  <span class="cline-any cline-no">&nbsp;</span>
471
455
  <span class="cline-any cline-neutral">&nbsp;</span>
472
456
  <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-yes">3x</span>
474
- <span class="cline-any cline-yes">3x</span>
475
- <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>
476
460
  <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-yes">3x</span>
461
+ <span class="cline-any cline-no">&nbsp;</span>
478
462
  <span class="cline-any cline-no">&nbsp;</span>
479
463
  <span class="cline-any cline-neutral">&nbsp;</span>
480
464
  <span class="cline-any cline-neutral">&nbsp;</span>
481
465
  <span class="cline-any cline-neutral">&nbsp;</span>
482
466
  <span class="cline-any cline-neutral">&nbsp;</span>
483
467
  <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">3x</span>
485
- <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>
486
470
  <span class="cline-any cline-neutral">&nbsp;</span>
487
471
  <span class="cline-any cline-neutral">&nbsp;</span>
488
472
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -514,21 +498,21 @@
514
498
  <span class="cline-any cline-neutral">&nbsp;</span>
515
499
  <span class="cline-any cline-neutral">&nbsp;</span>
516
500
  <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-yes">2x</span>
501
+ <span class="cline-any cline-no">&nbsp;</span>
518
502
  <span class="cline-any cline-no">&nbsp;</span>
519
503
  <span class="cline-any cline-neutral">&nbsp;</span>
520
504
  <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-yes">2x</span>
522
- <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>
523
507
  <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-yes">2x</span>
508
+ <span class="cline-any cline-no">&nbsp;</span>
525
509
  <span class="cline-any cline-neutral">&nbsp;</span>
526
510
  <span class="cline-any cline-neutral">&nbsp;</span>
527
511
  <span class="cline-any cline-neutral">&nbsp;</span>
528
512
  <span class="cline-any cline-neutral">&nbsp;</span>
529
513
  <span class="cline-any cline-neutral">&nbsp;</span>
530
514
  <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">2x</span>
515
+ <span class="cline-any cline-no">&nbsp;</span>
532
516
  <span class="cline-any cline-neutral">&nbsp;</span>
533
517
  <span class="cline-any cline-neutral">&nbsp;</span>
534
518
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -549,28 +533,13 @@
549
533
  <span class="cline-any cline-neutral">&nbsp;</span>
550
534
  <span class="cline-any cline-neutral">&nbsp;</span>
551
535
  <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-yes">3x</span>
553
536
  <span class="cline-any cline-no">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">3x</span>
558
- <span class="cline-any cline-yes">3x</span>
559
- <span class="cline-any cline-yes">3x</span>
560
- <span class="cline-any cline-yes">3x</span>
561
- <span class="cline-any cline-yes">3x</span>
562
537
  <span class="cline-any cline-no">&nbsp;</span>
563
538
  <span class="cline-any cline-neutral">&nbsp;</span>
564
539
  <span class="cline-any cline-neutral">&nbsp;</span>
565
540
  <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-yes">3x</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
541
  <span class="cline-any cline-no">&nbsp;</span>
571
542
  <span class="cline-any cline-no">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
543
  <span class="cline-any cline-no">&nbsp;</span>
575
544
  <span class="cline-any cline-no">&nbsp;</span>
576
545
  <span class="cline-any cline-no">&nbsp;</span>
@@ -578,83 +547,82 @@
578
547
  <span class="cline-any cline-neutral">&nbsp;</span>
579
548
  <span class="cline-any cline-neutral">&nbsp;</span>
580
549
  <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
550
  <span class="cline-any cline-no">&nbsp;</span>
583
551
  <span class="cline-any cline-neutral">&nbsp;</span>
584
552
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
585
553
  import makeDebug from 'debug'
586
554
  import { Forbidden } from '@feathersjs/errors'
587
- const debug = makeDebug('kdk:core:organisations:hooks')
555
+ const debug = <span class="cstat-no" title="statement not covered" >makeDebug('kdk:core:organisations:hooks')</span>
588
556
  &nbsp;
589
- 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) {
590
558
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'before') {</span>
591
- <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>
592
560
  }
593
561
  &nbsp;
594
- const plans = <span class="cstat-no" title="statement not covered" >_.k</span>eys(hook.app.get('plans') || {})
595
- 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>
596
564
  <span class="cstat-no" title="statement not covered" > if (!plan &amp;&amp; (plans.length &gt; 0)) {</span>
597
565
  // Add defaul plan
598
- <span class="cstat-no" title="statement not covered" > _.s</span>et(hook.data, 'billing.plan', plans[0])
599
- <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>
600
568
  }
601
- <span class="cstat-no" title="statement not covered" > return h</span>ook
569
+ <span class="cstat-no" title="statement not covered" > return hook</span>
602
570
  }
603
571
  &nbsp;
604
- export function createOrganisationServices (hook) {
605
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
606
- <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>
607
575
  }
608
576
  &nbsp;
609
- const app = hook.app
610
- const organisationService = hook.service
611
- 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>
612
580
  &nbsp;
613
581
  // First we create the organisation DB
614
- return databaseService.create({
582
+ <span class="cstat-no" title="statement not covered" > return databaseService.create({</span>
615
583
  name: hook.result._id.toString()
616
584
  }, {
617
585
  user: hook.params.user
618
586
  })
619
- .then(db =&gt; {
620
- 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>
621
589
  // Jump from infos/stats to real DB object
622
- db = app.db.client.db(hook.result._id.toString())
623
- organisationService.createOrganisationServices(hook.result, db)
624
- 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>
625
593
  })
626
594
  }
627
595
  &nbsp;
628
- export function removeOrganisationServices (hook) {
629
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
630
- <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>
631
599
  }
632
600
  &nbsp;
633
- const app = hook.app
634
- const organisationService = hook.service
635
- 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>
636
604
  &nbsp;
637
605
  // Then we remove the organisation DB
638
- return databaseService.remove(hook.result._id.toString(), {
606
+ <span class="cstat-no" title="statement not covered" > return databaseService.remove(hook.result._id.toString(), {</span>
639
607
  user: hook.params.user
640
608
  })
641
- .then(db =&gt; {
642
- debug('DB removed for organisation ' + hook.result.name)
643
- organisationService.removeOrganisationServices(hook.result)
644
- 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>
645
613
  })
646
614
  }
647
615
  &nbsp;
648
- export function createOrganisationAuthorisations (hook) {
649
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
650
- <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>
651
619
  }
652
620
  &nbsp;
653
- const app = hook.app
654
- const authorisationService = app.getService('authorisations')
655
- 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>
656
624
  // Set membership for the owner
657
- return authorisationService.create({
625
+ <span class="cstat-no" title="statement not covered" > return authorisationService.create({</span>
658
626
  scope: 'organisations',
659
627
  permissions: 'owner' // Owner by default
660
628
  }, {
@@ -665,22 +633,22 @@ export function createOrganisationAuthorisations (hook) {
665
633
  resource: hook.result,
666
634
  resourcesService: hook.service
667
635
  })
668
- .then(authorisation =&gt; {
669
- debug('Organisation ownership set for user ' + hook.result._id)
670
- 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>
671
639
  })
672
640
  }
673
641
  &nbsp;
674
- export function removeOrganisationAuthorisations (hook) {
675
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
676
- <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>
677
645
  }
678
646
  &nbsp;
679
- const app = hook.app
680
- 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>
681
649
  &nbsp;
682
650
  // Unset membership for the all org users
683
- return authorisationService.remove(hook.result._id.toString(), {
651
+ <span class="cstat-no" title="statement not covered" > return authorisationService.remove(hook.result._id.toString(), {</span>
684
652
  query: {
685
653
  subjectsService: hook.result._id.toString() + '/members',
686
654
  scope: 'organisations'
@@ -691,157 +659,141 @@ export function removeOrganisationAuthorisations (hook) {
691
659
  resource: hook.result,
692
660
  resourcesService: hook.service
693
661
  })
694
- .then(authorisation =&gt; {
695
- debug('Authorisations unset for organisation ' + hook.result._id)
696
- 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>
697
665
  })
698
666
  }
699
667
  &nbsp;
700
- export function updateOrganisationResource (resourceScope) {
701
- return async function (hook) {
702
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
703
- <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>
704
672
  }
705
673
  &nbsp;
706
- const app = hook.app
674
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
707
675
  // Retrieve the list of members
708
- const orgMembersService = app.getService('members', hook.service.getContextId())
709
- 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>
710
678
  query: { [resourceScope]: { $elemMatch: { _id: hook.result._id } } },
711
679
  paginate: false
712
680
  })
713
681
  // Update each members
714
- await Promise.all(members.map(member =&gt; {
715
- const resources = _.get(member, resourceScope, [])
716
- const resource = _.find(resources, { _id: hook.result._id })
717
- <span class="missing-if-branch" title="else path not taken" >E</span>if (resource) {
718
- Object.assign(resource, hook.result)
719
- 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>
720
688
  } else {
721
- <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>
722
690
  }
723
691
  }))
724
692
  &nbsp;
725
- debug(`Updated resource ${hook.result._id} on scope ${resourceScope} for members of organisation ` + hook.result._id)
726
- 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>
727
695
  }
728
696
  }
729
697
  &nbsp;
730
- export function removeOrganisationGroups (hook) {
731
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
732
- <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>
733
701
  }
734
702
  &nbsp;
735
- const app = hook.app
736
- const orgGroupService = app.getService('groups', hook.result)
737
- return orgGroupService.find({ paginate: false })
738
- .then(groups =&gt; {
739
- return Promise.all(groups.map(<span class="fstat-no" title="function not covered" >group =&gt; {</span>
740
- <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>
741
709
  user: hook.params.user
742
710
  })
743
711
  }))
744
712
  })
745
- .then(groups =&gt; {
746
- debug('Removed groups for organisation ' + hook.result._id)
747
- 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>
748
716
  })
749
717
  }
750
718
  &nbsp;
751
- 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) {
752
720
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
753
- <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>
754
722
  }
755
723
  &nbsp;
756
724
  const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
757
725
  // Retrieve the list of tags
758
- const orgTagsService = <span class="cstat-no" title="statement not covered" >app.g</span>etService('tags', hook.result)
759
- 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>
760
728
  // Retrieve the list of members
761
- const orgMembersService = <span class="cstat-no" title="statement not covered" >app.g</span>etService('members', hook.result)
762
- 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>
763
731
  // Update each members
764
732
  <span class="cstat-no" title="statement not covered" > for (const i in members) {</span>
765
- 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>
766
734
  <span class="cstat-no" title="statement not covered" > if (member.tags) {</span>
767
- 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; {
768
- <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>
769
737
  })
770
- <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>
771
739
  }
772
740
  }
773
741
  &nbsp;
774
- <span class="cstat-no" title="statement not covered" > debug('</span>Removed tags from organisation ' + hook.result._id)
775
- <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>
776
744
  }
777
745
  &nbsp;
778
- export function createPrivateOrganisation (hook) {
779
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
780
- <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>
781
749
  }
782
750
  &nbsp;
783
- const app = hook.app
784
- 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>
785
753
  // Create a private organisation for the user
786
- return organisationService.create({
754
+ <span class="cstat-no" title="statement not covered" > return organisationService.create({</span>
787
755
  _id: hook.result._id, // Same ID as user, fine because in another service
788
756
  name: hook.result.profile.name // Same name as user
789
757
  }, {
790
758
  user: hook.result
791
759
  })
792
- .then(org =&gt; {
793
- 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>
794
762
  })
795
763
  }
796
764
  &nbsp;
797
- 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) {
798
766
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
799
- <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>
800
768
  }
801
769
  &nbsp;
802
770
  const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
803
- 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>
804
772
  // Remove the private user's organisation
805
- <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>
806
774
  user: hook.result
807
775
  })
808
- .then(<span class="fstat-no" title="function not covered" >org =&gt; {</span>
809
- <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>
810
778
  })
811
779
  }
812
780
  &nbsp;
813
- export async function preventRemoveOrganisation (hook) {
814
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'before') {
815
- <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>
816
784
  }
817
785
  &nbsp;
818
786
  // By pass check ?
819
- <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
820
- const app = hook.app
821
- const orgGroupService = app.getService('groups', hook.id)
822
- const result = await orgGroupService.find({ $limit: 0 })
823
- <span class="missing-if-branch" title="if path not taken" >I</span>if (result.total &gt; 0) {
824
- <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>
825
793
  translation: { key: 'CANNOT_REMOVE_ORGANISATION' }
826
794
  })
827
795
  }
828
- return hook
829
- }
830
- &nbsp;
831
- export <span class="fstat-no" title="function not covered" >async function c</span>reateSubscribersGroup (hook) {
832
- <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
833
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'createSubscribersGroup\' hook should only be used as a \'after\' hook.')
834
- }
835
- &nbsp;
836
- const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
837
- const orgId = <span class="cstat-no" title="statement not covered" >hook.result._id</span>
838
- const orgGroupService = <span class="cstat-no" title="statement not covered" >app.g</span>etService('groups', orgId)
839
- <span class="cstat-no" title="statement not covered" > await o</span>rgGroupService.create({
840
- name: 'KGroup.SUBSCRIBERS_GROUP_NAME',
841
- description: 'KGroup.SUBSCRIBERS_GROUP_DESCRIPTION',
842
- system: true
843
- }, hook.params)
844
- <span class="cstat-no" title="statement not covered" > return h</span>ook
796
+ <span class="cstat-no" title="statement not covered" > return hook</span>
845
797
  }
846
798
  &nbsp;</pre></td></tr></table></pre>
847
799
 
@@ -850,7 +802,7 @@ export <span class="fstat-no" title="function not covered" >async function c</sp
850
802
  <div class='footer quiet pad2 space-top1 center small'>
851
803
  Code coverage generated by
852
804
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
853
- at Fri Sep 24 2021 10:39:04 GMT+0200 (GMT+02:00)
805
+ at Fri Jan 07 2022 19:29:56 GMT+0100 (GMT+01:00)
854
806
  </div>
855
807
  </div>
856
808
  <script src="../../../prettify.js"></script>