@kalisio/kdk 2.3.1 → 2.4.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 (416) hide show
  1. package/.eslintignore +2 -1
  2. package/.github/workflows/main.yaml +3 -3
  3. package/README.md +1 -0
  4. package/core/api/db.js +6 -1
  5. package/core/api/hooks/hooks.model.js +1 -1
  6. package/core/api/hooks/hooks.schemas.js +0 -2
  7. package/core/api/models/messages.model.mongodb.js +13 -0
  8. package/core/api/services/authorisations/authorisations.service.js +13 -4
  9. package/core/api/services/index.js +19 -0
  10. package/core/api/services/messages/messages.hooks.js +38 -0
  11. package/core/client/api.js +7 -32
  12. package/core/client/capabilities.js +2 -2
  13. package/core/client/components/KActivity.vue +29 -6
  14. package/core/client/components/KContent.vue +2 -2
  15. package/core/client/components/KDialog.vue +4 -7
  16. package/core/client/components/KStamp.vue +3 -9
  17. package/core/client/components/KStore.vue +2 -4
  18. package/core/client/components/KTab.vue +95 -0
  19. package/core/client/components/action/KAction.vue +15 -2
  20. package/core/client/components/action/KBugReportAction.vue +4 -2
  21. package/core/client/components/action/KToggleFullscreenAction.vue +25 -0
  22. package/core/client/components/app/KSettings.vue +17 -13
  23. package/core/client/components/chart/KDataTable.vue +6 -9
  24. package/core/client/components/chart/KTimeSeriesChart.vue +74 -56
  25. package/core/client/components/collection/KBoard.vue +22 -33
  26. package/core/client/components/collection/KCard.vue +71 -56
  27. package/core/client/components/collection/KCardSection.vue +20 -10
  28. package/core/client/components/collection/KDescriptionCardSection.vue +47 -0
  29. package/core/client/components/collection/KGrid.vue +234 -54
  30. package/core/client/components/collection/KScrollDown.vue +97 -0
  31. package/core/client/components/collection/KScrollToTop.vue +93 -0
  32. package/core/client/components/collection/KTable.vue +87 -33
  33. package/core/client/components/collection/KTimeLine.vue +406 -0
  34. package/core/client/components/collection/index.js +1 -5
  35. package/core/client/components/document/KDocument.vue +20 -55
  36. package/core/client/components/document/KHtml.vue +17 -7
  37. package/core/client/components/document/KImage.vue +78 -0
  38. package/core/client/components/document/KMarkdown.vue +12 -16
  39. package/core/client/components/document/KPdf.vue +69 -0
  40. package/core/client/components/form/KFileField.vue +2 -2
  41. package/core/client/components/form/KSelectField.vue +2 -1
  42. package/core/client/components/form/KUnitField.vue +3 -1
  43. package/core/client/components/layout/KFab.vue +9 -10
  44. package/core/client/components/layout/KLayout.vue +104 -6
  45. package/core/client/components/layout/KOpener.vue +14 -19
  46. package/core/client/components/layout/KPage.vue +195 -105
  47. package/core/client/components/layout/KWindow.vue +62 -45
  48. package/core/client/components/layout/index.js +0 -2
  49. package/core/client/components/media/KRibbon.vue +95 -0
  50. package/core/client/components/menu/KMenu.vue +4 -4
  51. package/core/client/components/team/KGroupsActivity.vue +25 -27
  52. package/core/client/components/team/KMembersActivity.vue +21 -23
  53. package/core/client/components/team/KOrganisationsActivity.vue +20 -22
  54. package/core/client/components/team/KTagsActivity.vue +21 -23
  55. package/core/client/components/time/KAbsoluteTimeRange.vue +70 -170
  56. package/core/client/composables/activity.js +14 -12
  57. package/core/client/composables/collection.js +3 -1
  58. package/core/client/composables/counter.js +51 -0
  59. package/core/client/composables/index.js +3 -0
  60. package/core/client/composables/layout.js +13 -2
  61. package/core/client/composables/messages.js +15 -0
  62. package/core/client/composables/pwa.js +1 -1
  63. package/core/client/composables/schema.js +6 -6
  64. package/core/client/composables/screen.js +23 -0
  65. package/core/client/directives/index.js +1 -0
  66. package/core/client/directives/v-hover.js +23 -0
  67. package/core/client/document.js +61 -0
  68. package/core/client/exporter.js +1 -1
  69. package/core/client/filter.js +0 -1
  70. package/core/client/guards.js +1 -1
  71. package/core/client/i18n/core_en.json +14 -8
  72. package/core/client/i18n/core_fr.json +15 -9
  73. package/core/client/index.js +9 -3
  74. package/core/client/layout.js +129 -29
  75. package/core/client/local-storage.js +1 -1
  76. package/core/client/mixins/index.js +0 -1
  77. package/core/client/mixins/mixin.base-activity.js +23 -13
  78. package/core/client/mixins/mixin.base-item.js +6 -3
  79. package/core/client/services/index.js +4 -1
  80. package/core/client/services/local-settings.service.js +4 -0
  81. package/core/client/storage.js +1 -1
  82. package/core/client/store.js +1 -1
  83. package/core/client/template-context.js +17 -0
  84. package/core/client/units.js +49 -27
  85. package/core/client/utils/index.js +3 -2
  86. package/core/client/utils/utils.actions.js +4 -0
  87. package/core/client/utils/utils.colors.js +155 -2
  88. package/core/client/utils/utils.items.js +26 -0
  89. package/core/client/utils/utils.math.js +3 -0
  90. package/core/client/utils/utils.platform.js +3 -1
  91. package/core/client/utils/utils.screen.js +82 -0
  92. package/core/client/utils/utils.time.js +0 -1
  93. package/core/common/schemas/settings.update.json +12 -0
  94. package/coverage/core/api/application.js.html +1 -1
  95. package/coverage/core/api/authentication.js.html +1 -1
  96. package/coverage/core/api/db.js.html +51 -36
  97. package/coverage/core/api/hooks/hooks.authentication.js.html +1 -1
  98. package/coverage/core/api/hooks/hooks.authorisations.js.html +1 -1
  99. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  100. package/coverage/core/api/hooks/hooks.logger.js.html +1 -1
  101. package/coverage/core/api/hooks/hooks.model.js.html +2 -2
  102. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  103. package/coverage/core/api/hooks/hooks.push.js.html +1 -1
  104. package/coverage/core/api/hooks/hooks.query.js.html +1 -1
  105. package/coverage/core/api/hooks/hooks.schemas.js.html +6 -12
  106. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  107. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  108. package/coverage/core/api/hooks/hooks.users.js.html +2 -2
  109. package/coverage/core/api/hooks/index.html +10 -10
  110. package/coverage/core/api/hooks/index.js.html +1 -1
  111. package/coverage/core/api/index.html +14 -14
  112. package/coverage/core/api/index.js.html +1 -1
  113. package/coverage/core/api/marshall.js.html +1 -1
  114. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  115. package/coverage/core/api/models/index.html +25 -10
  116. package/coverage/core/api/models/messages.model.mongodb.js.html +121 -0
  117. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  118. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  119. package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
  120. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  121. package/coverage/core/api/services/account/account.service.js.html +1 -1
  122. package/coverage/core/api/services/account/index.html +1 -1
  123. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  124. package/coverage/core/api/services/authorisations/authorisations.service.js.html +43 -16
  125. package/coverage/core/api/services/authorisations/index.html +19 -19
  126. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  127. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  128. package/coverage/core/api/services/databases/index.html +1 -1
  129. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  130. package/coverage/core/api/services/groups/index.html +1 -1
  131. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  132. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  133. package/coverage/core/api/services/import-export/index.html +1 -1
  134. package/coverage/core/api/services/index.html +19 -19
  135. package/coverage/core/api/services/index.js.html +67 -10
  136. package/coverage/core/api/services/mailer/index.html +1 -1
  137. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  138. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  139. package/coverage/core/api/services/messages/index.html +116 -0
  140. package/coverage/core/api/services/messages/messages.hooks.js.html +199 -0
  141. package/coverage/core/api/services/organisations/index.html +1 -1
  142. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  143. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  144. package/coverage/core/api/services/push/index.html +1 -1
  145. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  146. package/coverage/core/api/services/push/push.service.js.html +1 -1
  147. package/coverage/core/api/services/storage/index.html +1 -1
  148. package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
  149. package/coverage/core/api/services/storage/storage.service.js.html +1 -1
  150. package/coverage/core/api/services/tags/index.html +1 -1
  151. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  152. package/coverage/core/api/services/users/index.html +1 -1
  153. package/coverage/core/api/services/users/users.hooks.js.html +1 -1
  154. package/coverage/core/api/utils.js.html +1 -1
  155. package/coverage/core/common/errors.js.html +1 -1
  156. package/coverage/core/common/index.html +1 -1
  157. package/coverage/core/common/index.js.html +1 -1
  158. package/coverage/core/common/permissions.js.html +1 -1
  159. package/coverage/core/common/schema.js.html +1 -1
  160. package/coverage/core/common/utils.js.html +1 -1
  161. package/coverage/index.html +69 -54
  162. package/coverage/lcov-report/core/api/application.js.html +1 -1
  163. package/coverage/lcov-report/core/api/authentication.js.html +1 -1
  164. package/coverage/lcov-report/core/api/db.js.html +51 -36
  165. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +1 -1
  166. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +1 -1
  167. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  168. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +1 -1
  169. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +2 -2
  170. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  171. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +1 -1
  172. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +1 -1
  173. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +6 -12
  174. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  175. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  176. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +2 -2
  177. package/coverage/lcov-report/core/api/hooks/index.html +10 -10
  178. package/coverage/lcov-report/core/api/hooks/index.js.html +1 -1
  179. package/coverage/lcov-report/core/api/index.html +14 -14
  180. package/coverage/lcov-report/core/api/index.js.html +1 -1
  181. package/coverage/lcov-report/core/api/marshall.js.html +1 -1
  182. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  183. package/coverage/lcov-report/core/api/models/index.html +25 -10
  184. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +121 -0
  185. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  186. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  187. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
  188. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  189. package/coverage/lcov-report/core/api/services/account/account.service.js.html +1 -1
  190. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  191. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  192. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +43 -16
  193. package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
  194. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  195. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  196. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  197. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  198. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  199. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  200. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  201. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  202. package/coverage/lcov-report/core/api/services/index.html +19 -19
  203. package/coverage/lcov-report/core/api/services/index.js.html +67 -10
  204. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  205. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  206. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  207. package/coverage/lcov-report/core/api/services/messages/index.html +116 -0
  208. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +199 -0
  209. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  210. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  211. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  212. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  213. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  214. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  215. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  216. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
  217. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +1 -1
  218. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  219. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  220. package/coverage/lcov-report/core/api/services/users/index.html +1 -1
  221. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
  222. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  223. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  224. package/coverage/lcov-report/core/common/index.html +1 -1
  225. package/coverage/lcov-report/core/common/index.js.html +1 -1
  226. package/coverage/lcov-report/core/common/permissions.js.html +1 -1
  227. package/coverage/lcov-report/core/common/schema.js.html +1 -1
  228. package/coverage/lcov-report/core/common/utils.js.html +1 -1
  229. package/coverage/lcov-report/index.html +69 -54
  230. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  231. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
  232. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1 -1
  233. package/coverage/lcov-report/map/api/hooks/index.html +1 -1
  234. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  235. package/coverage/lcov-report/map/api/index.html +1 -1
  236. package/coverage/lcov-report/map/api/index.js.html +1 -1
  237. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  238. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  239. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  240. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  241. package/coverage/lcov-report/map/api/models/index.html +1 -1
  242. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
  243. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  244. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  245. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  246. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +9 -15
  247. package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
  248. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  249. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  250. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +2 -2
  251. package/coverage/lcov-report/map/api/services/features/features.service.js.html +1 -1
  252. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  253. package/coverage/lcov-report/map/api/services/index.html +1 -1
  254. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  255. package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
  256. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
  257. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  258. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  259. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  260. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  261. package/coverage/lcov-report/map/common/index.html +1 -1
  262. package/coverage/lcov-report/map/common/index.js.html +1 -1
  263. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  264. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  265. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  266. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  267. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  268. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  269. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  270. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  271. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  272. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  273. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  274. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  275. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  276. package/coverage/lcov.info +487 -370
  277. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  278. package/coverage/map/api/hooks/hooks.features.js.html +1 -1
  279. package/coverage/map/api/hooks/hooks.query.js.html +1 -1
  280. package/coverage/map/api/hooks/index.html +1 -1
  281. package/coverage/map/api/hooks/index.js.html +1 -1
  282. package/coverage/map/api/index.html +1 -1
  283. package/coverage/map/api/index.js.html +1 -1
  284. package/coverage/map/api/marshall.js.html +1 -1
  285. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  286. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  287. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  288. package/coverage/map/api/models/index.html +1 -1
  289. package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
  290. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  291. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  292. package/coverage/map/api/services/alerts/index.html +1 -1
  293. package/coverage/map/api/services/catalog/catalog.hooks.js.html +9 -15
  294. package/coverage/map/api/services/catalog/index.html +5 -5
  295. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  296. package/coverage/map/api/services/daptiles/index.html +1 -1
  297. package/coverage/map/api/services/features/features.hooks.js.html +2 -2
  298. package/coverage/map/api/services/features/features.service.js.html +1 -1
  299. package/coverage/map/api/services/features/index.html +1 -1
  300. package/coverage/map/api/services/index.html +1 -1
  301. package/coverage/map/api/services/index.js.html +1 -1
  302. package/coverage/map/api/services/projects/index.html +1 -1
  303. package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
  304. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  305. package/coverage/map/common/errors.js.html +1 -1
  306. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  307. package/coverage/map/common/grid.js.html +1 -1
  308. package/coverage/map/common/index.html +1 -1
  309. package/coverage/map/common/index.js.html +1 -1
  310. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  311. package/coverage/map/common/moment-utils.js.html +1 -1
  312. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  313. package/coverage/map/common/opendap-utils.js.html +1 -1
  314. package/coverage/map/common/permissions.js.html +1 -1
  315. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  316. package/coverage/map/common/tms-utils.js.html +1 -1
  317. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  318. package/coverage/map/common/wcs-utils.js.html +1 -1
  319. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  320. package/coverage/map/common/wfs-utils.js.html +1 -1
  321. package/coverage/map/common/wms-utils.js.html +1 -1
  322. package/coverage/map/common/wmts-utils.js.html +1 -1
  323. package/coverage/tmp/coverage-280506-1731704745613-0.json +1 -0
  324. package/coverage/tmp/coverage-280518-1731704745599-0.json +1 -0
  325. package/coverage/tmp/coverage-280529-1731704745588-0.json +1 -0
  326. package/coverage/tmp/{coverage-137470-1719398750728-0.json → coverage-280541-1731704745574-0.json} +1 -1
  327. package/coverage/tmp/{coverage-137477-1719398750691-0.json → coverage-280548-1731704745545-0.json} +1 -1
  328. package/extras/css/core.variables.scss +32 -8
  329. package/extras/icons/attribution.png +0 -0
  330. package/map/api/services/catalog/catalog.hooks.js +5 -7
  331. package/map/api/services/features/features.hooks.js +1 -1
  332. package/map/client/cesium/utils/utils.style.js +11 -2
  333. package/map/client/components/KAttribution.vue +108 -0
  334. package/map/client/components/KPositionIndicator.vue +11 -18
  335. package/map/client/components/KProjectMenu.vue +4 -4
  336. package/map/client/components/catalog/KCategoryItem.vue +74 -0
  337. package/map/client/components/catalog/KLayerCategories.vue +24 -12
  338. package/map/client/components/catalog/KLayersPanel.vue +139 -116
  339. package/map/client/components/catalog/KProjectSelector.vue +29 -17
  340. package/map/client/components/catalog/KProjectsPanel.vue +19 -35
  341. package/map/client/components/catalog/KViewSelector.vue +37 -25
  342. package/map/client/components/catalog/KViewsPanel.vue +19 -35
  343. package/map/client/components/form/KLocationField.vue +1 -2
  344. package/map/client/components/legend/KLegend.vue +34 -34
  345. package/map/client/components/location/KLocationCardSection.vue +18 -22
  346. package/map/client/components/location/KLocationMap.vue +36 -38
  347. package/map/client/components/location/KLocationTimeLineCard.vue +147 -0
  348. package/map/client/components/location/KLocationTip.vue +12 -2
  349. package/map/client/components/widget/KInformationBox.vue +0 -4
  350. package/map/client/components/widget/KStackableTimeSeries.vue +8 -1
  351. package/map/client/components/widget/KTimeSeries.vue +1 -1
  352. package/map/client/composables/highlight.js +29 -31
  353. package/map/client/composables/probe.js +7 -3
  354. package/map/client/composables/weather.js +71 -31
  355. package/map/client/i18n/map_en.json +3 -0
  356. package/map/client/i18n/map_fr.json +3 -0
  357. package/map/client/init.js +4 -3
  358. package/map/client/leaflet/ShapeMarker.js +1 -1
  359. package/map/client/leaflet/utils/utils.events.js +1 -1
  360. package/map/client/leaflet/utils/utils.style.js +20 -8
  361. package/map/client/mixins/globe/mixin.base-globe.js +111 -13
  362. package/map/client/mixins/globe/mixin.file-layers.js +10 -10
  363. package/map/client/mixins/globe/mixin.geojson-layers.js +90 -15
  364. package/map/client/mixins/globe/mixin.style.js +2 -0
  365. package/map/client/mixins/index.js +0 -1
  366. package/map/client/mixins/map/index.js +1 -0
  367. package/map/client/mixins/map/mixin.base-map.js +21 -2
  368. package/map/client/mixins/map/mixin.canvas-layers.js +7 -2
  369. package/map/client/mixins/map/mixin.edit-layers.js +12 -4
  370. package/map/client/mixins/map/mixin.file-layers.js +3 -0
  371. package/map/client/mixins/map/mixin.geojson-layers.js +90 -5
  372. package/map/client/mixins/map/mixin.pmtiles-layers.js +106 -0
  373. package/map/client/mixins/mixin.activity.js +8 -3
  374. package/map/client/mixins/mixin.feature-service.js +73 -32
  375. package/map/client/mixins/mixin.levels.js +1 -0
  376. package/map/client/mixins/mixin.weacast.js +10 -87
  377. package/map/client/utils/index.js +1 -0
  378. package/map/client/utils/utils.capture.js +1 -1
  379. package/map/client/utils/utils.catalog.js +7 -7
  380. package/map/client/utils/utils.features.js +59 -1
  381. package/map/client/utils/utils.layers.js +8 -0
  382. package/map/client/utils/utils.time-series.js +121 -0
  383. package/map/client/utils/utils.weacast.js +102 -0
  384. package/package.json +6 -6
  385. package/scripts/init_runner.sh +2 -2
  386. package/scripts/kash/CHANGELOG.md +12 -0
  387. package/scripts/kash/README.md +2 -0
  388. package/scripts/kash/kash.sh +34 -32
  389. package/scripts/run_tests.sh +2 -2
  390. package/scripts/setup_workspace.sh +24 -6
  391. package/test/api/core/hooks.test.js +6 -3
  392. package/test/api/core/test-log-2024-07-09.log +0 -0
  393. package/test/api/core/test-log-2024-08-13.log +69 -0
  394. package/test/api/core/test-log-2024-10-28.log +53 -0
  395. package/test/api/core/test-log-2024-11-05.log +30 -0
  396. package/test/api/core/test-log-2024-11-15.log +23 -0
  397. package/test/api/map/alerts.test.js +3 -1
  398. package/test/api/map/config/layers.json +3 -1
  399. package/test/api/map/index.test.js +18 -1
  400. package/test/api/map/test-log-2024-08-13.log +13 -0
  401. package/test/api/map/test-log-2024-08-20.log +55 -0
  402. package/test/api/map/test-log-2024-09-09.log +92 -0
  403. package/test/api/map/test-log-2024-10-28.log +11 -0
  404. package/test/client/core/utils.js +13 -0
  405. package/test/client/map/api.js +34 -0
  406. package/test/client/map/catalog.js +6 -2
  407. package/test/client/map/index.js +1 -0
  408. package/test/client/map/utils.js +4 -2
  409. package/core/client/components/collection/KList.vue +0 -135
  410. package/core/client/components/layout/KPageSticky.vue +0 -53
  411. package/core/client/mixins/mixin.base-collection.js +0 -162
  412. package/core/client/utils/utils.data.js +0 -22
  413. package/coverage/tmp/coverage-137435-1719398750767-0.json +0 -1
  414. package/coverage/tmp/coverage-137447-1719398750752-0.json +0 -1
  415. package/coverage/tmp/coverage-137458-1719398750740-0.json +0 -1
  416. package/map/client/mixins/mixin.catalog-panel.js +0 -26
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">39.08% </span>
26
+ <span class="strong">38.92% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>3548/9078</span>
28
+ <span class='fraction'>3565/9158</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">68.1% </span>
33
+ <span class="strong">68.08% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>538/790</span>
35
+ <span class='fraction'>544/799</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">59.92% </span>
40
+ <span class="strong">58.75% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>151/252</span>
42
+ <span class='fraction'>151/257</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">39.08% </span>
47
+ <span class="strong">38.92% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>3548/9078</span>
49
+ <span class='fraction'>3565/9158</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,62 +80,62 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file medium" data-value="core/api"><a href="core/api/index.html">core/api</a></td>
83
- <td data-value="73.2" class="pic medium">
83
+ <td data-value="73.31" class="pic medium">
84
84
  <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
85
85
  </td>
86
- <td data-value="73.2" class="pct medium">73.2%</td>
87
- <td data-value="1198" class="abs medium">877/1198</td>
88
- <td data-value="66.99" class="pct medium">66.99%</td>
89
- <td data-value="206" class="abs medium">138/206</td>
86
+ <td data-value="73.31" class="pct medium">73.31%</td>
87
+ <td data-value="1203" class="abs medium">882/1203</td>
88
+ <td data-value="67.46" class="pct medium">67.46%</td>
89
+ <td data-value="209" class="abs medium">141/209</td>
90
90
  <td data-value="71.62" class="pct medium">71.62%</td>
91
91
  <td data-value="74" class="abs medium">53/74</td>
92
- <td data-value="73.2" class="pct medium">73.2%</td>
93
- <td data-value="1198" class="abs medium">877/1198</td>
92
+ <td data-value="73.31" class="pct medium">73.31%</td>
93
+ <td data-value="1203" class="abs medium">882/1203</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file medium" data-value="core/api/hooks"><a href="core/api/hooks/index.html">core/api/hooks</a></td>
98
- <td data-value="78.37" class="pic medium">
98
+ <td data-value="78.35" class="pic medium">
99
99
  <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
100
100
  </td>
101
- <td data-value="78.37" class="pct medium">78.37%</td>
102
- <td data-value="1753" class="abs medium">1374/1753</td>
101
+ <td data-value="78.35" class="pct medium">78.35%</td>
102
+ <td data-value="1751" class="abs medium">1372/1751</td>
103
103
  <td data-value="67.2" class="pct medium">67.2%</td>
104
104
  <td data-value="369" class="abs medium">248/369</td>
105
105
  <td data-value="73.23" class="pct medium">73.23%</td>
106
106
  <td data-value="71" class="abs medium">52/71</td>
107
- <td data-value="78.37" class="pct medium">78.37%</td>
108
- <td data-value="1753" class="abs medium">1374/1753</td>
107
+ <td data-value="78.35" class="pct medium">78.35%</td>
108
+ <td data-value="1751" class="abs medium">1372/1751</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file high" data-value="core/api/models"><a href="core/api/models/index.html">core/api/models</a></td>
113
- <td data-value="100" class="pic high">
114
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
112
+ <td class="file medium" data-value="core/api/models"><a href="core/api/models/index.html">core/api/models</a></td>
113
+ <td data-value="70.45" class="pic medium">
114
+ <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
115
115
  </td>
116
- <td data-value="100" class="pct high">100%</td>
117
- <td data-value="31" class="abs high">31/31</td>
118
- <td data-value="90" class="pct high">90%</td>
119
- <td data-value="10" class="abs high">9/10</td>
120
- <td data-value="100" class="pct high">100%</td>
121
- <td data-value="4" class="abs high">4/4</td>
122
- <td data-value="100" class="pct high">100%</td>
123
- <td data-value="31" class="abs high">31/31</td>
116
+ <td data-value="70.45" class="pct medium">70.45%</td>
117
+ <td data-value="44" class="abs medium">31/44</td>
118
+ <td data-value="81.81" class="pct high">81.81%</td>
119
+ <td data-value="11" class="abs high">9/11</td>
120
+ <td data-value="80" class="pct high">80%</td>
121
+ <td data-value="5" class="abs high">4/5</td>
122
+ <td data-value="70.45" class="pct medium">70.45%</td>
123
+ <td data-value="44" class="abs medium">31/44</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
127
127
  <td class="file high" data-value="core/api/services"><a href="core/api/services/index.html">core/api/services</a></td>
128
- <td data-value="94.2" class="pic high">
129
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
128
+ <td data-value="87.26" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
130
130
  </td>
131
- <td data-value="94.2" class="pct high">94.2%</td>
132
- <td data-value="138" class="abs high">130/138</td>
133
- <td data-value="86.66" class="pct high">86.66%</td>
134
- <td data-value="15" class="abs high">13/15</td>
135
- <td data-value="87.5" class="pct high">87.5%</td>
136
- <td data-value="8" class="abs high">7/8</td>
137
- <td data-value="94.2" class="pct high">94.2%</td>
138
- <td data-value="138" class="abs high">130/138</td>
131
+ <td data-value="87.26" class="pct high">87.26%</td>
132
+ <td data-value="157" class="abs high">137/157</td>
133
+ <td data-value="81.25" class="pct high">81.25%</td>
134
+ <td data-value="16" class="abs high">13/16</td>
135
+ <td data-value="70" class="pct medium">70%</td>
136
+ <td data-value="10" class="abs medium">7/10</td>
137
+ <td data-value="87.26" class="pct high">87.26%</td>
138
+ <td data-value="157" class="abs high">137/157</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
@@ -155,17 +155,17 @@
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="core/api/services/authorisations"><a href="core/api/services/authorisations/index.html">core/api/services/authorisations</a></td>
158
- <td data-value="98.83" class="pic high">
159
- <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
158
+ <td data-value="97.79" class="pic high">
159
+ <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
160
160
  </td>
161
- <td data-value="98.83" class="pct high">98.83%</td>
162
- <td data-value="172" class="abs high">170/172</td>
163
- <td data-value="86.48" class="pct high">86.48%</td>
164
- <td data-value="37" class="abs high">32/37</td>
165
- <td data-value="100" class="pct high">100%</td>
166
- <td data-value="5" class="abs high">5/5</td>
167
- <td data-value="98.83" class="pct high">98.83%</td>
168
- <td data-value="172" class="abs high">170/172</td>
161
+ <td data-value="97.79" class="pct high">97.79%</td>
162
+ <td data-value="181" class="abs high">177/181</td>
163
+ <td data-value="87.5" class="pct high">87.5%</td>
164
+ <td data-value="40" class="abs high">35/40</td>
165
+ <td data-value="83.33" class="pct high">83.33%</td>
166
+ <td data-value="6" class="abs high">5/6</td>
167
+ <td data-value="97.79" class="pct high">97.79%</td>
168
+ <td data-value="181" class="abs high">177/181</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
@@ -228,6 +228,21 @@
228
228
  <td data-value="46" class="abs high">46/46</td>
229
229
  </tr>
230
230
 
231
+ <tr>
232
+ <td class="file low" data-value="core/api/services/messages"><a href="core/api/services/messages/index.html">core/api/services/messages</a></td>
233
+ <td data-value="0" class="pic low">
234
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
235
+ </td>
236
+ <td data-value="0" class="pct low">0%</td>
237
+ <td data-value="38" class="abs low">0/38</td>
238
+ <td data-value="0" class="pct low">0%</td>
239
+ <td data-value="1" class="abs low">0/1</td>
240
+ <td data-value="0" class="pct low">0%</td>
241
+ <td data-value="1" class="abs low">0/1</td>
242
+ <td data-value="0" class="pct low">0%</td>
243
+ <td data-value="38" class="abs low">0/38</td>
244
+ </tr>
245
+
231
246
  <tr>
232
247
  <td class="file high" data-value="core/api/services/organisations"><a href="core/api/services/organisations/index.html">core/api/services/organisations</a></td>
233
248
  <td data-value="83.76" class="pic high">
@@ -399,13 +414,13 @@
399
414
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
400
415
  </td>
401
416
  <td data-value="0" class="pct low">0%</td>
402
- <td data-value="77" class="abs low">0/77</td>
417
+ <td data-value="75" class="abs low">0/75</td>
403
418
  <td data-value="0" class="pct low">0%</td>
404
419
  <td data-value="1" class="abs low">0/1</td>
405
420
  <td data-value="0" class="pct low">0%</td>
406
421
  <td data-value="1" class="abs low">0/1</td>
407
422
  <td data-value="0" class="pct low">0%</td>
408
- <td data-value="77" class="abs low">0/77</td>
423
+ <td data-value="75" class="abs low">0/75</td>
409
424
  </tr>
410
425
 
411
426
  <tr>
@@ -476,7 +491,7 @@
476
491
  <div class='footer quiet pad2 space-top1 center small'>
477
492
  Code coverage generated by
478
493
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
479
- at 2024-06-26T10:45:51.147Z
494
+ at 2024-11-15T21:05:45.905Z
480
495
  </div>
481
496
  <script src="prettify.js"></script>
482
497
  <script>
@@ -1855,7 +1855,7 @@ export function kdk (config = {}) {
1855
1855
  <div class='footer quiet pad2 space-top1 center small'>
1856
1856
  Code coverage generated by
1857
1857
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1858
- at 2024-06-26T10:45:51.176Z
1858
+ at 2024-11-15T21:05:45.936Z
1859
1859
  </div>
1860
1860
  <script src="../../prettify.js"></script>
1861
1861
  <script>
@@ -727,7 +727,7 @@ export default function auth (app) {
727
727
  <div class='footer quiet pad2 space-top1 center small'>
728
728
  Code coverage generated by
729
729
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
730
- at 2024-06-26T10:45:51.176Z
730
+ at 2024-11-15T21:05:45.936Z
731
731
  </div>
732
732
  <script src="../../prettify.js"></script>
733
733
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.54% </span>
26
+ <span class="strong">83.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>193/231</span>
28
+ <span class='fraction'>198/236</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">67.79% </span>
33
+ <span class="strong">69.35% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>40/59</span>
35
+ <span class='fraction'>43/62</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.54% </span>
47
+ <span class="strong">83.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>193/231</span>
49
+ <span class='fraction'>198/236</span>
50
50
  </div>
51
51
 
52
52
 
@@ -294,7 +294,12 @@
294
294
  <a name='L229'></a><a href='#L229'>229</a>
295
295
  <a name='L230'></a><a href='#L230'>230</a>
296
296
  <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
298
303
  <span class="cline-any cline-yes">1x</span>
299
304
  <span class="cline-any cline-yes">1x</span>
300
305
  <span class="cline-any cline-yes">1x</span>
@@ -309,8 +314,8 @@
309
314
  <span class="cline-any cline-no">&nbsp;</span>
310
315
  <span class="cline-any cline-yes">1x</span>
311
316
  <span class="cline-any cline-yes">1x</span>
312
- <span class="cline-any cline-yes">5x</span>
313
- <span class="cline-any cline-yes">5x</span>
317
+ <span class="cline-any cline-yes">6x</span>
318
+ <span class="cline-any cline-yes">6x</span>
314
319
  <span class="cline-any cline-yes">1x</span>
315
320
  <span class="cline-any cline-yes">1x</span>
316
321
  <span class="cline-any cline-yes">16x</span>
@@ -321,23 +326,28 @@
321
326
  <span class="cline-any cline-yes">16x</span>
322
327
  <span class="cline-any cline-yes">1x</span>
323
328
  <span class="cline-any cline-yes">1x</span>
324
- <span class="cline-any cline-yes">5x</span>
325
- <span class="cline-any cline-yes">5x</span>
326
- <span class="cline-any cline-yes">5x</span>
327
- <span class="cline-any cline-yes">5x</span>
328
- <span class="cline-any cline-yes">5x</span>
329
- <span class="cline-any cline-yes">5x</span>
329
+ <span class="cline-any cline-yes">6x</span>
330
+ <span class="cline-any cline-yes">6x</span>
331
+ <span class="cline-any cline-yes">6x</span>
332
+ <span class="cline-any cline-yes">6x</span>
333
+ <span class="cline-any cline-yes">6x</span>
334
+ <span class="cline-any cline-yes">6x</span>
335
+ <span class="cline-any cline-yes">6x</span>
336
+ <span class="cline-any cline-yes">6x</span>
337
+ <span class="cline-any cline-yes">6x</span>
338
+ <span class="cline-any cline-yes">6x</span>
339
+ <span class="cline-any cline-yes">6x</span>
330
340
  <span class="cline-any cline-yes">1x</span>
331
341
  <span class="cline-any cline-yes">1x</span>
332
342
  <span class="cline-any cline-yes">1x</span>
333
343
  <span class="cline-any cline-yes">1x</span>
334
344
  <span class="cline-any cline-yes">1x</span>
335
- <span class="cline-any cline-yes">486x</span>
336
- <span class="cline-any cline-yes">486x</span>
337
- <span class="cline-any cline-yes">172x</span>
338
- <span class="cline-any cline-yes">262x</span>
339
- <span class="cline-any cline-yes">262x</span>
340
- <span class="cline-any cline-yes">262x</span>
345
+ <span class="cline-any cline-yes">488x</span>
346
+ <span class="cline-any cline-yes">488x</span>
347
+ <span class="cline-any cline-yes">173x</span>
348
+ <span class="cline-any cline-yes">265x</span>
349
+ <span class="cline-any cline-yes">265x</span>
350
+ <span class="cline-any cline-yes">265x</span>
341
351
  <span class="cline-any cline-yes">38x</span>
342
352
  <span class="cline-any cline-yes">2x</span>
343
353
  <span class="cline-any cline-yes">2x</span>
@@ -348,21 +358,21 @@
348
358
  <span class="cline-any cline-no">&nbsp;</span>
349
359
  <span class="cline-any cline-no">&nbsp;</span>
350
360
  <span class="cline-any cline-yes">36x</span>
351
- <span class="cline-any cline-yes">262x</span>
352
- <span class="cline-any cline-yes">1x</span>
353
- <span class="cline-any cline-yes">1x</span>
354
- <span class="cline-any cline-yes">1x</span>
355
- <span class="cline-any cline-yes">1x</span>
356
- <span class="cline-any cline-yes">224x</span>
361
+ <span class="cline-any cline-yes">265x</span>
362
+ <span class="cline-any cline-yes">2x</span>
363
+ <span class="cline-any cline-yes">2x</span>
364
+ <span class="cline-any cline-yes">2x</span>
365
+ <span class="cline-any cline-yes">2x</span>
366
+ <span class="cline-any cline-yes">227x</span>
357
367
  <span class="cline-any cline-yes">12x</span>
358
- <span class="cline-any cline-yes">223x</span>
359
- <span class="cline-any cline-yes">211x</span>
368
+ <span class="cline-any cline-yes">225x</span>
369
+ <span class="cline-any cline-yes">213x</span>
360
370
  <span class="cline-any cline-yes">22x</span>
361
- <span class="cline-any cline-yes">211x</span>
362
- <span class="cline-any cline-yes">172x</span>
363
- <span class="cline-any cline-yes">172x</span>
364
- <span class="cline-any cline-yes">486x</span>
365
- <span class="cline-any cline-yes">486x</span>
371
+ <span class="cline-any cline-yes">213x</span>
372
+ <span class="cline-any cline-yes">173x</span>
373
+ <span class="cline-any cline-yes">173x</span>
374
+ <span class="cline-any cline-yes">488x</span>
375
+ <span class="cline-any cline-yes">488x</span>
366
376
  <span class="cline-any cline-yes">1x</span>
367
377
  <span class="cline-any cline-yes">1x</span>
368
378
  <span class="cline-any cline-yes">1x</span>
@@ -556,7 +566,12 @@ export function createObjectID (id) {
556
566
  if (isObjectID(id)) <span class="branch-0 cbranch-no" title="branch not covered" >return id</span>
557
567
  // Take care that numbers could be a valid object ID
558
568
  else if ((typeof id === 'number') || !ObjectID.isValid(id)) <span class="branch-0 cbranch-no" title="branch not covered" >return null</span>
559
- else return new ObjectID(id)
569
+ else {
570
+ const objectId = new ObjectID(id)
571
+ // It appears that ObjectID.isValid is not reliable in some driver versions, see eg https://jira.mongodb.org/browse/NODE-3760
572
+ // So that we use an additional check here
573
+ return (objectId.toString() === id ? objectId : null)
574
+ }
560
575
  }
561
576
  &nbsp;
562
577
  // Utility function used to convert from string to MongoDB IDs as required eg by queries
@@ -763,7 +778,7 @@ export class MongoDatabase extends Database {
763
778
  <div class='footer quiet pad2 space-top1 center small'>
764
779
  Code coverage generated by
765
780
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
766
- at 2024-06-26T10:45:51.176Z
781
+ at 2024-11-15T21:05:45.936Z
767
782
  </div>
768
783
  <script src="../../prettify.js"></script>
769
784
  <script>
@@ -298,7 +298,7 @@ export function discardAuthenticationProviders (hook) {
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
301
- at 2024-06-26T10:45:51.176Z
301
+ at 2024-11-15T21:05:45.936Z
302
302
  </div>
303
303
  <script src="../../../prettify.js"></script>
304
304
  <script>
@@ -1228,7 +1228,7 @@ export <span class="fstat-no" title="function not covered" >async function remov
1228
1228
  <div class='footer quiet pad2 space-top1 center small'>
1229
1229
  Code coverage generated by
1230
1230
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1231
- at 2024-06-26T10:45:51.176Z
1231
+ at 2024-11-15T21:05:45.936Z
1232
1232
  </div>
1233
1233
  <script src="../../../prettify.js"></script>
1234
1234
  <script>
@@ -214,7 +214,7 @@ export function removeGroupAuthorisations (hook) {
214
214
  <div class='footer quiet pad2 space-top1 center small'>
215
215
  Code coverage generated by
216
216
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
217
- at 2024-06-26T10:45:51.176Z
217
+ at 2024-11-15T21:05:45.936Z
218
218
  </div>
219
219
  <script src="../../../prettify.js"></script>
220
220
  <script>
@@ -148,7 +148,7 @@ export function log (hook) {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at 2024-06-26T10:45:51.176Z
151
+ at 2024-11-15T21:05:45.936Z
152
152
  </div>
153
153
  <script src="../../../prettify.js"></script>
154
154
  <script>
@@ -869,7 +869,7 @@ export function setExpireAfter (delayInSeconds) {
869
869
  export <span class="fstat-no" title="function not covered" >async function distinct (hook) {</span>
870
870
  <span class="cstat-no" title="statement not covered" > const params = hook.params</span>
871
871
  <span class="cstat-no" title="statement not covered" > const query = params.query</span>
872
- <span class="cstat-no" title="statement not covered" > if (!query.$distinct) return hook</span>
872
+ <span class="cstat-no" title="statement not covered" > if (!query || !query.$distinct) return hook</span>
873
873
  <span class="cstat-no" title="statement not covered" > const collection = hook.service.Model</span>
874
874
  <span class="cstat-no" title="statement not covered" > hook.result = await collection.distinct(query.$distinct, _.omit(query, ['$distinct']))</span>
875
875
  <span class="cstat-no" title="statement not covered" > return hook</span>
@@ -940,7 +940,7 @@ export function preventChanges (ifThrow, fieldNames) {
940
940
  <div class='footer quiet pad2 space-top1 center small'>
941
941
  Code coverage generated by
942
942
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
943
- at 2024-06-26T10:45:51.176Z
943
+ at 2024-11-15T21:05:45.936Z
944
944
  </div>
945
945
  <script src="../../../prettify.js"></script>
946
946
  <script>
@@ -526,7 +526,7 @@ export function removeOrganisationResources (resourceScope) {
526
526
  <div class='footer quiet pad2 space-top1 center small'>
527
527
  Code coverage generated by
528
528
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
529
- at 2024-06-26T10:45:51.176Z
529
+ at 2024-11-15T21:05:45.936Z
530
530
  </div>
531
531
  <script src="../../../prettify.js"></script>
532
532
  <script>
@@ -238,7 +238,7 @@ export async function sendNewSubscriptionEmail (hook) {
238
238
  <div class='footer quiet pad2 space-top1 center small'>
239
239
  Code coverage generated by
240
240
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
241
- at 2024-06-26T10:45:51.176Z
241
+ at 2024-11-15T21:05:45.936Z
242
242
  </div>
243
243
  <script src="../../../prettify.js"></script>
244
244
  <script>
@@ -847,7 +847,7 @@ export function diacriticSearch (options = {}) {
847
847
  <div class='footer quiet pad2 space-top1 center small'>
848
848
  Code coverage generated by
849
849
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
850
- at 2024-06-26T10:45:51.176Z
850
+ at 2024-11-15T21:05:45.936Z
851
851
  </div>
852
852
  <script src="../../../prettify.js"></script>
853
853
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.41% </span>
26
+ <span class="strong">90.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>66/73</span>
28
+ <span class='fraction'>64/71</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.41% </span>
47
+ <span class="strong">90.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>66/73</span>
49
+ <span class='fraction'>64/71</span>
50
50
  </div>
51
51
 
52
52
 
@@ -134,9 +134,7 @@
134
134
  <a name='L69'></a><a href='#L69'>69</a>
135
135
  <a name='L70'></a><a href='#L70'>70</a>
136
136
  <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
137
+ <a name='L72'></a><a href='#L72'>72</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
140
138
  <span class="cline-any cline-yes">1x</span>
141
139
  <span class="cline-any cline-yes">1x</span>
142
140
  <span class="cline-any cline-yes">1x</span>
@@ -169,7 +167,6 @@
169
167
  <span class="cline-any cline-yes">4x</span>
170
168
  <span class="cline-any cline-yes">4x</span>
171
169
  <span class="cline-any cline-yes">4x</span>
172
- <span class="cline-any cline-yes">4x</span>
173
170
  <span class="cline-any cline-yes">9x</span>
174
171
  <span class="cline-any cline-yes">9x</span>
175
172
  <span class="cline-any cline-yes">9x</span>
@@ -198,7 +195,6 @@
198
195
  <span class="cline-any cline-yes">4x</span>
199
196
  <span class="cline-any cline-yes">4x</span>
200
197
  <span class="cline-any cline-yes">4x</span>
201
- <span class="cline-any cline-yes">4x</span>
202
198
  <span class="cline-any cline-no">&nbsp;</span>
203
199
  <span class="cline-any cline-no">&nbsp;</span>
204
200
  <span class="cline-any cline-no">&nbsp;</span>
@@ -239,7 +235,6 @@ export function validateData (schema) {
239
235
  &nbsp;
240
236
  items.forEach((item, index) =&gt; {
241
237
  if (item.status === 'rejected') {
242
- console.log(item.reason)
243
238
  item.validationError = {
244
239
  message: item.reason.message,
245
240
  data: item.reason.data.map(error =&gt; {
@@ -269,7 +264,6 @@ export function validateData (schema) {
269
264
  const hasError = (errors.length &gt; 0)
270
265
  if (hasError) {
271
266
  const firstError = errors[0]
272
- console.log(firstError)
273
267
  // Single item case =&gt; raise the error
274
268
  if (!isArray) throw new BadRequest(firstError.message, firstError.data)
275
269
  <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > // Multiple items case =&gt; raise if no valid data found</span></span>
@@ -289,7 +283,7 @@ export function validateData (schema) {
289
283
  <div class='footer quiet pad2 space-top1 center small'>
290
284
  Code coverage generated by
291
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
292
- at 2024-06-26T10:45:51.176Z
286
+ at 2024-11-15T21:05:45.936Z
293
287
  </div>
294
288
  <script src="../../../prettify.js"></script>
295
289
  <script>
@@ -304,7 +304,7 @@ export function countLimit (options) {
304
304
  <div class='footer quiet pad2 space-top1 center small'>
305
305
  Code coverage generated by
306
306
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
307
- at 2024-06-26T10:45:51.176Z
307
+ at 2024-11-15T21:05:45.936Z
308
308
  </div>
309
309
  <script src="../../../prettify.js"></script>
310
310
  <script>
@@ -178,7 +178,7 @@ export <span class="fstat-no" title="function not covered" >function removeAttac
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
181
- at 2024-06-26T10:45:51.176Z
181
+ at 2024-11-15T21:05:45.936Z
182
182
  </div>
183
183
  <script src="../../../prettify.js"></script>
184
184
  <script>
@@ -448,7 +448,7 @@
448
448
  <span class="cline-any cline-yes">2x</span>
449
449
  <span class="cline-any cline-yes">2x</span>
450
450
  <span class="cline-any cline-yes">2x</span>
451
- <span class="cline-any cline-yes">8x</span>
451
+ <span class="cline-any cline-yes">18x</span>
452
452
  <span class="cline-any cline-yes">2x</span>
453
453
  <span class="cline-any cline-yes">2x</span>
454
454
  <span class="cline-any cline-yes">2x</span>
@@ -853,7 +853,7 @@ export function removeVerification (hook) {
853
853
  <div class='footer quiet pad2 space-top1 center small'>
854
854
  Code coverage generated by
855
855
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
856
- at 2024-06-26T10:45:51.176Z
856
+ at 2024-11-15T21:05:45.936Z
857
857
  </div>
858
858
  <script src="../../../prettify.js"></script>
859
859
  <script>