@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">78.57% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>88/112</span>
28
+ <span class='fraction'>0/103</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">73.21% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>41/56</span>
35
+ <span class='fraction'>0/56</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">76.67% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>23/30</span>
42
+ <span class='fraction'>0/26</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.63% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>80/98</span>
49
+ <span class='fraction'>0/89</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>
@@ -255,97 +255,94 @@
255
255
  <a name='L196'></a><a href='#L196'>196</a>
256
256
  <a name='L197'></a><a href='#L197'>197</a>
257
257
  <a name='L198'></a><a href='#L198'>198</a>
258
- <a name='L199'></a><a href='#L199'>199</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
259
- <span class="cline-any cline-yes">1x</span>
260
- <span class="cline-any cline-yes">1x</span>
261
- <span class="cline-any cline-yes">1x</span>
262
- <span class="cline-any cline-yes">1x</span>
258
+ <a name='L199'></a><a href='#L199'>199</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
261
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">1x</span>
265
262
  <span class="cline-any cline-neutral">&nbsp;</span>
266
263
  <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">1x</span>
268
264
  <span class="cline-any cline-no">&nbsp;</span>
269
265
  <span class="cline-any cline-neutral">&nbsp;</span>
270
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
268
+ <span class="cline-any cline-no">&nbsp;</span>
271
269
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">149x</span>
273
270
  <span class="cline-any cline-neutral">&nbsp;</span>
274
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-no">&nbsp;</span>
275
273
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">24x</span>
277
274
  <span class="cline-any cline-neutral">&nbsp;</span>
278
275
  <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
279
277
  <span class="cline-any cline-neutral">&nbsp;</span>
280
278
  <span class="cline-any cline-neutral">&nbsp;</span>
281
279
  <span class="cline-any cline-neutral">&nbsp;</span>
282
280
  <span class="cline-any cline-neutral">&nbsp;</span>
283
281
  <span class="cline-any cline-neutral">&nbsp;</span>
284
282
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-yes">20x</span>
286
- <span class="cline-any cline-yes">20x</span>
287
- <span class="cline-any cline-yes">20x</span>
288
283
  <span class="cline-any cline-neutral">&nbsp;</span>
289
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-no">&nbsp;</span>
286
+ <span class="cline-any cline-no">&nbsp;</span>
287
+ <span class="cline-any cline-no">&nbsp;</span>
290
288
  <span class="cline-any cline-neutral">&nbsp;</span>
291
289
  <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-yes">374x</span>
293
290
  <span class="cline-any cline-neutral">&nbsp;</span>
294
291
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-yes">371x</span>
296
- <span class="cline-any cline-yes">63x</span>
297
- <span class="cline-any cline-yes">17x</span>
298
- <span class="cline-any cline-yes">17x</span>
299
- <span class="cline-any cline-yes">17x</span>
300
- <span class="cline-any cline-yes">17x</span>
292
+ <span class="cline-any cline-no">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
294
  <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">46x</span>
303
295
  <span class="cline-any cline-no">&nbsp;</span>
304
296
  <span class="cline-any cline-no">&nbsp;</span>
305
- <span class="cline-any cline-yes">46x</span>
306
- <span class="cline-any cline-yes">308x</span>
307
- <span class="cline-any cline-yes">1x</span>
308
- <span class="cline-any cline-yes">1x</span>
297
+ <span class="cline-any cline-no">&nbsp;</span>
298
+ <span class="cline-any cline-no">&nbsp;</span>
299
+ <span class="cline-any cline-no">&nbsp;</span>
300
+ <span class="cline-any cline-no">&nbsp;</span>
309
301
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">1x</span>
311
- <span class="cline-any cline-yes">307x</span>
312
- <span class="cline-any cline-yes">17x</span>
302
+ <span class="cline-any cline-no">&nbsp;</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-no">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-no">&nbsp;</span>
308
+ <span class="cline-any cline-no">&nbsp;</span>
313
309
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">295x</span>
315
- <span class="cline-any cline-yes">80x</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>
316
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
315
+ <span class="cline-any cline-no">&nbsp;</span>
317
316
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">374x</span>
319
317
  <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-no">&nbsp;</span>
320
319
  <span class="cline-any cline-neutral">&nbsp;</span>
321
320
  <span class="cline-any cline-neutral">&nbsp;</span>
322
321
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">2x</span>
324
- <span class="cline-any cline-yes">2x</span>
325
- <span class="cline-any cline-yes">2x</span>
326
- <span class="cline-any cline-yes">2x</span>
327
322
  <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-no">&nbsp;</span>
324
+ <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
328
327
  <span class="cline-any cline-neutral">&nbsp;</span>
329
328
  <span class="cline-any cline-neutral">&nbsp;</span>
330
329
  <span class="cline-any cline-neutral">&nbsp;</span>
331
330
  <span class="cline-any cline-neutral">&nbsp;</span>
332
331
  <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">5x</span>
334
- <span class="cline-any cline-yes">5x</span>
335
- <span class="cline-any cline-yes">5x</span>
336
332
  <span class="cline-any cline-neutral">&nbsp;</span>
337
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>
338
336
  <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-yes">5x</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-no">&nbsp;</span>
341
338
  <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
342
340
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">93x</span>
344
341
  <span class="cline-any cline-neutral">&nbsp;</span>
345
342
  <span class="cline-any cline-neutral">&nbsp;</span>
346
343
  <span class="cline-any cline-no">&nbsp;</span>
347
344
  <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
346
  <span class="cline-any cline-neutral">&nbsp;</span>
350
347
  <span class="cline-any cline-neutral">&nbsp;</span>
351
348
  <span class="cline-any cline-no">&nbsp;</span>
@@ -353,22 +350,25 @@
353
350
  <span class="cline-any cline-neutral">&nbsp;</span>
354
351
  <span class="cline-any cline-neutral">&nbsp;</span>
355
352
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">5x</span>
357
353
  <span class="cline-any cline-neutral">&nbsp;</span>
358
354
  <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-yes">5x</span>
360
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
361
357
  <span class="cline-any cline-neutral">&nbsp;</span>
362
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
363
360
  <span class="cline-any cline-neutral">&nbsp;</span>
364
361
  <span class="cline-any cline-neutral">&nbsp;</span>
365
362
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">5x</span>
367
- <span class="cline-any cline-yes">5x</span>
368
363
  <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-yes">5x</span>
370
364
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">5x</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-no">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
373
  <span class="cline-any cline-no">&nbsp;</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -377,55 +377,55 @@
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
378
378
  <span class="cline-any cline-neutral">&nbsp;</span>
379
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">5x</span>
381
- <span class="cline-any cline-yes">5x</span>
382
- <span class="cline-any cline-yes">5x</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
383
  <span class="cline-any cline-no">&nbsp;</span>
384
384
  <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">5x</span>
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">10x</span>
389
- <span class="cline-any cline-yes">5x</span>
390
388
  <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-yes">5x</span>
392
- <span class="cline-any cline-yes">5x</span>
393
- <span class="cline-any cline-yes">5x</span>
389
+ <span class="cline-any cline-no">&nbsp;</span>
394
390
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">5x</span>
396
- <span class="cline-any cline-yes">5x</span>
397
- <span class="cline-any cline-yes">5x</span>
398
- <span class="cline-any cline-yes">5x</span>
399
- <span class="cline-any cline-yes">5x</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
400
  <span class="cline-any cline-no">&nbsp;</span>
401
401
  <span class="cline-any cline-no">&nbsp;</span>
402
402
  <span class="cline-any cline-no">&nbsp;</span>
403
403
  <span class="cline-any cline-no">&nbsp;</span>
404
404
  <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-yes">5x</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
406
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">5x</span>
407
+ <span class="cline-any cline-no">&nbsp;</span>
408
408
  <span class="cline-any cline-neutral">&nbsp;</span>
409
409
  <span class="cline-any cline-no">&nbsp;</span>
410
410
  <span class="cline-any cline-no">&nbsp;</span>
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">10x</span>
415
- <span class="cline-any cline-yes">5x</span>
416
- <span class="cline-any cline-yes">5x</span>
417
- <span class="cline-any cline-yes">5x</span>
418
- <span class="cline-any cline-yes">5x</span>
419
- <span class="cline-any cline-yes">5x</span>
420
- <span class="cline-any cline-yes">5x</span>
421
- <span class="cline-any cline-yes">5x</span>
422
- <span class="cline-any cline-yes">5x</span>
423
- <span class="cline-any cline-yes">5x</span>
414
+ <span class="cline-any cline-neutral">&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
+ <span class="cline-any cline-no">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
424
424
  <span class="cline-any cline-no">&nbsp;</span>
425
425
  <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">5x</span>
427
- <span class="cline-any cline-yes">5x</span>
428
- <span class="cline-any cline-yes">5x</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
429
  <span class="cline-any cline-neutral">&nbsp;</span>
430
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
431
  <span class="cline-any cline-no">&nbsp;</span>
@@ -434,23 +434,23 @@
434
434
  <span class="cline-any cline-neutral">&nbsp;</span>
435
435
  <span class="cline-any cline-neutral">&nbsp;</span>
436
436
  <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-yes">8x</span>
437
+ <span class="cline-any cline-no">&nbsp;</span>
438
438
  <span class="cline-any cline-neutral">&nbsp;</span>
439
439
  <span class="cline-any cline-neutral">&nbsp;</span>
440
440
  <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-yes">10x</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
442
  <span class="cline-any cline-neutral">&nbsp;</span>
443
443
  <span class="cline-any cline-neutral">&nbsp;</span>
444
444
  <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-yes">11x</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
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">11x</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
450
  <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-yes">11x</span>
451
+ <span class="cline-any cline-no">&nbsp;</span>
452
452
  <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">11x</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
454
454
  <span class="cline-any cline-neutral">&nbsp;</span>
455
455
  <span class="cline-any cline-neutral">&nbsp;</span>
456
456
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
@@ -459,196 +459,196 @@ import makeDebug from 'debug'
459
459
  import { MongoClient, ObjectID } from 'mongodb'
460
460
  import errors from '@feathersjs/errors'
461
461
  &nbsp;
462
- const debug = makeDebug('kdk:core:db')
462
+ const debug = <span class="cstat-no" title="statement not covered" >makeDebug('kdk:core:db')</span>
463
463
  &nbsp;
464
464
  // This ensure moment objects are correctly serialized in MongoDB
465
- Object.getPrototypeOf(moment()).toBSON = <span class="fstat-no" title="function not covered" >function () {</span>
466
- <span class="cstat-no" title="statement not covered" > return t</span>his.toDate()
465
+ <span class="cstat-no" title="statement not covered" >Object.getPrototypeOf(moment()).toBSON = <span class="fstat-no" title="function not covered" >fu</span>nction () {</span>
466
+ <span class="cstat-no" title="statement not covered" > return this.toDate()</span>
467
467
  }
468
468
  &nbsp;
469
- export function isObjectID (id) {
470
- return id &amp;&amp; (typeof id.toHexString === 'function') &amp;&amp; (typeof id.getTimestamp === 'function')
469
+ export function <span class="fstat-no" title="function not covered" >isObjectID </span>(id) {
470
+ <span class="cstat-no" title="statement not covered" > return id &amp;&amp; (typeof id.toHexString === 'function') &amp;&amp; (typeof id.getTimestamp === 'function')</span>
471
471
  }
472
472
  &nbsp;
473
- export function idToString (id) {
474
- return (typeof id === 'object'
473
+ export function <span class="fstat-no" title="function not covered" >idToString </span>(id) {
474
+ <span class="cstat-no" title="statement not covered" > return (typeof id === 'object'</span>
475
475
  ? (ObjectID.isValid(id)
476
476
  ? id.toString()
477
477
  : idToString(id._id))
478
- : <span class="branch-1 cbranch-no" title="branch not covered" >id)</span>
478
+ : id)
479
479
  }
480
480
  &nbsp;
481
- export function createObjectID (id) {
481
+ export function <span class="fstat-no" title="function not covered" >createObjectID </span>(id) {
482
482
  // This ensure it works even if id is already an ObjectID
483
- <span class="missing-if-branch" title="if path not taken" >I</span>if (isObjectID(id)) <span class="cstat-no" title="statement not covered" >return i</span>d
484
- else <span class="missing-if-branch" title="if path not taken" >I</span>if (!ObjectID.isValid(id)) <span class="cstat-no" title="statement not covered" >return n</span>ull
485
- else return new ObjectID(id)
483
+ <span class="cstat-no" title="statement not covered" > if (isObjectID(id)) <span class="cstat-no" title="statement not covered" >return id</span></span>
484
+ else <span class="cstat-no" title="statement not covered" >if (!ObjectID.isValid(id)) <span class="cstat-no" title="statement not covered" >return null</span></span>
485
+ else <span class="cstat-no" title="statement not covered" >return new ObjectID(id)</span>
486
486
  }
487
487
  &nbsp;
488
488
  // Utility function used to convert from string to MongoDB IDs as required eg by queries
489
- export function objectifyIDs (object) {
490
- _.forOwn(object, (value, key) =&gt; {
489
+ export function <span class="fstat-no" title="function not covered" >objectifyIDs </span>(object) {
490
+ <span class="cstat-no" title="statement not covered" > _.forOwn(object, <span class="fstat-no" title="function not covered" >(v</span>alue, key) =&gt; {</span>
491
491
  // Process current attributes or recurse
492
492
  // Take care to nested fields like 'field._id'
493
- if (key === '_id' || key.endsWith('._id') || key === '$ne') {
494
- if (typeof value === 'string') {
495
- debug('Objectify ID ' + key)
496
- const id = createObjectID(value)
497
- <span class="missing-if-branch" title="else path not taken" >E</span>if (id) {
498
- object[key] = id
493
+ <span class="cstat-no" title="statement not covered" > if (key === '_id' || key.endsWith('._id') || key === '$ne') {</span>
494
+ <span class="cstat-no" title="statement not covered" > if (typeof value === 'string') {</span>
495
+ <span class="cstat-no" title="statement not covered" > debug('Objectify ID ' + key)</span>
496
+ const id = <span class="cstat-no" title="statement not covered" >createObjectID(value)</span>
497
+ <span class="cstat-no" title="statement not covered" > if (id) {</span>
498
+ <span class="cstat-no" title="statement not covered" > object[key] = id</span>
499
499
  }
500
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(value)) {
501
- <span class="cstat-no" title="statement not covered" > debug('</span>Objectify ID array ' + key)
502
- <span class="cstat-no" title="statement not covered" > object[k</span>ey] = value.map(<span class="fstat-no" title="function not covered" >id =&gt; <span class="cstat-no" title="statement not covered" >c</span>reateObjectID(i</span>d)).filter(<span class="fstat-no" title="function not covered" >id =&gt; <span class="cstat-no" title="statement not covered" >i</span>d)</span>
503
- } else if ((typeof value === 'object') &amp;&amp; !isObjectID(value)) objectifyIDs(value) // Avoid jumping inside an already transformed ObjectID
504
- } else if (['$in', '$nin'].includes(key)) {
505
- debug('Objectify ID array ' + key)
506
- const ids = value.map(id =&gt; createObjectID(id)).filter(id =&gt; id)
500
+ } else <span class="cstat-no" title="statement not covered" >if (Array.isArray(value)) {</span>
501
+ <span class="cstat-no" title="statement not covered" > debug('Objectify ID array ' + key)</span>
502
+ <span class="cstat-no" title="statement not covered" > object[key] = value.map(<span class="fstat-no" title="function not covered" >id</span> =&gt; <span class="cstat-no" title="statement not covered" >createObjectID(id))</span>.filter(<span class="fstat-no" title="function not covered" >id</span> =&gt; <span class="cstat-no" title="statement not covered" >id)</span></span>
503
+ } else <span class="cstat-no" title="statement not covered" >if ((typeof value === 'object') &amp;&amp; !isObjectID(value)) <span class="cstat-no" title="statement not covered" >objectifyIDs(value) </span></span>// Avoid jumping inside an already transformed ObjectID
504
+ } else <span class="cstat-no" title="statement not covered" >if (['$in', '$nin'].includes(key)) {</span>
505
+ <span class="cstat-no" title="statement not covered" > debug('Objectify ID array ' + key)</span>
506
+ const ids = <span class="cstat-no" title="statement not covered" >value.map(<span class="fstat-no" title="function not covered" >id</span> =&gt; <span class="cstat-no" title="statement not covered" >createObjectID(id))</span>.filter(<span class="fstat-no" title="function not covered" >id</span> =&gt; <span class="cstat-no" title="statement not covered" >id)</span></span>
507
507
  // Take care that $in/$nin can be used for others types than Object IDs so conversion might fail
508
- <span class="missing-if-branch" title="else path not taken" >E</span>if (ids.length &gt; 0) object[key] = ids
509
- } else if (key === '$or') {
510
- value.forEach(entry =&gt; objectifyIDs(entry))
508
+ <span class="cstat-no" title="statement not covered" > if (ids.length &gt; 0) <span class="cstat-no" title="statement not covered" >object[key] = ids</span></span>
509
+ } else <span class="cstat-no" title="statement not covered" >if (key === '$or') {</span>
510
+ <span class="cstat-no" title="statement not covered" > value.forEach(<span class="fstat-no" title="function not covered" >en</span>try =&gt; <span class="cstat-no" title="statement not covered" >objectifyIDs(entry))</span></span>
511
511
  // Avoid jumping inside an already transformed ObjectID
512
- } else if ((typeof value === 'object') &amp;&amp; !isObjectID(value)) {
513
- objectifyIDs(value)
512
+ } else <span class="cstat-no" title="statement not covered" >if ((typeof value === 'object') &amp;&amp; !isObjectID(value)) {</span>
513
+ <span class="cstat-no" title="statement not covered" > objectifyIDs(value)</span>
514
514
  }
515
515
  })
516
- return object
516
+ <span class="cstat-no" title="statement not covered" > return object</span>
517
517
  }
518
518
  &nbsp;
519
519
  // Utility function used to convert from string to MongoDB IDs a fixed set of properties on a given object
520
- export function toObjectIDs (object, properties) {
521
- properties.forEach(property =&gt; {
522
- const id = createObjectID(_.get(object, property))
523
- <span class="missing-if-branch" title="else path not taken" >E</span>if (id) {
524
- _.set(object, property, id)
520
+ export function <span class="fstat-no" title="function not covered" >toObjectIDs </span>(object, properties) {
521
+ <span class="cstat-no" title="statement not covered" > properties.forEach(<span class="fstat-no" title="function not covered" >pr</span>operty =&gt; {</span>
522
+ const id = <span class="cstat-no" title="statement not covered" >createObjectID(_.get(object, property))</span>
523
+ <span class="cstat-no" title="statement not covered" > if (id) {</span>
524
+ <span class="cstat-no" title="statement not covered" > _.set(object, property, id)</span>
525
525
  }
526
526
  })
527
527
  }
528
528
  &nbsp;
529
529
  export class Database {
530
- constructor (app) {
531
- try {
532
- this.app = app
533
- this._adapter = app.get('db').adapter
530
+ <span class="fstat-no" title="function not covered" > co</span>nstructor (app) {
531
+ <span class="cstat-no" title="statement not covered" > try {</span>
532
+ <span class="cstat-no" title="statement not covered" > this.app = app</span>
533
+ <span class="cstat-no" title="statement not covered" > this._adapter = app.get('db').adapter</span>
534
534
  } catch (error) {
535
- <span class="cstat-no" title="statement not covered" > throw n</span>ew errors.GeneralError('Cannot find database adapter configuration in application')
535
+ <span class="cstat-no" title="statement not covered" > throw new errors.GeneralError('Cannot find database adapter configuration in application')</span>
536
536
  }
537
- this._collections = new Map()
537
+ <span class="cstat-no" title="statement not covered" > this._collections = new Map()</span>
538
538
  }
539
539
  &nbsp;
540
- get adapter () {
541
- return this._adapter
540
+ <span class="fstat-no" title="function not covered" > ge</span>t adapter () {
541
+ <span class="cstat-no" title="statement not covered" > return this._adapter</span>
542
542
  }
543
543
  &nbsp;
544
- async <span class="fstat-no" title="function not covered" >connect () <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >{</span></span></span>
544
+ <span class="fstat-no" title="function not covered" > as</span>ync connect () {
545
545
  // Default implementation
546
- <span class="cstat-no" title="statement not covered" > return n</span>ull
546
+ <span class="cstat-no" title="statement not covered" > return null</span>
547
547
  }
548
548
  &nbsp;
549
- async <span class="fstat-no" title="function not covered" >disconnect () <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >{</span></span></span>
549
+ <span class="fstat-no" title="function not covered" > as</span>ync disconnect () {
550
550
  // Default implementation
551
551
  }
552
552
  &nbsp;
553
- static create (app) {
554
- switch (this.adapter) {
555
- <span class="branch-0 cbranch-no" title="branch not covered" > case '</span>mongodb':
553
+ <span class="fstat-no" title="function not covered" > st</span>atic create (app) {
554
+ <span class="cstat-no" title="statement not covered" > switch (this.adapter) {</span>
555
+ case 'mongodb':
556
556
  default:
557
- return new MongoDatabase(app)
557
+ <span class="cstat-no" title="statement not covered" > return new MongoDatabase(app)</span>
558
558
  }
559
559
  }
560
560
  }
561
561
  &nbsp;
562
562
  export class MongoDatabase extends Database {
563
- constructor (app) {
564
- super(app)
565
- try {
563
+ <span class="fstat-no" title="function not covered" > co</span>nstructor (app) {
564
+ <span class="cstat-no" title="statement not covered" > super(app)</span>
565
+ <span class="cstat-no" title="statement not covered" > try {</span>
566
566
  // Primary DB
567
- this._dbUrl = app.get('db').url
567
+ <span class="cstat-no" title="statement not covered" > this._dbUrl = app.get('db').url</span>
568
568
  // Secondaries if any
569
- this._secondaries = app.get('db').secondaries || {}
569
+ <span class="cstat-no" title="statement not covered" > this._secondaries = app.get('db').secondaries || {}</span>
570
570
  } catch (error) {
571
- <span class="cstat-no" title="statement not covered" > throw n</span>ew errors.GeneralError('Cannot find database connection settings in application')
571
+ <span class="cstat-no" title="statement not covered" > throw new errors.GeneralError('Cannot find database connection settings in application')</span>
572
572
  }
573
573
  }
574
574
  &nbsp;
575
- connectionDb (url) {
575
+ <span class="fstat-no" title="function not covered" > co</span>nnectionDb (url) {
576
576
  // Extract database name from url. Need to remove the connections options if any
577
577
  let dbName
578
- const indexOfDBName = url.lastIndexOf('/') + 1
579
- const indexOfOptions = url.indexOf('?')
580
- <span class="missing-if-branch" title="else path not taken" >E</span>if (indexOfOptions === -1) dbName = url.substring(indexOfDBName)
581
- else <span class="cstat-no" title="statement not covered" >dbName = u</span>rl.substring(indexOfDBName, indexOfOptions)
578
+ const indexOfDBName = <span class="cstat-no" title="statement not covered" >url.lastIndexOf('/') + 1</span>
579
+ const indexOfOptions = <span class="cstat-no" title="statement not covered" >url.indexOf('?')</span>
580
+ <span class="cstat-no" title="statement not covered" > if (indexOfOptions === -1) <span class="cstat-no" title="statement not covered" >dbName = url.substring(indexOfDBName)</span></span>
581
+ else <span class="cstat-no" title="statement not covered" >dbName = url.substring(indexOfDBName, indexOfOptions)</span>
582
582
  &nbsp;
583
- return dbName
583
+ <span class="cstat-no" title="statement not covered" > return dbName</span>
584
584
  }
585
585
  &nbsp;
586
- async connect () {
587
- try {
586
+ <span class="fstat-no" title="function not covered" > as</span>ync connect () {
587
+ <span class="cstat-no" title="statement not covered" > try {</span>
588
588
  // Connect to primary
589
- this._client = await MongoClient.connect(this._dbUrl)
590
- this._db = await this._client.db(this.connectionDb(this._dbUrl))
591
- debug('Connected to primary DB ' + this.adapter)
589
+ <span class="cstat-no" title="statement not covered" > this._client = await MongoClient.connect(this._dbUrl)</span>
590
+ <span class="cstat-no" title="statement not covered" > this._db = await this._client.db(this.connectionDb(this._dbUrl))</span>
591
+ <span class="cstat-no" title="statement not covered" > debug('Connected to primary DB ' + this.adapter)</span>
592
592
  // Then secondaries if any
593
- this._clients = {}
594
- this._dbs = {}
595
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this._secondaries) {
596
- const dbNames = _.keys(this._secondaries)
597
- for (let i = 0; i &lt; dbNames.length; i++) {
598
- const dbName = <span class="cstat-no" title="statement not covered" >dbNames[i</span>]
599
- const dbUrl = <span class="cstat-no" title="statement not covered" >this._</span>secondaries[dbName]
600
- <span class="cstat-no" title="statement not covered" > this._</span>clients[dbName] = await MongoClient.connect(dbUrl)
601
- <span class="cstat-no" title="statement not covered" > this._</span>dbs[dbName] = await this._clients[dbName].db(this.connectionDb(dbUrl))
593
+ <span class="cstat-no" title="statement not covered" > this._clients = {}</span>
594
+ <span class="cstat-no" title="statement not covered" > this._dbs = {}</span>
595
+ <span class="cstat-no" title="statement not covered" > if (this._secondaries) {</span>
596
+ const dbNames = <span class="cstat-no" title="statement not covered" >_.keys(this._secondaries)</span>
597
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; dbNames.length; i++) {</span>
598
+ const dbName = <span class="cstat-no" title="statement not covered" >dbNames[i]</span>
599
+ const dbUrl = <span class="cstat-no" title="statement not covered" >this._secondaries[dbName]</span>
600
+ <span class="cstat-no" title="statement not covered" > this._clients[dbName] = await MongoClient.connect(dbUrl)</span>
601
+ <span class="cstat-no" title="statement not covered" > this._dbs[dbName] = await this._clients[dbName].db(this.connectionDb(dbUrl))</span>
602
602
  }
603
- <span class="missing-if-branch" title="if path not taken" >I</span>if (dbNames.length &gt; 0) <span class="cstat-no" title="statement not covered" >debug('</span>Connected to secondaries DB ' + this.adapter)
603
+ <span class="cstat-no" title="statement not covered" > if (dbNames.length &gt; 0) <span class="cstat-no" title="statement not covered" >debug('Connected to secondaries DB ' + this.adapter)</span></span>
604
604
  }
605
- return this._db
605
+ <span class="cstat-no" title="statement not covered" > return this._db</span>
606
606
  } catch (error) {
607
- <span class="cstat-no" title="statement not covered" > this.a</span>pp.logger.error('Could not connect to ' + this.adapter + ' database(s), please check your configuration', error)
608
- <span class="cstat-no" title="statement not covered" > throw e</span>rror
607
+ <span class="cstat-no" title="statement not covered" > this.app.logger.error('Could not connect to ' + this.adapter + ' database(s), please check your configuration', error)</span>
608
+ <span class="cstat-no" title="statement not covered" > throw error</span>
609
609
  }
610
610
  }
611
611
  &nbsp;
612
- async disconnect () {
613
- try {
614
- await this._client.close()
615
- debug('Disconnected from primary DB ' + this.adapter)
616
- this._client = null
617
- this._db = null
618
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this._secondaries) {
619
- const dbNames = _.keys(this._secondaries)
620
- const clients = _.values(this._clients)
621
- for (let i = 0; i &lt; clients.length; i++) {
622
- <span class="cstat-no" title="statement not covered" > await c</span>lients[i].close()
612
+ <span class="fstat-no" title="function not covered" > as</span>ync disconnect () {
613
+ <span class="cstat-no" title="statement not covered" > try {</span>
614
+ <span class="cstat-no" title="statement not covered" > await this._client.close()</span>
615
+ <span class="cstat-no" title="statement not covered" > debug('Disconnected from primary DB ' + this.adapter)</span>
616
+ <span class="cstat-no" title="statement not covered" > this._client = null</span>
617
+ <span class="cstat-no" title="statement not covered" > this._db = null</span>
618
+ <span class="cstat-no" title="statement not covered" > if (this._secondaries) {</span>
619
+ const dbNames = <span class="cstat-no" title="statement not covered" >_.keys(this._secondaries)</span>
620
+ const clients = <span class="cstat-no" title="statement not covered" >_.values(this._clients)</span>
621
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; clients.length; i++) {</span>
622
+ <span class="cstat-no" title="statement not covered" > await clients[i].close()</span>
623
623
  }
624
- this._clients = {}
625
- this._dbs = {}
626
- <span class="missing-if-branch" title="if path not taken" >I</span>if (dbNames.length &gt; 0) <span class="cstat-no" title="statement not covered" >debug('</span>Disconnected from secondaries DB ' + this.adapter)
624
+ <span class="cstat-no" title="statement not covered" > this._clients = {}</span>
625
+ <span class="cstat-no" title="statement not covered" > this._dbs = {}</span>
626
+ <span class="cstat-no" title="statement not covered" > if (dbNames.length &gt; 0) <span class="cstat-no" title="statement not covered" >debug('Disconnected from secondaries DB ' + this.adapter)</span></span>
627
627
  }
628
628
  } catch (error) {
629
- <span class="cstat-no" title="statement not covered" > this.a</span>pp.logger.error('Could not disconnect from ' + this.adapter + ' database(s)', error)
630
- <span class="cstat-no" title="statement not covered" > throw e</span>rror
629
+ <span class="cstat-no" title="statement not covered" > this.app.logger.error('Could not disconnect from ' + this.adapter + ' database(s)', error)</span>
630
+ <span class="cstat-no" title="statement not covered" > throw error</span>
631
631
  }
632
632
  }
633
633
  &nbsp;
634
- get client () {
635
- return this._client
634
+ <span class="fstat-no" title="function not covered" > ge</span>t client () {
635
+ <span class="cstat-no" title="statement not covered" > return this._client</span>
636
636
  }
637
637
  &nbsp;
638
- get instance () {
639
- return this._db
638
+ <span class="fstat-no" title="function not covered" > ge</span>t instance () {
639
+ <span class="cstat-no" title="statement not covered" > return this._db</span>
640
640
  }
641
641
  &nbsp;
642
- db (dbName) {
643
- return (dbName ? <span class="branch-0 cbranch-no" title="branch not covered" >this._</span>dbs[dbName] : this._db)
642
+ <span class="fstat-no" title="function not covered" > db</span> (dbName) {
643
+ <span class="cstat-no" title="statement not covered" > return (dbName ? this._dbs[dbName] : this._db)</span>
644
644
  }
645
645
  &nbsp;
646
- collection (name, dbName) {
647
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._collections.has(name)) {
646
+ <span class="fstat-no" title="function not covered" > co</span>llection (name, dbName) {
647
+ <span class="cstat-no" title="statement not covered" > if (!this._collections.has(name)) {</span>
648
648
  // Get collection from secondary or primary DB
649
- this._collections.set(name, this.db(dbName).collection(name))
649
+ <span class="cstat-no" title="statement not covered" > this._collections.set(name, this.db(dbName).collection(name))</span>
650
650
  }
651
- return this._collections.get(name)
651
+ <span class="cstat-no" title="statement not covered" > return this._collections.get(name)</span>
652
652
  }
653
653
  }
654
654
  &nbsp;</pre></td></tr></table></pre>
@@ -658,7 +658,7 @@ export class MongoDatabase extends Database {
658
658
  <div class='footer quiet pad2 space-top1 center small'>
659
659
  Code coverage generated by
660
660
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
661
- at Wed Dec 08 2021 20:41:51 GMT+0100 (GMT+01:00)
661
+ at Fri Jan 07 2022 19:29:56 GMT+0100 (GMT+01:00)
662
662
  </div>
663
663
  </div>
664
664
  <script src="../../prettify.js"></script>