@kalisio/kdk 1.4.2 → 1.5.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 (335) hide show
  1. package/.nyc_output/{2e74ca23-8cf0-4161-9536-f71c2a1a74bb.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/{2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json → 6dc4b140-1a8a-4d69-b91c-89c557883d6e.json} +1 -1
  4. package/.nyc_output/{81d21e46-766a-46bc-b1b7-143ca577347a.json → 8b1830fa-932e-4a61-9837-4a5b18f83ea9.json} +0 -0
  5. package/.nyc_output/{aaf3ebbb-f895-4d7b-9255-bc5dee832570.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/{a762cb58-70dc-4d39-ab69-928635affa98.json → 2226bcce-9d22-4dad-b9fa-46564b5565c7.json} +1 -1
  8. package/.nyc_output/processinfo/{2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json → 6dc4b140-1a8a-4d69-b91c-89c557883d6e.json} +1 -1
  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 +21 -8
  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 +45 -45
  17. package/coverage/core/api/hooks/hooks.authentication.js.html +71 -71
  18. package/coverage/core/api/hooks/hooks.authorisations.js.html +353 -353
  19. package/coverage/core/api/hooks/hooks.devices.js.html +49 -49
  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 +190 -190
  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 +263 -263
  30. package/coverage/core/api/hooks/index.html +172 -172
  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 +104 -104
  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 +121 -121
  53. package/coverage/core/api/services/devices/index.html +28 -28
  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 +34 -34
  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 +414 -414
  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 +178 -178
  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 +45 -45
  83. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +71 -71
  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 +49 -49
  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 +190 -190
  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 +263 -263
  96. package/coverage/lcov-report/core/api/hooks/index.html +172 -172
  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 +104 -104
  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 +121 -121
  119. package/coverage/lcov-report/core/api/services/devices/index.html +28 -28
  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 +34 -34
  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 +414 -414
  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 +178 -178
  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 +25 -7
  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 +3403 -3724
  190. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  191. package/coverage/map/api/hooks/hooks.query.js.html +25 -7
  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/form/KFileField.vue +11 -40
  235. package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
  236. package/lib/core/client/i18n/core_en.json +6 -1
  237. package/lib/core/client/i18n/core_fr.json +6 -1
  238. package/lib/core/client/index.js +18 -0
  239. package/lib/core/client/index.js.map +1 -1
  240. package/lib/core/client/layout.js +8 -1
  241. package/lib/core/client/layout.js.map +1 -1
  242. package/lib/core/client/reader.js +54 -0
  243. package/lib/core/client/reader.js.map +1 -0
  244. package/lib/core/client/readers/index.js +30 -0
  245. package/lib/core/client/readers/index.js.map +1 -0
  246. package/lib/core/client/readers/reader.csv.js +43 -0
  247. package/lib/core/client/readers/reader.csv.js.map +1 -0
  248. package/lib/core/client/readers/reader.json.js +38 -0
  249. package/lib/core/client/readers/reader.json.js.map +1 -0
  250. package/lib/map/api/hooks/hooks.query.js +7 -2
  251. package/lib/map/api/hooks/hooks.query.js.map +1 -1
  252. package/lib/map/client/components/KCaptureToolbar.vue +156 -0
  253. package/lib/map/client/components/KFeaturesFilter.vue +3 -1
  254. package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
  255. package/lib/map/client/components/KLayerStyleEditor.vue +2 -1
  256. package/lib/map/client/components/KLayerStyleForm.vue +34 -23
  257. package/lib/map/client/components/KMeasureTool.vue +340 -0
  258. package/lib/map/client/components/KTimeline.vue +0 -1
  259. package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
  260. package/lib/map/client/components/catalog/KLayersSelector.vue +5 -3
  261. package/lib/map/client/components/widget/KTimeSeries.vue +81 -3
  262. package/lib/map/client/i18n/map_en.json +41 -4
  263. package/lib/map/client/i18n/map_fr.json +41 -4
  264. package/lib/map/client/init.js +6 -1
  265. package/lib/map/client/init.js.map +1 -1
  266. package/lib/map/client/leaflet/MaskLayer.js +9 -0
  267. package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
  268. package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
  269. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  270. package/lib/map/client/mixins/globe/mixin.popup.js +4 -0
  271. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  272. package/lib/map/client/mixins/globe/mixin.tooltip.js +4 -0
  273. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  274. package/lib/map/client/mixins/map/mixin.base-map.js +45 -6
  275. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  276. package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
  277. package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
  278. package/lib/map/client/mixins/map/mixin.file-layers.js +47 -101
  279. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  280. package/lib/map/client/mixins/map/mixin.geojson-layers.js +4 -1
  281. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  282. package/lib/map/client/mixins/map/mixin.popup.js +4 -0
  283. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  284. package/lib/map/client/mixins/map/mixin.tooltip.js +4 -0
  285. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  286. package/lib/map/client/mixins/mixin.activity.js +2 -0
  287. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  288. package/lib/map/client/mixins/mixin.context.js +26 -3
  289. package/lib/map/client/mixins/mixin.context.js.map +1 -1
  290. package/lib/map/client/mixins/mixin.feature-service.js +2 -2
  291. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  292. package/lib/map/client/mixins/mixin.infobox.js +4 -0
  293. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  294. package/lib/map/client/readers/index.js +42 -0
  295. package/lib/map/client/readers/index.js.map +1 -0
  296. package/lib/map/client/readers/reader.geojson.js +59 -0
  297. package/lib/map/client/readers/reader.geojson.js.map +1 -0
  298. package/lib/map/client/readers/reader.gpx.js +41 -0
  299. package/lib/map/client/readers/reader.gpx.js.map +1 -0
  300. package/lib/map/client/readers/reader.kml.js +41 -0
  301. package/lib/map/client/readers/reader.kml.js.map +1 -0
  302. package/lib/map/client/utils.js +2 -1
  303. package/lib/map/client/utils.js.map +1 -1
  304. package/lib/test/client/core/runner.js +1 -2
  305. package/lib/test/client/core/runner.js.map +1 -1
  306. package/lib/test/client/core/utils.js +2 -2
  307. package/lib/test/client/core/utils.js.map +1 -1
  308. package/lib/test/client/map/catalog.js +50 -49
  309. package/lib/test/client/map/catalog.js.map +1 -1
  310. package/package.json +3 -2
  311. package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
  312. package/.nyc_output/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +0 -1
  313. package/.nyc_output/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +0 -1
  314. package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +0 -1
  315. package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +0 -1
  316. package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +0 -1
  317. package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +0 -1
  318. package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +0 -1
  319. package/extras/testcafe/Dockerfile +0 -48
  320. package/extras/testcafe/docker-entrypoint.sh +0 -27
  321. package/extras/testcafe/page-models/core/account.js +0 -75
  322. package/extras/testcafe/page-models/core/base-collection.js +0 -41
  323. package/extras/testcafe/page-models/core/base-page.js +0 -25
  324. package/extras/testcafe/page-models/core/groups.js +0 -36
  325. package/extras/testcafe/page-models/core/index.js +0 -140
  326. package/extras/testcafe/page-models/core/layout.js +0 -145
  327. package/extras/testcafe/page-models/core/members.js +0 -98
  328. package/extras/testcafe/page-models/core/organisations.js +0 -76
  329. package/extras/testcafe/page-models/core/screens.js +0 -99
  330. package/extras/testcafe/page-models/core/tags.js +0 -21
  331. package/extras/testcafe/page-models/map/add-layer.js +0 -51
  332. package/extras/testcafe/page-models/map/catalog.js +0 -132
  333. package/extras/testcafe/page-models/map/index.js +0 -36
  334. package/extras/testcafe/page-models/map/map-activity.js +0 -42
  335. 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">58.33% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>77/132</span>
28
+ <span class='fraction'>0/128</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">49.46% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>46/93</span>
35
+ <span class='fraction'>0/93</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/15</span>
42
+ <span class='fraction'>0/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">63.11% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>77/122</span>
49
+ <span class='fraction'>0/118</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>
@@ -272,12 +272,12 @@
272
272
  <a name='L213'></a><a href='#L213'>213</a>
273
273
  <a name='L214'></a><a href='#L214'>214</a>
274
274
  <a name='L215'></a><a href='#L215'>215</a></td><td class="line-coverage quiet"><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
275
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-yes">1x</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-no">&nbsp;</span>
@@ -288,10 +288,10 @@
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-yes">1x</span>
292
- <span class="cline-any cline-yes">1x</span>
291
+ <span class="cline-any cline-no">&nbsp;</span>
292
+ <span class="cline-any cline-no">&nbsp;</span>
293
293
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">1x</span>
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
297
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -304,17 +304,17 @@
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
306
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">1x</span>
308
- <span class="cline-any cline-yes">1x</span>
307
+ <span class="cline-any cline-no">&nbsp;</span>
308
+ <span class="cline-any cline-no">&nbsp;</span>
309
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">1x</span>
311
- <span class="cline-any cline-yes">1x</span>
312
- <span class="cline-any cline-yes">1x</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
313
  <span class="cline-any cline-no">&nbsp;</span>
314
314
  <span class="cline-any cline-no">&nbsp;</span>
315
315
  <span class="cline-any cline-no">&nbsp;</span>
316
316
  <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-yes">1x</span>
317
+ <span class="cline-any cline-no">&nbsp;</span>
318
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
320
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -330,63 +330,63 @@
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
331
  <span class="cline-any cline-neutral">&nbsp;</span>
332
332
  <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">46x</span>
334
- <span class="cline-any cline-yes">46x</span>
335
- <span class="cline-any cline-yes">46x</span>
336
- <span class="cline-any cline-yes">46x</span>
337
- <span class="cline-any cline-yes">46x</span>
338
- <span class="cline-any cline-yes">46x</span>
339
- <span class="cline-any cline-yes">46x</span>
340
- <span class="cline-any cline-yes">46x</span>
333
+ <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-no">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-no">&nbsp;</span>
338
+ <span class="cline-any cline-no">&nbsp;</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">46x</span>
344
- <span class="cline-any cline-yes">12x</span>
345
- <span class="cline-any cline-yes">12x</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-no">&nbsp;</span>
346
346
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">34x</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
348
348
  <span class="cline-any cline-no">&nbsp;</span>
349
349
  <span class="cline-any cline-no">&nbsp;</span>
350
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
351
  <span class="cline-any cline-neutral">&nbsp;</span>
352
352
  <span class="cline-any cline-neutral">&nbsp;</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">34x</span>
355
- <span class="cline-any cline-yes">34x</span>
356
- <span class="cline-any cline-yes">24x</span>
357
- <span class="cline-any cline-yes">24x</span>
358
- <span class="cline-any cline-yes">24x</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
359
  <span class="cline-any cline-no">&nbsp;</span>
360
360
  <span class="cline-any cline-no">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">10x</span>
363
- <span class="cline-any cline-yes">10x</span>
364
- <span class="cline-any cline-yes">10x</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
365
  <span class="cline-any cline-neutral">&nbsp;</span>
366
366
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">24x</span>
368
- <span class="cline-any cline-yes">24x</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
369
  <span class="cline-any cline-no">&nbsp;</span>
370
370
  <span class="cline-any cline-no">&nbsp;</span>
371
371
  <span class="cline-any cline-neutral">&nbsp;</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-yes">24x</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">24x</span>
375
+ <span class="cline-any cline-no">&nbsp;</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">24x</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
378
378
  <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-yes">24x</span>
380
- <span class="cline-any cline-yes">24x</span>
381
- <span class="cline-any cline-yes">24x</span>
382
- <span class="cline-any cline-yes">24x</span>
383
- <span class="cline-any cline-yes">24x</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-no">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
384
  <span class="cline-any cline-no">&nbsp;</span>
385
385
  <span class="cline-any cline-no">&nbsp;</span>
386
386
  <span class="cline-any cline-neutral">&nbsp;</span>
387
387
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-yes">24x</span>
389
- <span class="cline-any cline-yes">24x</span>
388
+ <span class="cline-any cline-no">&nbsp;</span>
389
+ <span class="cline-any cline-no">&nbsp;</span>
390
390
  <span class="cline-any cline-neutral">&nbsp;</span>
391
391
  <span class="cline-any cline-neutral">&nbsp;</span>
392
392
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -411,32 +411,32 @@
411
411
  <span class="cline-any cline-neutral">&nbsp;</span>
412
412
  <span class="cline-any cline-neutral">&nbsp;</span>
413
413
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">26x</span>
415
- <span class="cline-any cline-yes">26x</span>
416
- <span class="cline-any cline-yes">26x</span>
417
- <span class="cline-any cline-yes">26x</span>
418
- <span class="cline-any cline-yes">26x</span>
419
- <span class="cline-any cline-yes">26x</span>
420
- <span class="cline-any cline-yes">26x</span>
421
- <span class="cline-any cline-yes">26x</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
415
+ <span class="cline-any cline-no">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
417
+ <span class="cline-any cline-no">&nbsp;</span>
418
+ <span class="cline-any cline-no">&nbsp;</span>
419
+ <span class="cline-any cline-no">&nbsp;</span>
420
+ <span class="cline-any cline-no">&nbsp;</span>
421
+ <span class="cline-any cline-no">&nbsp;</span>
422
422
  <span class="cline-any cline-neutral">&nbsp;</span>
423
423
  <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-yes">26x</span>
425
- <span class="cline-any cline-yes">8x</span>
426
- <span class="cline-any cline-yes">8x</span>
424
+ <span class="cline-any cline-no">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
427
  <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-yes">18x</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
429
  <span class="cline-any cline-no">&nbsp;</span>
430
430
  <span class="cline-any cline-no">&nbsp;</span>
431
431
  <span class="cline-any cline-neutral">&nbsp;</span>
432
432
  <span class="cline-any cline-neutral">&nbsp;</span>
433
433
  <span class="cline-any cline-neutral">&nbsp;</span>
434
434
  <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-yes">18x</span>
436
- <span class="cline-any cline-yes">18x</span>
437
- <span class="cline-any cline-yes">18x</span>
438
- <span class="cline-any cline-yes">18x</span>
439
- <span class="cline-any cline-yes">18x</span>
435
+ <span class="cline-any cline-no">&nbsp;</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
440
  <span class="cline-any cline-no">&nbsp;</span>
441
441
  <span class="cline-any cline-no">&nbsp;</span>
442
442
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -446,31 +446,31 @@
446
446
  <span class="cline-any cline-neutral">&nbsp;</span>
447
447
  <span class="cline-any cline-neutral">&nbsp;</span>
448
448
  <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">18x</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
450
  <span class="cline-any cline-neutral">&nbsp;</span>
451
451
  <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">18x</span>
452
+ <span class="cline-any cline-no">&nbsp;</span>
453
453
  <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">18x</span>
455
- <span class="cline-any cline-yes">5x</span>
456
- <span class="cline-any cline-yes">5x</span>
454
+ <span class="cline-any cline-no">&nbsp;</span>
455
+ <span class="cline-any cline-no">&nbsp;</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
457
  <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-yes">5x</span>
459
- <span class="cline-any cline-yes">5x</span>
460
- <span class="cline-any cline-yes">5x</span>
458
+ <span class="cline-any cline-no">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
+ <span class="cline-any cline-no">&nbsp;</span>
461
461
  <span class="cline-any cline-neutral">&nbsp;</span>
462
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">13x</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
464
  <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-yes">13x</span>
466
- <span class="cline-any cline-yes">13x</span>
467
- <span class="cline-any cline-yes">13x</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
466
+ <span class="cline-any cline-no">&nbsp;</span>
467
+ <span class="cline-any cline-no">&nbsp;</span>
468
468
  <span class="cline-any cline-no">&nbsp;</span>
469
469
  <span class="cline-any cline-no">&nbsp;</span>
470
470
  <span class="cline-any cline-neutral">&nbsp;</span>
471
471
  <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-yes">13x</span>
473
- <span class="cline-any cline-yes">13x</span>
472
+ <span class="cline-any cline-no">&nbsp;</span>
473
+ <span class="cline-any cline-no">&nbsp;</span>
474
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
475
  <span class="cline-any cline-neutral">&nbsp;</span>
476
476
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -491,213 +491,213 @@ import { marshallComparisonFields, marshallSortFields, marshallTime } from '../m
491
491
  import { ObjectID } from 'mongodb'
492
492
  import makeDebug from 'debug'
493
493
  &nbsp;
494
- const debug = makeDebug('kdk:core:query:hooks')
494
+ const debug = <span class="cstat-no" title="statement not covered" >makeDebug('kdk:core:query:hooks')</span>
495
495
  &nbsp;
496
- export function <span class="fstat-no" title="function not covered" >marshallTimeQuery (h</span>ook) {
496
+ export function <span class="fstat-no" title="function not covered" >marshallTimeQuery </span>(hook) {
497
497
  const query = <span class="cstat-no" title="statement not covered" >hook.params.query</span>
498
498
  <span class="cstat-no" title="statement not covered" > if (query) {</span>
499
499
  // Need to convert from client/server side types : string or moment dates
500
- <span class="cstat-no" title="statement not covered" > marshallTime(q</span>uery, 'time')
500
+ <span class="cstat-no" title="statement not covered" > marshallTime(query, 'time')</span>
501
501
  }
502
502
  }
503
503
  &nbsp;
504
- export function marshallComparisonQuery (hook) {
505
- const query = hook.params.query
506
- <span class="missing-if-branch" title="else path not taken" >E</span>if (query) {
504
+ export function <span class="fstat-no" title="function not covered" >marshallComparisonQuery </span>(hook) {
505
+ const query = <span class="cstat-no" title="statement not covered" >hook.params.query</span>
506
+ <span class="cstat-no" title="statement not covered" > if (query) {</span>
507
507
  // Complex queries might have nested objects so we call a recursive function to handle this
508
- marshallComparisonFields(query)
508
+ <span class="cstat-no" title="statement not covered" > marshallComparisonFields(query)</span>
509
509
  }
510
510
  }
511
511
  &nbsp;
512
- export function <span class="fstat-no" title="function not covered" >marshallSortQuery (h</span>ook) {
512
+ export function <span class="fstat-no" title="function not covered" >marshallSortQuery </span>(hook) {
513
513
  const query = <span class="cstat-no" title="statement not covered" >hook.params.query</span>
514
514
  <span class="cstat-no" title="statement not covered" > if (query &amp;&amp; query.$sort) {</span>
515
515
  // Complex queries might have nested objects so we call a recursive function to handle this
516
- <span class="cstat-no" title="statement not covered" > marshallSortFields(q</span>uery.$sort)
516
+ <span class="cstat-no" title="statement not covered" > marshallSortFields(query.$sort)</span>
517
517
  }
518
518
  }
519
519
  &nbsp;
520
- export function marshallCollationQuery (hook) {
521
- const query = hook.params.query
522
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!query) <span class="cstat-no" title="statement not covered" >return</span>
520
+ export function <span class="fstat-no" title="function not covered" >marshallCollationQuery </span>(hook) {
521
+ const query = <span class="cstat-no" title="statement not covered" >hook.params.query</span>
522
+ <span class="cstat-no" title="statement not covered" > if (!query) <span class="cstat-no" title="statement not covered" >return</span></span>
523
523
  // Locale shortcut or whole query provided
524
- <span class="missing-if-branch" title="else path not taken" >E</span>if (query.$locale) {
525
- hook.params.collation = { locale: query.$locale }
526
- delete query.$locale
524
+ <span class="cstat-no" title="statement not covered" > if (query.$locale) {</span>
525
+ <span class="cstat-no" title="statement not covered" > hook.params.collation = { locale: query.$locale }</span>
526
+ <span class="cstat-no" title="statement not covered" > delete query.$locale</span>
527
527
  } else <span class="cstat-no" title="statement not covered" >if (query.$collation) {</span>
528
- <span class="cstat-no" title="statement not covered" > hook.p</span>arams.collation = query.$collation
529
- <span class="cstat-no" title="statement not covered" > delete q</span>uery.$collation
528
+ <span class="cstat-no" title="statement not covered" > hook.params.collation = query.$collation</span>
529
+ <span class="cstat-no" title="statement not covered" > delete query.$collation</span>
530
530
  }
531
- return hook
531
+ <span class="cstat-no" title="statement not covered" > return hook</span>
532
532
  }
533
533
  &nbsp;
534
- export <span class="fstat-no" title="function not covered" >async function a</span>ggregationQuery (hook) {
534
+ export async function <span class="fstat-no" title="function not covered" >aggregationQuery </span>(hook) {
535
535
  const query = <span class="cstat-no" title="statement not covered" >hook.params.query</span>
536
536
  <span class="cstat-no" title="statement not covered" > if (!query) <span class="cstat-no" title="statement not covered" >return</span></span>
537
537
  const service = <span class="cstat-no" title="statement not covered" >hook.service</span>
538
538
  <span class="cstat-no" title="statement not covered" > if (query.$aggregation) {</span>
539
539
  const collection = <span class="cstat-no" title="statement not covered" >service.Model</span>
540
540
  // Set result to avoid service DB call
541
- <span class="cstat-no" title="statement not covered" > hook.r</span>esult = await collection.aggregate(query.$aggregation.pipeline, query.$aggregation.options).toArray()
541
+ <span class="cstat-no" title="statement not covered" > hook.result = await collection.aggregate(query.$aggregation.pipeline, query.$aggregation.options).toArray()</span>
542
542
  }
543
- <span class="cstat-no" title="statement not covered" > return h</span>ook
543
+ <span class="cstat-no" title="statement not covered" > return hook</span>
544
544
  }
545
545
  &nbsp;
546
- export function populateObject (options) {
547
- return function (hook) {
548
- const app = hook.app
549
- const data = hook.data
550
- const params = hook.params
551
- const query = params.query
552
- const context = hook.service.context
553
- const idProperty = options.nameIdAs || options.idField
554
- const serviceProperty = options.nameServiceAs || options.serviceField
546
+ export function <span class="fstat-no" title="function not covered" >populateObject </span>(options) {
547
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >fu</span>nction (hook) {</span>
548
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
549
+ const data = <span class="cstat-no" title="statement not covered" >hook.data</span>
550
+ const params = <span class="cstat-no" title="statement not covered" >hook.params</span>
551
+ const query = <span class="cstat-no" title="statement not covered" >params.query</span>
552
+ const context = <span class="cstat-no" title="statement not covered" >hook.service.context</span>
553
+ const idProperty = <span class="cstat-no" title="statement not covered" >options.nameIdAs || options.idField</span>
554
+ const serviceProperty = <span class="cstat-no" title="statement not covered" >options.nameServiceAs || options.serviceField</span>
555
555
  &nbsp;
556
556
  // Check if not already done
557
- if (typeof _.get(params, idProperty) === 'object') {
558
- debug(`Skipping populating ${idProperty} as already done`)
559
- return Promise.resolve(hook)
557
+ <span class="cstat-no" title="statement not covered" > if (typeof _.get(params, idProperty) === 'object') {</span>
558
+ <span class="cstat-no" title="statement not covered" > debug(`Skipping populating ${idProperty} as already done`)</span>
559
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve(hook)</span>
560
560
  }
561
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof _.get(params, serviceProperty) === 'object') {
562
- <span class="cstat-no" title="statement not covered" > debug(`S</span>kipping populating ${serviceProperty} as already done`)
563
- <span class="cstat-no" title="statement not covered" > return P</span>romise.resolve(hook)
561
+ <span class="cstat-no" title="statement not covered" > if (typeof _.get(params, serviceProperty) === 'object') {</span>
562
+ <span class="cstat-no" title="statement not covered" > debug(`Skipping populating ${serviceProperty} as already done`)</span>
563
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve(hook)</span>
564
564
  }
565
565
  &nbsp;
566
566
  // Get service where we can find the object to populate
567
567
  // Make hook usable with query params as well and service name or real object
568
- let service = _.get(data, options.serviceField) || _.get(query, options.serviceField)
569
- if (typeof service === 'string') {
570
- const message = `Cannot find the service for ${options.serviceField} = ${service} to dynamically populate.`
571
- service = app.getService(service, context)
572
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!service) {
573
- <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(message)</span>
574
- else <span class="cstat-no" title="statement not covered" >return P</span>romise.resolve(hook)
568
+ let service = <span class="cstat-no" title="statement not covered" >_.get(data, options.serviceField) || _.get(query, options.serviceField)</span>
569
+ <span class="cstat-no" title="statement not covered" > if (typeof service === 'string') {</span>
570
+ const message = <span class="cstat-no" title="statement not covered" >`Cannot find the service for ${options.serviceField} = ${service} to dynamically populate.`</span>
571
+ <span class="cstat-no" title="statement not covered" > service = app.getService(service, context)</span>
572
+ <span class="cstat-no" title="statement not covered" > if (!service) {</span>
573
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(message)</span></span>
574
+ else <span class="cstat-no" title="statement not covered" >return Promise.resolve(hook)</span>
575
575
  }
576
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (!service) {
577
- <span class="missing-if-branch" title="if path not taken" >I</span>if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(`No ${options.serviceField} given to dynamically populate.`)
578
- else return Promise.resolve(hook)
576
+ } else <span class="cstat-no" title="statement not covered" >if (!service) {</span>
577
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(`No ${options.serviceField} given to dynamically populate.`)</span></span>
578
+ else <span class="cstat-no" title="statement not covered" >return Promise.resolve(hook)</span>
579
579
  }
580
580
  // Then the object ID
581
- const id = _.get(data, options.idField) || _.get(query, options.idField) || _.get(hook, 'id')
582
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!id) {
583
- <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(`Cannot find the ${options.idField} to dynamically populate.`)</span>
584
- else <span class="cstat-no" title="statement not covered" >return P</span>romise.resolve(hook)
581
+ const id = <span class="cstat-no" title="statement not covered" >_.get(data, options.idField) || _.get(query, options.idField) || _.get(hook, 'id')</span>
582
+ <span class="cstat-no" title="statement not covered" > if (!id) {</span>
583
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(`Cannot find the ${options.idField} to dynamically populate.`)</span></span>
584
+ else <span class="cstat-no" title="statement not covered" >return Promise.resolve(hook)</span>
585
585
  }
586
586
  // Then the perspective if any
587
- const perspective = _.get(data, options.perspectiveField) || _.get(query, options.perspectiveField)
587
+ const perspective = <span class="cstat-no" title="statement not covered" >_.get(data, options.perspectiveField) || _.get(query, options.perspectiveField)</span>
588
588
  &nbsp;
589
- debug(`Populating ${idProperty} with ID ${id}`)
589
+ <span class="cstat-no" title="statement not covered" > debug(`Populating ${idProperty} with ID ${id}`)</span>
590
590
  // Set the retrieved service on the same field or given one in hook params
591
- _.set(params, serviceProperty, service)
591
+ <span class="cstat-no" title="statement not covered" > _.set(params, serviceProperty, service)</span>
592
592
  // Let it work with id string or real object
593
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof id === 'string' || ObjectID.isValid(id)) {
594
- let args = { user: hook.params.user }
595
- <span class="missing-if-branch" title="if path not taken" >I</span>if (perspective) <span class="cstat-no" title="statement not covered" >args = O</span>bject.assign(args, { query: { $select: [perspective] } })
596
- return service.get(id.toString(), args).then(object =&gt; {
597
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!object) {
598
- <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(`Cannot find object with id ${id} to dynamically populate.`)</span>
599
- else <span class="cstat-no" title="statement not covered" >return h</span>ook
593
+ <span class="cstat-no" title="statement not covered" > if (typeof id === 'string' || ObjectID.isValid(id)) {</span>
594
+ let args = <span class="cstat-no" title="statement not covered" >{ user: hook.params.user }</span>
595
+ <span class="cstat-no" title="statement not covered" > if (perspective) <span class="cstat-no" title="statement not covered" >args = Object.assign(args, { query: { $select: [perspective] } })</span></span>
596
+ <span class="cstat-no" title="statement not covered" > return service.get(id.toString(), args).then(<span class="fstat-no" title="function not covered" >ob</span>ject =&gt; {</span>
597
+ <span class="cstat-no" title="statement not covered" > if (!object) {</span>
598
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(`Cannot find object with id ${id} to dynamically populate.`)</span></span>
599
+ else <span class="cstat-no" title="statement not covered" >return hook</span>
600
600
  }
601
601
  // Set the retrieved object on the same field or given one in hook params
602
- _.set(params, idProperty, object)
603
- return hook
602
+ <span class="cstat-no" title="statement not covered" > _.set(params, idProperty, object)</span>
603
+ <span class="cstat-no" title="statement not covered" > return hook</span>
604
604
  })
605
605
  } else {
606
606
  // Set the object on the same field or given one in hook params
607
- <span class="cstat-no" title="statement not covered" > _.s</span>et(params, idProperty, id)
608
- <span class="cstat-no" title="statement not covered" > return P</span>romise.resolve(hook)
607
+ <span class="cstat-no" title="statement not covered" > _.set(params, idProperty, id)</span>
608
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve(hook)</span>
609
609
  }
610
610
  }
611
611
  }
612
612
  &nbsp;
613
- export function <span class="fstat-no" title="function not covered" >unpopulateObject (o</span>ptions) {
614
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >f</span>unction (h</span>ook) {
613
+ export function <span class="fstat-no" title="function not covered" >unpopulateObject </span>(options) {
614
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >fu</span>nction (hook) {</span>
615
615
  const params = <span class="cstat-no" title="statement not covered" >hook.params</span>
616
616
  const idProperty = <span class="cstat-no" title="statement not covered" >options.nameIdAs || options.idField</span>
617
617
  const serviceProperty = <span class="cstat-no" title="statement not covered" >options.nameServiceAs || options.serviceField</span>
618
618
  &nbsp;
619
619
  // Check if not already done
620
- <span class="cstat-no" title="statement not covered" > _.u</span>nset(params, idProperty)
621
- <span class="cstat-no" title="statement not covered" > _.u</span>nset(params, serviceProperty)
620
+ <span class="cstat-no" title="statement not covered" > _.unset(params, idProperty)</span>
621
+ <span class="cstat-no" title="statement not covered" > _.unset(params, serviceProperty)</span>
622
622
  &nbsp;
623
- <span class="cstat-no" title="statement not covered" > return h</span>ook
623
+ <span class="cstat-no" title="statement not covered" > return hook</span>
624
624
  }
625
625
  }
626
626
  &nbsp;
627
- export function populateObjects (options) {
628
- return function (hook) {
629
- const app = hook.app
630
- const data = hook.data
631
- const params = hook.params
632
- const query = params.query
633
- const context = hook.service.context
634
- const idProperty = options.nameIdAs || options.idField
635
- const serviceProperty = options.nameServiceAs || options.serviceField
627
+ export function <span class="fstat-no" title="function not covered" >populateObjects </span>(options) {
628
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >fu</span>nction (hook) {</span>
629
+ const app = <span class="cstat-no" title="statement not covered" >hook.app</span>
630
+ const data = <span class="cstat-no" title="statement not covered" >hook.data</span>
631
+ const params = <span class="cstat-no" title="statement not covered" >hook.params</span>
632
+ const query = <span class="cstat-no" title="statement not covered" >params.query</span>
633
+ const context = <span class="cstat-no" title="statement not covered" >hook.service.context</span>
634
+ const idProperty = <span class="cstat-no" title="statement not covered" >options.nameIdAs || options.idField</span>
635
+ const serviceProperty = <span class="cstat-no" title="statement not covered" >options.nameServiceAs || options.serviceField</span>
636
636
  &nbsp;
637
637
  // Check if not already done
638
- if (Array.isArray(_.get(params, idProperty))) {
639
- debug(`Skipping populating ${idProperty} as already done`)
640
- return Promise.resolve(hook)
638
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray(_.get(params, idProperty))) {</span>
639
+ <span class="cstat-no" title="statement not covered" > debug(`Skipping populating ${idProperty} as already done`)</span>
640
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve(hook)</span>
641
641
  }
642
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof _.get(params, serviceProperty) === 'object') {
643
- <span class="cstat-no" title="statement not covered" > debug(`S</span>kipping populating ${serviceProperty} as already done`)
644
- <span class="cstat-no" title="statement not covered" > return P</span>romise.resolve(hook)
642
+ <span class="cstat-no" title="statement not covered" > if (typeof _.get(params, serviceProperty) === 'object') {</span>
643
+ <span class="cstat-no" title="statement not covered" > debug(`Skipping populating ${serviceProperty} as already done`)</span>
644
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve(hook)</span>
645
645
  }
646
646
  &nbsp;
647
647
  // Get service where we can find the object to populate
648
648
  // Make hook usable with query params as well and service name or real object
649
- let service = _.get(data, options.serviceField) || _.get(query, options.serviceField)
650
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof service === 'string') {
651
- const message = `Cannot find the service for ${options.serviceField} = ${service} to dynamically populate.`
652
- service = app.getService(service, context)
653
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!service) {
654
- <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(message)</span>
655
- else <span class="cstat-no" title="statement not covered" >return P</span>romise.resolve(hook)
649
+ let service = <span class="cstat-no" title="statement not covered" >_.get(data, options.serviceField) || _.get(query, options.serviceField)</span>
650
+ <span class="cstat-no" title="statement not covered" > if (typeof service === 'string') {</span>
651
+ const message = <span class="cstat-no" title="statement not covered" >`Cannot find the service for ${options.serviceField} = ${service} to dynamically populate.`</span>
652
+ <span class="cstat-no" title="statement not covered" > service = app.getService(service, context)</span>
653
+ <span class="cstat-no" title="statement not covered" > if (!service) {</span>
654
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(message)</span></span>
655
+ else <span class="cstat-no" title="statement not covered" >return Promise.resolve(hook)</span>
656
656
  }
657
657
  } else <span class="cstat-no" title="statement not covered" >if (!service) {</span>
658
- <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(`No ${options.serviceField} given to dynamically populate.`)</span>
659
- else <span class="cstat-no" title="statement not covered" >return P</span>romise.resolve(hook)
658
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(`No ${options.serviceField} given to dynamically populate.`)</span></span>
659
+ else <span class="cstat-no" title="statement not covered" >return Promise.resolve(hook)</span>
660
660
  }
661
661
  &nbsp;
662
662
  // Set the retrieved service on the same field or given one in hook params
663
- _.set(params, serviceProperty, service)
663
+ <span class="cstat-no" title="statement not covered" > _.set(params, serviceProperty, service)</span>
664
664
  &nbsp;
665
665
  // Then the object ID
666
- const id = _.get(data, options.idField) || _.get(query, options.idField)
666
+ const id = <span class="cstat-no" title="statement not covered" >_.get(data, options.idField) || _.get(query, options.idField)</span>
667
667
  // If no ID given we perform a find, no pagination to be sure we get all objects
668
- if (!id) {
669
- debug(`Populating ${idProperty}`)
670
- return service.find({ query: {}, paginate: false, user: hook.params.user }).then(objects =&gt; {
668
+ <span class="cstat-no" title="statement not covered" > if (!id) {</span>
669
+ <span class="cstat-no" title="statement not covered" > debug(`Populating ${idProperty}`)</span>
670
+ <span class="cstat-no" title="statement not covered" > return service.find({ query: {}, paginate: false, user: hook.params.user }).then(<span class="fstat-no" title="function not covered" >ob</span>jects =&gt; {</span>
671
671
  // Set the retrieved objects on the same field or given one in hook params
672
- debug(`Populated ${objects.length} ${idProperty}`)
673
- _.set(params, idProperty, objects)
674
- return hook
672
+ <span class="cstat-no" title="statement not covered" > debug(`Populated ${objects.length} ${idProperty}`)</span>
673
+ <span class="cstat-no" title="statement not covered" > _.set(params, idProperty, objects)</span>
674
+ <span class="cstat-no" title="statement not covered" > return hook</span>
675
675
  })
676
676
  } else {
677
- debug(`Populating ${idProperty} with ID ${id}`)
677
+ <span class="cstat-no" title="statement not covered" > debug(`Populating ${idProperty} with ID ${id}`)</span>
678
678
  // Let it work with id string or real object
679
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof id === 'string' || <span class="branch-1 cbranch-no" title="branch not covered" >ObjectID.i</span>sValid(id)) {
680
- return service.get(id.toString(), { user: hook.params.user }).then(object =&gt; {
681
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!object) {
682
- <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw n</span>ew Error(`Cannot find ${options.idField} = ${id} to dynamically populate.`)</span>
683
- else <span class="cstat-no" title="statement not covered" >return h</span>ook
679
+ <span class="cstat-no" title="statement not covered" > if (typeof id === 'string' || ObjectID.isValid(id)) {</span>
680
+ <span class="cstat-no" title="statement not covered" > return service.get(id.toString(), { user: hook.params.user }).then(<span class="fstat-no" title="function not covered" >ob</span>ject =&gt; {</span>
681
+ <span class="cstat-no" title="statement not covered" > if (!object) {</span>
682
+ <span class="cstat-no" title="statement not covered" > if (options.throwOnNotFound) <span class="cstat-no" title="statement not covered" >throw new Error(`Cannot find ${options.idField} = ${id} to dynamically populate.`)</span></span>
683
+ else <span class="cstat-no" title="statement not covered" >return hook</span>
684
684
  }
685
685
  // Set the retrieved object on the same field or given one in hook params
686
- _.set(params, idProperty, [object])
687
- return hook
686
+ <span class="cstat-no" title="statement not covered" > _.set(params, idProperty, [object])</span>
687
+ <span class="cstat-no" title="statement not covered" > return hook</span>
688
688
  })
689
689
  } else {
690
690
  // Set the object on the same field or given one in hook params
691
- <span class="cstat-no" title="statement not covered" > _.s</span>et(params, idProperty, [id])
692
- <span class="cstat-no" title="statement not covered" > return P</span>romise.resolve(hook)
691
+ <span class="cstat-no" title="statement not covered" > _.set(params, idProperty, [id])</span>
692
+ <span class="cstat-no" title="statement not covered" > return Promise.resolve(hook)</span>
693
693
  }
694
694
  }
695
695
  }
696
696
  }
697
697
  &nbsp;
698
- export function <span class="fstat-no" title="function not covered" >unpopulateObjects (o</span>ptions) {
698
+ export function <span class="fstat-no" title="function not covered" >unpopulateObjects </span>(options) {
699
699
  // These are similar behaviour
700
- <span class="cstat-no" title="statement not covered" > return u</span>npopulateObject(options)
700
+ <span class="cstat-no" title="statement not covered" > return unpopulateObject(options)</span>
701
701
  }
702
702
  &nbsp;</pre></td></tr></table></pre>
703
703
 
@@ -706,7 +706,7 @@ export function <span class="fstat-no" title="function not covered" >unpopulateO
706
706
  <div class='footer quiet pad2 space-top1 center small'>
707
707
  Code coverage generated by
708
708
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
709
- at Wed Dec 08 2021 20:41:51 GMT+0100 (GMT+01:00)
709
+ at Fri Jan 07 2022 19:29:57 GMT+0100 (GMT+01:00)
710
710
  </div>
711
711
  </div>
712
712
  <script src="../../../prettify.js"></script>