@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">60.81% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>45/74</span>
28
+ <span class='fraction'>0/71</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">47.22% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>17/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">50% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/10</span>
42
+ <span class='fraction'>0/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">60.56% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>43/71</span>
49
+ <span class='fraction'>0/68</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>
@@ -195,23 +195,23 @@
195
195
  <a name='L136'></a><a href='#L136'>136</a>
196
196
  <a name='L137'></a><a href='#L137'>137</a>
197
197
  <a name='L138'></a><a href='#L138'>138</a>
198
- <a name='L139'></a><a href='#L139'>139</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
199
- <span class="cline-any cline-yes">1x</span>
200
- <span class="cline-any cline-yes">1x</span>
198
+ <a name='L139'></a><a href='#L139'>139</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
201
199
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">1x</span>
203
200
  <span class="cline-any cline-neutral">&nbsp;</span>
204
201
  <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-yes">1x</span>
202
+ <span class="cline-any cline-no">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-no">&nbsp;</span>
206
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
207
  <span class="cline-any cline-neutral">&nbsp;</span>
208
208
  <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-yes">8x</span>
209
+ <span class="cline-any cline-no">&nbsp;</span>
210
210
  <span class="cline-any cline-no">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
212
  <span class="cline-any cline-neutral">&nbsp;</span>
213
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">8x</span>
214
+ <span class="cline-any cline-no">&nbsp;</span>
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -223,39 +223,39 @@
223
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
224
  <span class="cline-any cline-neutral">&nbsp;</span>
225
225
  <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-yes">1x</span>
226
+ <span class="cline-any cline-no">&nbsp;</span>
227
227
  <span class="cline-any cline-no">&nbsp;</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">1x</span>
230
- <span class="cline-any cline-yes">1x</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-yes">1x</span>
233
- <span class="cline-any cline-yes">1x</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
230
+ <span class="cline-any cline-no">&nbsp;</span>
231
+ <span class="cline-any cline-no">&nbsp;</span>
232
+ <span class="cline-any cline-no">&nbsp;</span>
233
+ <span class="cline-any cline-no">&nbsp;</span>
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">1x</span>
235
+ <span class="cline-any cline-no">&nbsp;</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
237
  <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-yes">1x</span>
238
+ <span class="cline-any cline-no">&nbsp;</span>
239
239
  <span class="cline-any cline-no">&nbsp;</span>
240
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-yes">1x</span>
242
- <span class="cline-any cline-yes">1x</span>
243
- <span class="cline-any cline-yes">1x</span>
244
- <span class="cline-any cline-yes">1x</span>
245
- <span class="cline-any cline-yes">1x</span>
241
+ <span class="cline-any cline-no">&nbsp;</span>
242
+ <span class="cline-any cline-no">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
246
246
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">1x</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
248
  <span class="cline-any cline-no">&nbsp;</span>
249
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">1x</span>
250
+ <span class="cline-any cline-no">&nbsp;</span>
251
251
  <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-yes">1x</span>
253
- <span class="cline-any cline-yes">1x</span>
252
+ <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-no">&nbsp;</span>
254
254
  <span class="cline-any cline-neutral">&nbsp;</span>
255
255
  <span class="cline-any cline-no">&nbsp;</span>
256
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-yes">1x</span>
258
+ <span class="cline-any cline-no">&nbsp;</span>
259
259
  <span class="cline-any cline-neutral">&nbsp;</span>
260
260
  <span class="cline-any cline-neutral">&nbsp;</span>
261
261
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -263,30 +263,30 @@
263
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">1x</span>
267
- <span class="cline-any cline-yes">1x</span>
266
+ <span class="cline-any cline-no">&nbsp;</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
268
268
  <span class="cline-any cline-neutral">&nbsp;</span>
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-yes">1x</span>
271
+ <span class="cline-any cline-no">&nbsp;</span>
272
272
  <span class="cline-any cline-no">&nbsp;</span>
273
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-yes">1x</span>
276
- <span class="cline-any cline-yes">1x</span>
277
- <span class="cline-any cline-yes">1x</span>
278
- <span class="cline-any cline-yes">1x</span>
279
- <span class="cline-any cline-yes">1x</span>
280
- <span class="cline-any cline-yes">1x</span>
281
- <span class="cline-any cline-yes">1x</span>
275
+ <span class="cline-any cline-no">&nbsp;</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
277
+ <span class="cline-any cline-no">&nbsp;</span>
278
+ <span class="cline-any cline-no">&nbsp;</span>
279
+ <span class="cline-any cline-no">&nbsp;</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-no">&nbsp;</span>
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">1x</span>
285
- <span class="cline-any cline-yes">1x</span>
286
- <span class="cline-any cline-yes">1x</span>
284
+ <span class="cline-any cline-no">&nbsp;</span>
285
+ <span class="cline-any cline-no">&nbsp;</span>
286
+ <span class="cline-any cline-no">&nbsp;</span>
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">1x</span>
289
- <span class="cline-any cline-yes">1x</span>
288
+ <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-no">&nbsp;</span>
290
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -294,7 +294,7 @@
294
294
  <span class="cline-any cline-no">&nbsp;</span>
295
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-yes">1x</span>
297
+ <span class="cline-any cline-no">&nbsp;</span>
298
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -302,8 +302,8 @@
302
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">1x</span>
306
- <span class="cline-any cline-yes">1x</span>
305
+ <span class="cline-any cline-no">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
309
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -337,63 +337,63 @@
337
337
  import { populateObject, unpopulateObject } from './hooks.query'
338
338
  import makeDebug from 'debug'
339
339
  &nbsp;
340
- const debug = makeDebug('kdk:core:storage:hooks')
340
+ const debug = <span class="cstat-no" title="statement not covered" >makeDebug('kdk:core:storage:hooks')</span>
341
341
  &nbsp;
342
- function isAttachmentEqual (file1, file2) {
343
- return file1._id === file2._id
342
+ function <span class="fstat-no" title="function not covered" >isAttachmentEqual </span>(file1, file2) {
343
+ <span class="cstat-no" title="statement not covered" > return file1._id === file2._id</span>
344
344
  }
345
345
  &nbsp;
346
- export function populateAttachmentResource (hook) {
347
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'before') {
348
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'populateStorageResource\' hook should only be used as a \'before\' hook.')
346
+ export function <span class="fstat-no" title="function not covered" >populateAttachmentResource </span>(hook) {
347
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'before') {</span>
348
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'populateStorageResource\' hook should only be used as a \'before\' hook.')</span>
349
349
  }
350
350
  &nbsp;
351
351
  // Avoid populating any target resource when resource parameters are not present
352
- return populateObject({ serviceField: 'resourcesService', idField: 'resource', throwOnNotFound: false })(hook)
352
+ <span class="cstat-no" title="statement not covered" > return populateObject({ serviceField: 'resourcesService', idField: 'resource', throwOnNotFound: false })(hook)</span>
353
353
  }
354
354
  &nbsp;
355
- export function <span class="fstat-no" title="function not covered" >unpopulateAttachmentResource (h</span>ook) {
355
+ export function <span class="fstat-no" title="function not covered" >unpopulateAttachmentResource </span>(hook) {
356
356
  <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
357
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'unpopulateAttachmentResource\' hook should only be used as a \'after\' hook.')
357
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'unpopulateAttachmentResource\' hook should only be used as a \'after\' hook.')</span>
358
358
  }
359
359
  &nbsp;
360
- <span class="cstat-no" title="statement not covered" > return u</span>npopulateObject({ serviceField: 'resourcesService', idField: 'resource' })(hook)
360
+ <span class="cstat-no" title="statement not covered" > return unpopulateObject({ serviceField: 'resourcesService', idField: 'resource' })(hook)</span>
361
361
  }
362
362
  &nbsp;
363
- export async function attachToResource (hook) {
364
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
365
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'attachToResource\' hook should only be used as a \'after\' hook.')
363
+ export async function <span class="fstat-no" title="function not covered" >attachToResource </span>(hook) {
364
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
365
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'attachToResource\' hook should only be used as a \'after\' hook.')</span>
366
366
  }
367
- const data = hook.data
368
- const params = hook.params
369
- const query = params.query
370
- const file = hook.result
371
- const attachmentField = _.get(data, 'field') || _.get(query, 'field') || 'attachments'
367
+ const data = <span class="cstat-no" title="statement not covered" >hook.data</span>
368
+ const params = <span class="cstat-no" title="statement not covered" >hook.params</span>
369
+ const query = <span class="cstat-no" title="statement not covered" >params.query</span>
370
+ const file = <span class="cstat-no" title="statement not covered" >hook.result</span>
371
+ const attachmentField = <span class="cstat-no" title="statement not covered" >_.get(data, 'field') || _.get(query, 'field') || 'attachments'</span>
372
372
  // By default attachments are stored in an array
373
- let isArray = _.get(data, 'isArray') || _.get(query, 'isArray') || true
373
+ let isArray = <span class="cstat-no" title="statement not covered" >_.get(data, 'isArray') || _.get(query, 'isArray') || true</span>
374
374
  // Take care that because file uploads might be submitted by external multipart form data middlewares
375
375
  // all parameters types might be string
376
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof (isArray) !== 'boolean') {
377
- <span class="cstat-no" title="statement not covered" > isArray = (i</span>sArray === 'true')
376
+ <span class="cstat-no" title="statement not covered" > if (typeof (isArray) !== 'boolean') {</span>
377
+ <span class="cstat-no" title="statement not covered" > isArray = (isArray === 'true')</span>
378
378
  }
379
- const context = hook.service.context
380
- const resourcesService = params.resourcesService
381
- const resource = params.resource
382
- let attachments = _.get(resource, attachmentField)
383
- const attachment = Object.assign({ _id: file._id }, _.omit(file, ['uri']))
379
+ const context = <span class="cstat-no" title="statement not covered" >hook.service.context</span>
380
+ const resourcesService = <span class="cstat-no" title="statement not covered" >params.resourcesService</span>
381
+ const resource = <span class="cstat-no" title="statement not covered" >params.resource</span>
382
+ let attachments = <span class="cstat-no" title="statement not covered" >_.get(resource, attachmentField)</span>
383
+ const attachment = <span class="cstat-no" title="statement not covered" >Object.assign({ _id: file._id }, _.omit(file, ['uri']))</span>
384
384
  // Add context because attachments might come from different ones on the same target object
385
- <span class="missing-if-branch" title="if path not taken" >I</span>if (context) {
386
- <span class="cstat-no" title="statement not covered" > attachment.c</span>ontext = (typeof context === 'object' ? context._id.toString() : context.toString())
385
+ <span class="cstat-no" title="statement not covered" > if (context) {</span>
386
+ <span class="cstat-no" title="statement not covered" > attachment.context = (typeof context === 'object' ? context._id.toString() : context.toString())</span>
387
387
  }
388
- <span class="missing-if-branch" title="else path not taken" >E</span>if (isArray) {
388
+ <span class="cstat-no" title="statement not covered" > if (isArray) {</span>
389
389
  // Initialize on first attachment
390
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!attachments) attachments = []
391
- attachments.push(attachment)
390
+ <span class="cstat-no" title="statement not covered" > if (!attachments) <span class="cstat-no" title="statement not covered" >attachments = []</span></span>
391
+ <span class="cstat-no" title="statement not covered" > attachments.push(attachment)</span>
392
392
  } else {
393
- <span class="cstat-no" title="statement not covered" > attachments = a</span>ttachment
393
+ <span class="cstat-no" title="statement not covered" > attachments = attachment</span>
394
394
  }
395
395
  &nbsp;
396
- await resourcesService.patch(resource._id.toString(), {
396
+ <span class="cstat-no" title="statement not covered" > await resourcesService.patch(resource._id.toString(), {</span>
397
397
  [attachmentField]: attachments
398
398
  }, {
399
399
  user: params.user,
@@ -401,38 +401,38 @@ export async function attachToResource (hook) {
401
401
  // Delete own parameters from query otherwise it will be used to filter items
402
402
  query: _.omit(query, ['resource', 'resourcesService'])
403
403
  })
404
- debug('Attached file on resource ' + resource._id.toString(), attachment)
405
- return hook
404
+ <span class="cstat-no" title="statement not covered" > debug('Attached file on resource ' + resource._id.toString(), attachment)</span>
405
+ <span class="cstat-no" title="statement not covered" > return hook</span>
406
406
  }
407
407
  &nbsp;
408
- export async function detachFromResource (hook) {
409
- <span class="missing-if-branch" title="if path not taken" >I</span>if (hook.type !== 'after') {
410
- <span class="cstat-no" title="statement not covered" > throw n</span>ew Error('The \'detachFromResource\' hook should only be used as a \'after\' hook.')
408
+ export async function <span class="fstat-no" title="function not covered" >detachFromResource </span>(hook) {
409
+ <span class="cstat-no" title="statement not covered" > if (hook.type !== 'after') {</span>
410
+ <span class="cstat-no" title="statement not covered" > throw new Error('The \'detachFromResource\' hook should only be used as a \'after\' hook.')</span>
411
411
  }
412
412
  &nbsp;
413
- const params = hook.params
414
- const query = params.query
415
- const file = hook.result
416
- const attachmentField = _.get(query, 'field') || 'attachments'
417
- const resourcesService = params.resourcesService
418
- const resource = params.resource
419
- let attachments = _.get(resource, attachmentField)
413
+ const params = <span class="cstat-no" title="statement not covered" >hook.params</span>
414
+ const query = <span class="cstat-no" title="statement not covered" >params.query</span>
415
+ const file = <span class="cstat-no" title="statement not covered" >hook.result</span>
416
+ const attachmentField = <span class="cstat-no" title="statement not covered" >_.get(query, 'field') || 'attachments'</span>
417
+ const resourcesService = <span class="cstat-no" title="statement not covered" >params.resourcesService</span>
418
+ const resource = <span class="cstat-no" title="statement not covered" >params.resource</span>
419
+ let attachments = <span class="cstat-no" title="statement not covered" >_.get(resource, attachmentField)</span>
420
420
  let attachment
421
421
  // List of attachments
422
- <span class="missing-if-branch" title="else path not taken" >E</span>if (Array.isArray(attachments)) {
423
- const attachmentIndex = _.findIndex(attachments, attachment =&gt; isAttachmentEqual(attachment, file))
424
- <span class="missing-if-branch" title="else path not taken" >E</span>if (attachmentIndex &gt;= 0) {
422
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray(attachments)) {</span>
423
+ const attachmentIndex = <span class="cstat-no" title="statement not covered" >_.findIndex(attachments, <span class="fstat-no" title="function not covered" >at</span>tachment =&gt; <span class="cstat-no" title="statement not covered" >isAttachmentEqual(attachment, file))</span></span>
424
+ <span class="cstat-no" title="statement not covered" > if (attachmentIndex &gt;= 0) {</span>
425
425
  // Keep track of it for logging
426
- attachment = attachments[attachmentIndex]
427
- _.pullAt(attachments, attachmentIndex)
426
+ <span class="cstat-no" title="statement not covered" > attachment = attachments[attachmentIndex]</span>
427
+ <span class="cstat-no" title="statement not covered" > _.pullAt(attachments, attachmentIndex)</span>
428
428
  }
429
429
  } else {
430
430
  // Single attachment object
431
- <span class="cstat-no" title="statement not covered" > attachment = a</span>ttachments
432
- <span class="cstat-no" title="statement not covered" > attachments = n</span>ull
431
+ <span class="cstat-no" title="statement not covered" > attachment = attachments</span>
432
+ <span class="cstat-no" title="statement not covered" > attachments = null</span>
433
433
  }
434
434
  &nbsp;
435
- await resourcesService.patch(resource._id.toString(), {
435
+ <span class="cstat-no" title="statement not covered" > await resourcesService.patch(resource._id.toString(), {</span>
436
436
  [attachmentField]: attachments
437
437
  }, {
438
438
  user: params.user,
@@ -440,35 +440,35 @@ export async function detachFromResource (hook) {
440
440
  // Delete own parameters from query otherwise it will be used to filter items
441
441
  query: _.omit(query, ['resource', 'resourcesService'])
442
442
  })
443
- debug('Detached file on resource ' + resource._id.toString(), attachment)
444
- return hook
443
+ <span class="cstat-no" title="statement not covered" > debug('Detached file on resource ' + resource._id.toString(), attachment)</span>
444
+ <span class="cstat-no" title="statement not covered" > return hook</span>
445
445
  }
446
446
  &nbsp;
447
- export function <span class="fstat-no" title="function not covered" >removeAttachments (a</span>ttachmentField) {
448
- <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > return <span class="fstat-no" title="function not covered" >a</span></span>sync function (h</span>ook) {
447
+ export function <span class="fstat-no" title="function not covered" >removeAttachments </span>(attachmentField) {
448
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >as</span>ync function (hook) {</span>
449
449
  const context = <span class="cstat-no" title="statement not covered" >hook.service.context</span>
450
- const storageService = <span class="cstat-no" title="statement not covered" >hook.a</span>pp.getService('storage', context)
451
- <span class="cstat-no" title="statement not covered" > if (!storageService) <span class="cstat-no" title="statement not covered" >return P</span></span>romise.reject(new Error('No valid context found to retrieve storage service for initiator service ' + hook.service.name))
450
+ const storageService = <span class="cstat-no" title="statement not covered" >hook.app.getService('storage', context)</span>
451
+ <span class="cstat-no" title="statement not covered" > if (!storageService) <span class="cstat-no" title="statement not covered" >return Promise.reject(new Error('No valid context found to retrieve storage service for initiator service ' + hook.service.name))</span></span>
452
452
  const resource = <span class="cstat-no" title="statement not covered" >hook.result</span>
453
- const attachments = <span class="cstat-no" title="statement not covered" >_.g</span>et(resource, attachmentField)
453
+ const attachments = <span class="cstat-no" title="statement not covered" >_.get(resource, attachmentField)</span>
454
454
  // Process with each attachment
455
455
  <span class="cstat-no" title="statement not covered" > if (attachments) {</span>
456
- <span class="cstat-no" title="statement not covered" > debug('</span>Removing attachments for resource ' + resource._id.toString(), attachments)
456
+ <span class="cstat-no" title="statement not covered" > debug('Removing attachments for resource ' + resource._id.toString(), attachments)</span>
457
457
  <span class="cstat-no" title="statement not covered" > if (Array.isArray(attachments)) {</span>
458
458
  const removePromises = <span class="cstat-no" title="statement not covered" >[]</span>
459
- <span class="cstat-no" title="statement not covered" > attachments.f</span>orEach(<span class="fstat-no" title="function not covered" >attachment =&gt; {</span>
460
- <span class="cstat-no" title="statement not covered" > removePromises.p</span>ush(storageService.remove(attachment._id))
459
+ <span class="cstat-no" title="statement not covered" > attachments.forEach(<span class="fstat-no" title="function not covered" >at</span>tachment =&gt; {</span>
460
+ <span class="cstat-no" title="statement not covered" > removePromises.push(storageService.remove(attachment._id))</span>
461
461
  // Thumbnail as well
462
- <span class="cstat-no" title="statement not covered" > removePromises.p</span>ush(storageService.remove(attachment._id + '.thumbnail'))
462
+ <span class="cstat-no" title="statement not covered" > removePromises.push(storageService.remove(attachment._id + '.thumbnail'))</span>
463
463
  })
464
- <span class="cstat-no" title="statement not covered" > await P</span>romise.all(removePromises)
464
+ <span class="cstat-no" title="statement not covered" > await Promise.all(removePromises)</span>
465
465
  } else {
466
- <span class="cstat-no" title="statement not covered" > await s</span>torageService.remove(attachments._id)
466
+ <span class="cstat-no" title="statement not covered" > await storageService.remove(attachments._id)</span>
467
467
  // Thumbnail as well
468
- <span class="cstat-no" title="statement not covered" > await s</span>torageService.remove(attachments._id + '.thumbnail')
468
+ <span class="cstat-no" title="statement not covered" > await storageService.remove(attachments._id + '.thumbnail')</span>
469
469
  }
470
470
  }
471
- <span class="cstat-no" title="statement not covered" > return h</span>ook
471
+ <span class="cstat-no" title="statement not covered" > return hook</span>
472
472
  }
473
473
  }
474
474
  &nbsp;</pre></td></tr></table></pre>
@@ -478,7 +478,7 @@ export function <span class="fstat-no" title="function not covered" >removeAttac
478
478
  <div class='footer quiet pad2 space-top1 center small'>
479
479
  Code coverage generated by
480
480
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
481
- at Wed Dec 08 2021 20:41:51 GMT+0100 (GMT+01:00)
481
+ at Thu Feb 17 2022 13:49:01 GMT+0100 (GMT+01:00)
482
482
  </div>
483
483
  </div>
484
484
  <script src="../../../prettify.js"></script>