@kalisio/kdk 2.4.1 → 2.5.2

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 (638) hide show
  1. package/core/api/application.js +12 -12
  2. package/core/api/authentication.js +51 -7
  3. package/core/api/hooks/hooks.authentication.js +1 -59
  4. package/core/api/hooks/hooks.authorisations.js +9 -104
  5. package/core/api/hooks/hooks.model.js +4 -0
  6. package/core/api/hooks/hooks.push.js +18 -14
  7. package/core/api/hooks/hooks.users.js +0 -91
  8. package/core/api/hooks/index.js +0 -2
  9. package/core/api/services/account/account.service.js +1 -1
  10. package/core/api/services/authorisations/authorisations.service.js +28 -31
  11. package/core/api/services/index.js +42 -50
  12. package/core/api/services/messages/messages.hooks.js +4 -3
  13. package/core/api/services/users/users.hooks.js +4 -3
  14. package/core/api/services/users/users.service.js +5 -0
  15. package/core/client/api.js +182 -71
  16. package/core/client/broadcaster.js +20 -0
  17. package/core/client/capabilities.js +17 -7
  18. package/core/client/components/KActivity.vue +29 -34
  19. package/core/client/components/KAvatar.vue +0 -6
  20. package/core/client/components/KChip.vue +142 -39
  21. package/core/client/components/KContent.vue +13 -32
  22. package/core/client/components/KDialog.vue +29 -8
  23. package/core/client/components/KEditor.vue +120 -0
  24. package/core/client/components/KFollower.vue +75 -0
  25. package/core/client/components/KLogo.vue +2 -3
  26. package/core/client/components/KModal.vue +30 -10
  27. package/core/client/components/KSponsor.vue +1 -1
  28. package/core/client/components/KTextArea.vue +2 -5
  29. package/core/client/components/account/KDeleteAccountManager.vue +1 -1
  30. package/core/client/components/account/KProfile.vue +52 -14
  31. package/core/client/components/account/KSubscription.vue +19 -9
  32. package/core/client/components/account/KSubscriptionsManager.vue +10 -11
  33. package/core/client/components/action/KAction.vue +44 -24
  34. package/core/client/components/action/KBugReportAction.vue +4 -5
  35. package/core/client/components/action/KToggleStickyVisibility.vue +41 -0
  36. package/core/client/components/action/KToggleWidgetVisibility.vue +41 -0
  37. package/core/client/components/app/KPlatform.vue +122 -35
  38. package/core/client/components/app/KRequestProgressBar.vue +59 -0
  39. package/core/client/components/app/KSettings.vue +13 -2
  40. package/core/client/components/app/KTour.vue +2 -2
  41. package/core/client/components/chart/KTimeSeriesChart.vue +11 -3
  42. package/core/client/components/collection/KCard.vue +27 -33
  43. package/core/client/components/collection/KCardSection.vue +3 -23
  44. package/core/client/components/collection/KColumn.vue +0 -5
  45. package/core/client/components/collection/KDescriptionCardSection.vue +10 -5
  46. package/core/client/components/collection/KFilterView.vue +15 -0
  47. package/core/client/components/collection/KGrid.vue +4 -9
  48. package/core/client/components/collection/KHistory.vue +0 -5
  49. package/core/client/components/collection/KHistoryEntry.vue +0 -2
  50. package/core/client/components/collection/KItem.vue +1 -2
  51. package/core/client/components/collection/KSearchFilterControl.vue +139 -0
  52. package/core/client/components/collection/KTable.vue +1 -4
  53. package/core/client/components/collection/KTagsFilterControl.vue +70 -0
  54. package/core/client/components/collection/KTagsFilterView.vue +61 -0
  55. package/core/client/components/collection/KTimeFilterControl.vue +40 -0
  56. package/core/client/components/collection/KTimeFilterView.vue +106 -0
  57. package/core/client/components/collection/KTimeLine.vue +18 -11
  58. package/core/client/components/document/KBrowser.vue +283 -0
  59. package/core/client/components/document/KCsv.vue +52 -0
  60. package/core/client/components/document/KDocument.vue +19 -5
  61. package/core/client/components/document/KImage.vue +50 -19
  62. package/core/client/components/document/KMarkdown.vue +10 -2
  63. package/core/client/components/document/KUploader.vue +126 -0
  64. package/core/client/components/document/KVideo.vue +39 -0
  65. package/core/client/components/form/KDateField.vue +70 -0
  66. package/core/client/components/form/KDateTimeRangeField.vue +6 -17
  67. package/core/client/components/form/KDatetimeField.vue +6 -13
  68. package/core/client/components/form/KForm.vue +8 -8
  69. package/core/client/components/form/KOptionsField.vue +2 -0
  70. package/core/client/components/form/KResolutionField.vue +54 -52
  71. package/core/client/components/form/KSelectField.vue +27 -13
  72. package/core/client/components/form/KTextareaField.vue +23 -5
  73. package/core/client/components/graphics/KIcon.vue +64 -0
  74. package/core/client/components/index.js +1 -3
  75. package/core/client/components/input/KColorPicker.vue +70 -0
  76. package/core/client/components/input/KIconPicker.vue +188 -0
  77. package/core/client/components/input/KShapePicker.vue +81 -0
  78. package/core/client/components/input/index.js +7 -1
  79. package/core/client/components/layout/KFab.vue +1 -1
  80. package/core/client/components/layout/KLayout.vue +14 -2
  81. package/core/client/components/layout/KOpener.vue +9 -11
  82. package/core/client/components/layout/KPage.vue +31 -17
  83. package/core/client/components/layout/KWindow.vue +34 -18
  84. package/core/client/components/menu/KMenu.vue +52 -36
  85. package/core/client/components/menu/KSubMenu.vue +105 -0
  86. package/core/client/components/messages/KMessageCard.vue +207 -0
  87. package/core/client/components/messages/KMessageComposer.vue +199 -0
  88. package/core/client/components/messages/KMessagesTimeLine.vue +137 -0
  89. package/core/client/components/messages/index.js +7 -0
  90. package/core/client/components/screen/KErrorScreen.vue +2 -3
  91. package/core/client/components/screen/KLogoutScreen.vue +3 -1
  92. package/core/client/components/screen/KOAuthLoginScreen.vue +15 -0
  93. package/core/client/components/screen/KOAuthLogoutScreen.vue +33 -0
  94. package/core/client/components/screen/KUnauthorizedScreen.vue +16 -0
  95. package/core/client/components/time/KAbsoluteTimeRange.vue +7 -14
  96. package/core/client/components/time/KDate.vue +55 -28
  97. package/core/client/components/time/KDateTime.vue +93 -37
  98. package/core/client/components/time/KDateTimeRange.vue +197 -52
  99. package/core/client/components/time/KTime.vue +55 -27
  100. package/core/client/composables/activity.js +40 -30
  101. package/core/client/composables/{counter.js → collection-counter.js} +2 -4
  102. package/core/client/composables/collection-filter.js +111 -0
  103. package/core/client/composables/collection-timerange.js +56 -0
  104. package/core/client/composables/collection.js +13 -11
  105. package/core/client/composables/context.js +92 -0
  106. package/core/client/composables/errors.js +83 -0
  107. package/core/client/composables/index.js +5 -1
  108. package/core/client/composables/layout.js +14 -11
  109. package/core/client/composables/messages.js +4 -4
  110. package/core/client/composables/pwa.js +20 -27
  111. package/core/client/composables/schema.js +1 -1
  112. package/core/client/composables/screen.js +21 -9
  113. package/core/client/composables/selection.js +16 -4
  114. package/core/client/composables/session.js +13 -7
  115. package/core/client/composables/store.js +2 -1
  116. package/core/client/context.js +38 -0
  117. package/core/client/directives/v-hover.js +7 -4
  118. package/core/client/document.js +43 -15
  119. package/core/client/events.js +2 -2
  120. package/core/client/exporter.js +5 -4
  121. package/core/client/filter.js +1 -8
  122. package/core/client/guards.js +3 -3
  123. package/core/client/hooks/hooks.logger.js +1 -1
  124. package/core/client/hooks/hooks.offline.js +32 -0
  125. package/core/client/hooks/index.js +2 -1
  126. package/core/client/i18n/core_en.json +95 -268
  127. package/core/client/i18n/core_fr.json +181 -353
  128. package/core/client/index.js +22 -8
  129. package/core/client/layout.js +64 -25
  130. package/core/client/local-cache.js +67 -0
  131. package/core/client/local-storage.js +6 -2
  132. package/core/client/mixins/index.js +0 -1
  133. package/core/client/mixins/mixin.base-activity.js +22 -10
  134. package/core/client/mixins/mixin.base-editor.js +1 -1
  135. package/core/client/mixins/mixin.base-field.js +10 -1
  136. package/core/client/mixins/mixin.base-item.js +14 -11
  137. package/core/client/mixins/mixin.service.js +1 -5
  138. package/core/client/platform.js +44 -0
  139. package/core/client/readers/reader.blob.js +3 -3
  140. package/core/client/readers/reader.csv.js +2 -2
  141. package/core/client/readers/reader.json.js +2 -2
  142. package/core/client/services/index.js +7 -11
  143. package/core/client/storage.js +43 -8
  144. package/core/client/template-context.js +14 -14
  145. package/core/client/time.js +2 -2
  146. package/core/client/units.js +7 -4
  147. package/core/client/utils/index.js +7 -5
  148. package/core/client/utils/utils.collection.js +71 -0
  149. package/core/client/utils/utils.colors.js +29 -8
  150. package/core/client/utils/utils.content.js +14 -14
  151. package/core/client/utils/utils.files.js +17 -0
  152. package/core/client/utils/utils.items.js +4 -0
  153. package/core/client/utils/utils.math.js +18 -1
  154. package/core/client/utils/utils.push.js +22 -13
  155. package/core/client/utils/utils.screen.js +6 -2
  156. package/core/client/utils/utils.services.js +42 -0
  157. package/core/client/utils/utils.session.js +48 -12
  158. package/core/client/utils/utils.shapes.js +15 -11
  159. package/core/common/permissions.js +3 -108
  160. package/core/common/schemas/messages.update.json +16 -0
  161. package/core/common/schemas/settings.update.json +27 -8
  162. package/core/common/utils.js +2 -0
  163. package/core/common/utils.offline.js +38 -0
  164. package/coverage/core/api/application.js.html +296 -296
  165. package/coverage/core/api/authentication.js.html +206 -74
  166. package/coverage/core/api/db.js.html +61 -61
  167. package/coverage/core/api/hooks/hooks.authentication.js.html +15 -189
  168. package/coverage/core/api/hooks/hooks.authorisations.js.html +172 -460
  169. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  170. package/coverage/core/api/hooks/hooks.logger.js.html +16 -16
  171. package/coverage/core/api/hooks/hooks.model.js.html +52 -52
  172. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  173. package/coverage/core/api/hooks/hooks.push.js.html +58 -46
  174. package/coverage/core/api/hooks/hooks.query.js.html +136 -136
  175. package/coverage/core/api/hooks/hooks.schemas.js.html +1 -1
  176. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  177. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  178. package/coverage/core/api/hooks/hooks.users.js.html +55 -328
  179. package/coverage/core/api/hooks/index.html +58 -88
  180. package/coverage/core/api/hooks/index.js.html +4 -10
  181. package/coverage/core/api/index.html +39 -54
  182. package/coverage/core/api/index.js.html +1 -1
  183. package/coverage/core/api/marshall.js.html +1 -1
  184. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  185. package/coverage/core/api/models/index.html +13 -58
  186. package/coverage/core/api/models/messages.model.mongodb.js.html +35 -35
  187. package/coverage/core/api/models/organisations.model.mongodb.js.html +3 -3
  188. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  189. package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
  190. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  191. package/coverage/core/api/services/account/account.service.js.html +67 -67
  192. package/coverage/core/api/services/account/index.html +16 -16
  193. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  194. package/coverage/core/api/services/authorisations/authorisations.service.js.html +120 -117
  195. package/coverage/core/api/services/authorisations/index.html +15 -15
  196. package/coverage/core/api/services/databases/databases.hooks.js.html +82 -82
  197. package/coverage/core/api/services/databases/databases.service.js.html +20 -20
  198. package/coverage/core/api/services/databases/index.html +32 -32
  199. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  200. package/coverage/core/api/services/groups/index.html +1 -1
  201. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  202. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  203. package/coverage/core/api/services/import-export/index.html +1 -1
  204. package/coverage/core/api/services/index.html +21 -21
  205. package/coverage/core/api/services/index.js.html +118 -154
  206. package/coverage/core/api/services/mailer/index.html +1 -1
  207. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  208. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  209. package/coverage/core/api/services/messages/index.html +21 -21
  210. package/coverage/core/api/services/messages/messages.hooks.js.html +86 -86
  211. package/coverage/core/api/services/organisations/index.html +1 -1
  212. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  213. package/coverage/core/api/services/organisations/organisations.service.js.html +23 -23
  214. package/coverage/core/api/services/push/index.html +1 -1
  215. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  216. package/coverage/core/api/services/push/push.service.js.html +1 -1
  217. package/coverage/core/api/services/storage/index.html +5 -5
  218. package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
  219. package/coverage/core/api/services/storage/storage.service.js.html +27 -27
  220. package/coverage/core/api/services/tags/index.html +1 -1
  221. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  222. package/coverage/core/api/services/users/index.html +23 -8
  223. package/coverage/core/api/services/users/users.hooks.js.html +1 -1
  224. package/coverage/core/api/services/users/users.service.js.html +100 -0
  225. package/coverage/core/api/utils.js.html +1 -1
  226. package/coverage/core/common/errors.js.html +1 -1
  227. package/coverage/core/common/index.html +42 -27
  228. package/coverage/core/common/index.js.html +1 -1
  229. package/coverage/core/common/permissions.js.html +195 -510
  230. package/coverage/core/common/schema.js.html +1 -1
  231. package/coverage/core/common/utils.js.html +12 -6
  232. package/coverage/core/common/utils.offline.js.html +199 -0
  233. package/coverage/index.html +121 -166
  234. package/coverage/lcov-report/core/api/application.js.html +296 -296
  235. package/coverage/lcov-report/core/api/authentication.js.html +206 -74
  236. package/coverage/lcov-report/core/api/db.js.html +61 -61
  237. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +15 -189
  238. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +172 -460
  239. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  240. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +16 -16
  241. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +52 -52
  242. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  243. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +58 -46
  244. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +136 -136
  245. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +1 -1
  246. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  247. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  248. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +55 -328
  249. package/coverage/lcov-report/core/api/hooks/index.html +58 -88
  250. package/coverage/lcov-report/core/api/hooks/index.js.html +4 -10
  251. package/coverage/lcov-report/core/api/index.html +39 -54
  252. package/coverage/lcov-report/core/api/index.js.html +1 -1
  253. package/coverage/lcov-report/core/api/marshall.js.html +1 -1
  254. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  255. package/coverage/lcov-report/core/api/models/index.html +13 -58
  256. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +35 -35
  257. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +3 -3
  258. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  259. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
  260. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  261. package/coverage/lcov-report/core/api/services/account/account.service.js.html +67 -67
  262. package/coverage/lcov-report/core/api/services/account/index.html +16 -16
  263. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  264. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +120 -117
  265. package/coverage/lcov-report/core/api/services/authorisations/index.html +15 -15
  266. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +82 -82
  267. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +20 -20
  268. package/coverage/lcov-report/core/api/services/databases/index.html +32 -32
  269. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  270. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  271. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  272. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  273. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  274. package/coverage/lcov-report/core/api/services/index.html +21 -21
  275. package/coverage/lcov-report/core/api/services/index.js.html +118 -154
  276. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  277. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  278. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  279. package/coverage/lcov-report/core/api/services/messages/index.html +21 -21
  280. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +86 -86
  281. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  282. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  283. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +23 -23
  284. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  285. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  286. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  287. package/coverage/lcov-report/core/api/services/storage/index.html +5 -5
  288. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
  289. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +27 -27
  290. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  291. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  292. package/coverage/lcov-report/core/api/services/users/index.html +23 -8
  293. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
  294. package/coverage/lcov-report/core/api/services/users/users.service.js.html +100 -0
  295. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  296. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  297. package/coverage/lcov-report/core/common/index.html +42 -27
  298. package/coverage/lcov-report/core/common/index.js.html +1 -1
  299. package/coverage/lcov-report/core/common/permissions.js.html +195 -510
  300. package/coverage/lcov-report/core/common/schema.js.html +1 -1
  301. package/coverage/lcov-report/core/common/utils.js.html +12 -6
  302. package/coverage/lcov-report/core/common/utils.offline.js.html +199 -0
  303. package/coverage/lcov-report/index.html +121 -166
  304. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +33 -27
  305. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
  306. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +4 -4
  307. package/coverage/lcov-report/map/api/hooks/index.html +5 -5
  308. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  309. package/coverage/lcov-report/map/api/index.html +1 -1
  310. package/coverage/lcov-report/map/api/index.js.html +1 -1
  311. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  312. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  313. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  314. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  315. package/coverage/lcov-report/map/api/models/index.html +1 -1
  316. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
  317. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  318. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  319. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  320. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +10 -7
  321. package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
  322. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  323. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  324. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +78 -9
  325. package/coverage/lcov-report/map/api/services/features/features.service.js.html +307 -4
  326. package/coverage/lcov-report/map/api/services/features/index.html +7 -7
  327. package/coverage/lcov-report/map/api/services/index.html +5 -5
  328. package/coverage/lcov-report/map/api/services/index.js.html +171 -42
  329. package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
  330. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
  331. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  332. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  333. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +8 -5
  334. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  335. package/coverage/lcov-report/map/common/index.html +5 -5
  336. package/coverage/lcov-report/map/common/index.js.html +1 -1
  337. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  338. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  339. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  340. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  341. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  342. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  343. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  344. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  345. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  346. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  347. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  348. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  349. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  350. package/coverage/lcov.info +2314 -3167
  351. package/coverage/map/api/hooks/hooks.catalog.js.html +33 -27
  352. package/coverage/map/api/hooks/hooks.features.js.html +1 -1
  353. package/coverage/map/api/hooks/hooks.query.js.html +4 -4
  354. package/coverage/map/api/hooks/index.html +5 -5
  355. package/coverage/map/api/hooks/index.js.html +1 -1
  356. package/coverage/map/api/index.html +1 -1
  357. package/coverage/map/api/index.js.html +1 -1
  358. package/coverage/map/api/marshall.js.html +1 -1
  359. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  360. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  361. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  362. package/coverage/map/api/models/index.html +1 -1
  363. package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
  364. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  365. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  366. package/coverage/map/api/services/alerts/index.html +1 -1
  367. package/coverage/map/api/services/catalog/catalog.hooks.js.html +10 -7
  368. package/coverage/map/api/services/catalog/index.html +5 -5
  369. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  370. package/coverage/map/api/services/daptiles/index.html +1 -1
  371. package/coverage/map/api/services/features/features.hooks.js.html +78 -9
  372. package/coverage/map/api/services/features/features.service.js.html +307 -4
  373. package/coverage/map/api/services/features/index.html +7 -7
  374. package/coverage/map/api/services/index.html +5 -5
  375. package/coverage/map/api/services/index.js.html +171 -42
  376. package/coverage/map/api/services/projects/index.html +1 -1
  377. package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
  378. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  379. package/coverage/map/common/errors.js.html +1 -1
  380. package/coverage/map/common/geotiff-grid-source.js.html +8 -5
  381. package/coverage/map/common/grid.js.html +1 -1
  382. package/coverage/map/common/index.html +5 -5
  383. package/coverage/map/common/index.js.html +1 -1
  384. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  385. package/coverage/map/common/moment-utils.js.html +1 -1
  386. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  387. package/coverage/map/common/opendap-utils.js.html +1 -1
  388. package/coverage/map/common/permissions.js.html +1 -1
  389. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  390. package/coverage/map/common/tms-utils.js.html +1 -1
  391. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  392. package/coverage/map/common/wcs-utils.js.html +1 -1
  393. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  394. package/coverage/map/common/wfs-utils.js.html +1 -1
  395. package/coverage/map/common/wms-utils.js.html +1 -1
  396. package/coverage/map/common/wmts-utils.js.html +1 -1
  397. package/coverage/tmp/{coverage-280506-1731704745613-0.json → coverage-122123-1739872365211-0.json} +1 -1
  398. package/coverage/tmp/{coverage-280518-1731704745599-0.json → coverage-122135-1739872365196-0.json} +1 -1
  399. package/coverage/tmp/{coverage-280529-1731704745588-0.json → coverage-122146-1739872365184-0.json} +1 -1
  400. package/coverage/tmp/{coverage-280541-1731704745574-0.json → coverage-122158-1739872365169-0.json} +1 -1
  401. package/coverage/tmp/{coverage-280548-1731704745545-0.json → coverage-122165-1739872365141-0.json} +1 -1
  402. package/extras/configs/helpers.js +78 -0
  403. package/extras/configs/panes.left.js +118 -0
  404. package/extras/configs/panes.top.js +222 -0
  405. package/extras/configs/stickies.js +57 -0
  406. package/extras/configs/widgets.left.js +23 -0
  407. package/extras/configs/widgets.top.js +73 -0
  408. package/extras/css/core.variables.scss +8 -0
  409. package/extras/images/north.svg +3 -0
  410. package/extras/tours/map/side-nav.js +3 -3
  411. package/map/api/hooks/hooks.catalog.js +56 -23
  412. package/map/api/hooks/hooks.query.js +19 -24
  413. package/map/api/models/catalog.model.mongodb.js +16 -2
  414. package/{core/api/models/groups.model.mongodb.js → map/api/models/styles.model.mongodb.js} +2 -1
  415. package/map/api/services/catalog/catalog.hooks.js +13 -7
  416. package/map/api/services/features/features.hooks.js +28 -5
  417. package/map/api/services/features/features.service.js +101 -0
  418. package/map/api/services/index.js +125 -46
  419. package/map/api/services/styles/styles.hooks.js +37 -0
  420. package/map/client/cesium/utils/index.js +1 -0
  421. package/map/client/cesium/utils/utils.cesium.js +397 -0
  422. package/map/client/cesium/utils/utils.features.js +8 -0
  423. package/map/client/cesium/utils/utils.geojson.js +59 -0
  424. package/map/client/cesium/utils/utils.style.js +134 -17
  425. package/map/client/components/KEditLayerData.vue +17 -79
  426. package/map/client/components/KFeatureEditor.vue +2 -7
  427. package/map/client/components/KFeaturesChart.vue +2 -6
  428. package/map/client/components/KFeaturesFilterEditor.vue +300 -0
  429. package/map/client/components/KFeaturesFilterManager.vue +196 -0
  430. package/map/client/components/KFeaturesTable.vue +0 -5
  431. package/map/client/components/KFilterCondition.vue +303 -0
  432. package/map/client/components/KLayerEditionToolbar.vue +4 -3
  433. package/map/client/components/KLayerEditor.vue +451 -36
  434. package/map/client/components/KMeasureTool.vue +36 -9
  435. package/map/client/components/KProjectMenu.vue +14 -8
  436. package/map/client/components/catalog/KAddLayer.vue +0 -4
  437. package/map/client/components/catalog/KBaseLayersSelector.vue +42 -46
  438. package/map/client/components/catalog/KConnectLayer.vue +295 -291
  439. package/map/client/components/catalog/KCreateLayer.vue +141 -146
  440. package/map/client/components/catalog/KCreateOfflineView.vue +100 -0
  441. package/map/client/components/catalog/KCreateView.vue +2 -8
  442. package/map/client/components/catalog/KFilteredLayerItem.vue +72 -25
  443. package/map/client/components/catalog/KImportLayer.vue +121 -129
  444. package/map/client/components/catalog/KLayerItem.vue +44 -32
  445. package/map/client/components/catalog/KLayersPanel.vue +45 -17
  446. package/map/client/components/catalog/KLayersSelector.vue +51 -50
  447. package/map/client/components/catalog/KProjectManager.vue +4 -8
  448. package/map/client/components/catalog/KProjectSelector.vue +33 -2
  449. package/map/client/components/catalog/KProjectsPanel.vue +84 -106
  450. package/map/client/components/catalog/KSelectLayers.vue +56 -69
  451. package/map/client/components/catalog/KSelectViews.vue +56 -69
  452. package/map/client/components/catalog/KViewSelector.vue +32 -2
  453. package/map/client/components/catalog/KViewsPanel.vue +178 -110
  454. package/map/client/components/catalog/KWeatherLayersSelector.vue +77 -85
  455. package/map/client/components/form/KLocationField.vue +21 -2
  456. package/map/client/components/form/KOwsLayerField.vue +1 -1
  457. package/map/client/components/form/KOwsServiceField.vue +102 -63
  458. package/map/client/components/form/KSelectLayersField.vue +1 -1
  459. package/map/client/components/form/KSelectViewsField.vue +1 -1
  460. package/map/client/components/form/KTimezoneField.vue +0 -1
  461. package/map/client/components/legend/KLegend.vue +4 -4
  462. package/map/client/components/location/KLocationCardSection.vue +16 -0
  463. package/map/client/components/location/KLocationMap.vue +3 -2
  464. package/map/client/components/location/KLocationSearch.vue +46 -8
  465. package/map/client/components/location/KLocationTimeLineCard.vue +25 -3
  466. package/map/client/components/location/KLocationTip.vue +57 -10
  467. package/map/client/components/selection/KFeaturesSelection.vue +71 -0
  468. package/map/client/components/selection/KSelectedLayerFeatures.vue +343 -0
  469. package/map/client/components/stickies/KAttribution.vue +115 -0
  470. package/map/client/components/stickies/KLevelSlider.vue +114 -0
  471. package/map/client/components/stickies/KNorthArrow.vue +26 -0
  472. package/map/client/components/stickies/KPosition.vue +103 -0
  473. package/map/client/components/stickies/KTarget.vue +34 -0
  474. package/map/client/components/styles/KLayerStyleAction.vue +58 -0
  475. package/map/client/components/styles/KStyleEditor.vue +273 -0
  476. package/map/client/components/styles/KStyleEditorSection.vue +79 -0
  477. package/map/client/components/styles/KStyleManager.vue +183 -0
  478. package/map/client/components/styles/KStylePreview.vue +64 -0
  479. package/map/client/components/styles/KStylePreviewItem.vue +68 -0
  480. package/map/client/components/styles/KStylePropertiesGroup.vue +76 -0
  481. package/map/client/components/styles/KStyleProperty.vue +136 -0
  482. package/map/client/components/styles/KStyleTip.vue +118 -0
  483. package/map/client/components/tools/KGeolocateTool.vue +3 -2
  484. package/map/client/components/tools/KSearchTool.vue +34 -6
  485. package/map/client/components/widget/KMapillaryViewer.vue +1 -1
  486. package/map/client/components/widget/KStackableTimeSeries.vue +8 -5
  487. package/map/client/composables/activity.js +29 -43
  488. package/map/client/composables/catalog.js +1 -1
  489. package/map/client/composables/highlight.js +117 -57
  490. package/map/client/composables/location.js +33 -14
  491. package/map/client/composables/project.js +9 -10
  492. package/map/client/composables/selection.js +136 -23
  493. package/map/client/geocoder.js +104 -0
  494. package/map/client/geolocation.js +1 -1
  495. package/map/client/globe.js +3 -0
  496. package/map/client/hooks/hooks.offline.js +95 -0
  497. package/map/client/hooks/index.js +1 -0
  498. package/map/client/i18n/map_en.json +159 -94
  499. package/map/client/i18n/map_fr.json +187 -128
  500. package/map/client/index.js +3 -0
  501. package/map/client/init.js +44 -8
  502. package/map/client/leaflet/BoxSelection.js +2 -2
  503. package/map/client/leaflet/GradientPath.js +84 -4
  504. package/map/client/leaflet/WindBarb.js +323 -0
  505. package/map/client/leaflet/utils/index.js +1 -0
  506. package/map/client/leaflet/utils/utils.events.js +8 -3
  507. package/map/client/leaflet/utils/utils.geojson.js +222 -0
  508. package/map/client/leaflet/utils/utils.style.js +10 -9
  509. package/map/client/map.js +3 -0
  510. package/map/client/mixins/globe/mixin.base-globe.js +151 -19
  511. package/map/client/mixins/globe/mixin.geojson-layers.js +208 -86
  512. package/map/client/mixins/globe/mixin.popup.js +3 -2
  513. package/map/client/mixins/globe/mixin.style.js +3 -1
  514. package/map/client/mixins/globe/mixin.tooltip.js +3 -2
  515. package/map/client/mixins/map/index.js +1 -3
  516. package/map/client/mixins/map/mixin.base-map.js +267 -79
  517. package/map/client/mixins/map/mixin.canvas-layers.js +44 -10
  518. package/map/client/mixins/map/mixin.edit-layers.js +142 -57
  519. package/map/client/mixins/map/mixin.geojson-layers.js +127 -204
  520. package/map/client/mixins/map/mixin.pmtiles-layers.js +24 -11
  521. package/map/client/mixins/map/mixin.tiled-mesh-layers.js +1 -2
  522. package/map/client/mixins/map/mixin.tiled-wind-layers.js +2 -1
  523. package/map/client/mixins/mixin.activity.js +61 -41
  524. package/map/client/mixins/mixin.context.js +19 -14
  525. package/map/client/mixins/mixin.feature-selection.js +0 -1
  526. package/map/client/mixins/mixin.feature-service.js +41 -59
  527. package/map/client/mixins/mixin.weacast.js +1 -1
  528. package/map/client/navigator.js +38 -0
  529. package/map/client/pixi-utils.js +1 -1
  530. package/map/client/planets.js +1 -1
  531. package/map/client/readers/reader.kml.js +57 -1
  532. package/map/client/utils/index.js +1 -0
  533. package/map/client/utils/utils.capture.js +10 -7
  534. package/map/client/utils/utils.catalog.js +2 -2
  535. package/map/client/utils/utils.features.js +193 -39
  536. package/map/client/utils/utils.js +0 -21
  537. package/map/client/utils/utils.layers.js +381 -4
  538. package/map/client/utils/utils.location.js +39 -74
  539. package/map/client/utils/utils.offline.js +89 -0
  540. package/map/client/utils/utils.style.js +133 -80
  541. package/map/common/geotiff-grid-source.js +2 -1
  542. package/map/common/permissions.js +2 -0
  543. package/map/common/schemas/capture.create.json +4 -4
  544. package/map/common/schemas/catalog.update.json +18 -2
  545. package/map/common/schemas/projects.create.json +2 -2
  546. package/map/common/schemas/projects.update.json +2 -2
  547. package/map/common/tms-utils.js +5 -5
  548. package/map/common/wcs-grid-source.js +2 -2
  549. package/map/common/wcs-utils.js +8 -8
  550. package/map/common/wfs-utils.js +10 -10
  551. package/map/common/wms-utils.js +7 -7
  552. package/map/common/wmts-utils.js +6 -6
  553. package/package.json +7 -4
  554. package/test/api/core/account.test.js +0 -72
  555. package/test/api/core/authentication.test.js +184 -0
  556. package/test/api/core/config/default.cjs +1 -3
  557. package/test/api/core/index.test.js +77 -151
  558. package/test/api/core/offline.test.js +55 -0
  559. package/test/api/core/push.test.js +3 -3
  560. package/test/api/core/{test-log-2024-11-05.log → test-log-2025-05-26.log} +1 -9
  561. package/test/api/map/alerts.test.js +1 -1
  562. package/test/api/map/config/default.cjs +2 -1
  563. package/test/api/map/data/vigicrues.observations.Q.json +47042 -0
  564. package/test/api/map/index.test.js +113 -9
  565. package/test/api/map/style.test.js +62 -0
  566. package/test/api/map/{test-log-2024-10-28.log → test-log-2025-05-26.log} +4 -3
  567. package/test/client/core/layout.js +2 -2
  568. package/test/client/core/runner.js +1 -1
  569. package/test/client/core/utils.js +52 -0
  570. package/test/client/map/catalog.js +1 -0
  571. package/core/api/hooks/hooks.groups.js +0 -48
  572. package/core/api/hooks/hooks.organisations.js +0 -152
  573. package/core/api/models/organisations.model.mongodb.js +0 -3
  574. package/core/api/models/tags.model.mongodb.js +0 -10
  575. package/core/api/services/groups/groups.hooks.js +0 -31
  576. package/core/api/services/organisations/organisations.hooks.js +0 -31
  577. package/core/api/services/organisations/organisations.service.js +0 -86
  578. package/core/api/services/tags/tags.hooks.js +0 -31
  579. package/core/api/utils.js +0 -11
  580. package/core/client/components/KChipsPane.vue +0 -103
  581. package/core/client/components/document/index.js +0 -9
  582. package/core/client/components/team/KAddMember.vue +0 -378
  583. package/core/client/components/team/KAddTag.vue +0 -121
  584. package/core/client/components/team/KChangeRole.vue +0 -118
  585. package/core/client/components/team/KGroupCard.vue +0 -110
  586. package/core/client/components/team/KGroupsActivity.vue +0 -78
  587. package/core/client/components/team/KJoinGroup.vue +0 -132
  588. package/core/client/components/team/KMemberCard.vue +0 -328
  589. package/core/client/components/team/KMemberFilter.vue +0 -49
  590. package/core/client/components/team/KMembersActivity.vue +0 -136
  591. package/core/client/components/team/KOrganisationsActivity.vue +0 -51
  592. package/core/client/components/team/KTagCard.vue +0 -72
  593. package/core/client/components/team/KTagsActivity.vue +0 -73
  594. package/core/client/components/team/index.js +0 -9
  595. package/core/client/mixins/mixin.base-context.js +0 -54
  596. package/core/client/utils/utils.platform.js +0 -12
  597. package/core/common/schemas/groups.create.json +0 -28
  598. package/core/common/schemas/groups.update.json +0 -28
  599. package/core/common/schemas/organisations.create.json +0 -28
  600. package/core/common/schemas/organisations.update.json +0 -49
  601. package/core/common/schemas/tags.create.json +0 -35
  602. package/core/common/schemas/tags.update.json +0 -35
  603. package/map/client/components/KAttribution.vue +0 -108
  604. package/map/client/components/KFeaturesFilter.vue +0 -259
  605. package/map/client/components/KLayerStyleEditor.vue +0 -118
  606. package/map/client/components/KLayerStyleForm.vue +0 -740
  607. package/map/client/components/KLevelSlider.vue +0 -100
  608. package/map/client/components/KNorth.vue +0 -31
  609. package/map/client/components/KPositionIndicator.vue +0 -83
  610. package/map/client/components/catalog/KCreateProject.vue +0 -100
  611. package/map/client/mixins/map/mixin.forecast-layers.js +0 -81
  612. package/map/client/mixins/map/mixin.georaster-layers.js +0 -107
  613. package/test/api/core/team.test.js +0 -670
  614. package/test/api/core/test-log-2023-12-19.log +0 -7
  615. package/test/api/core/test-log-2024-01-04.log +0 -14
  616. package/test/api/core/test-log-2024-05-14.log +0 -6
  617. package/test/api/core/test-log-2024-06-06.log +0 -23
  618. package/test/api/core/test-log-2024-06-26.log +0 -25
  619. package/test/api/core/test-log-2024-06-28.log +0 -2
  620. package/test/api/core/test-log-2024-07-09.log +0 -0
  621. package/test/api/core/test-log-2024-08-13.log +0 -69
  622. package/test/api/core/test-log-2024-10-28.log +0 -53
  623. package/test/api/core/test-log-2024-11-15.log +0 -23
  624. package/test/api/core/test-log-2024-11-18.log +0 -0
  625. package/test/api/core/test-log-2024-12-03.log +0 -30
  626. package/test/api/map/test-log-2023-11-24.log +0 -121
  627. package/test/api/map/test-log-2023-12-12.log +0 -29
  628. package/test/api/map/test-log-2023-12-13.log +0 -5
  629. package/test/api/map/test-log-2024-01-04.log +0 -2
  630. package/test/api/map/test-log-2024-01-11.log +0 -1
  631. package/test/api/map/test-log-2024-01-25.log +0 -19
  632. package/test/api/map/test-log-2024-06-06.log +0 -39
  633. package/test/api/map/test-log-2024-08-13.log +0 -13
  634. package/test/api/map/test-log-2024-08-20.log +0 -55
  635. package/test/api/map/test-log-2024-09-09.log +0 -92
  636. /package/extras/{logos → images}/kalisio.png +0 -0
  637. /package/extras/{icons → images}/target.svg +0 -0
  638. /package/test/api/map/data/{vigicrues.observations.json → vigicrues.observations.H.json} +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">87.26% </span>
26
+ <span class="strong">65.51% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>137/157</span>
28
+ <span class='fraction'>95/145</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">81.25% </span>
33
+ <span class="strong">80% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/16</span>
35
+ <span class='fraction'>4/5</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70% </span>
40
+ <span class="strong">33.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/10</span>
42
+ <span class='fraction'>3/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">87.26% </span>
47
+ <span class="strong">65.51% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>137/157</span>
49
+ <span class='fraction'>95/145</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -208,19 +208,7 @@
208
208
  <a name='L143'></a><a href='#L143'>143</a>
209
209
  <a name='L144'></a><a href='#L144'>144</a>
210
210
  <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
211
+ <a name='L146'></a><a href='#L146'>146</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
224
212
  <span class="cline-any cline-yes">1x</span>
225
213
  <span class="cline-any cline-yes">1x</span>
226
214
  <span class="cline-any cline-yes">1x</span>
@@ -232,33 +220,6 @@
232
220
  <span class="cline-any cline-yes">1x</span>
233
221
  <span class="cline-any cline-yes">1x</span>
234
222
  <span class="cline-any cline-yes">1x</span>
235
- <span class="cline-any cline-yes">3x</span>
236
- <span class="cline-any cline-yes">3x</span>
237
- <span class="cline-any cline-yes">3x</span>
238
- <span class="cline-any cline-yes">3x</span>
239
- <span class="cline-any cline-yes">3x</span>
240
- <span class="cline-any cline-yes">3x</span>
241
- <span class="cline-any cline-yes">1x</span>
242
- <span class="cline-any cline-yes">1x</span>
243
- <span class="cline-any cline-yes">2x</span>
244
- <span class="cline-any cline-yes">2x</span>
245
- <span class="cline-any cline-yes">2x</span>
246
- <span class="cline-any cline-yes">1x</span>
247
- <span class="cline-any cline-yes">1x</span>
248
- <span class="cline-any cline-yes">9x</span>
249
- <span class="cline-any cline-yes">9x</span>
250
- <span class="cline-any cline-yes">9x</span>
251
- <span class="cline-any cline-yes">9x</span>
252
- <span class="cline-any cline-yes">9x</span>
253
- <span class="cline-any cline-yes">9x</span>
254
- <span class="cline-any cline-yes">9x</span>
255
- <span class="cline-any cline-yes">9x</span>
256
- <span class="cline-any cline-yes">9x</span>
257
- <span class="cline-any cline-yes">1x</span>
258
- <span class="cline-any cline-yes">1x</span>
259
- <span class="cline-any cline-yes">2x</span>
260
- <span class="cline-any cline-yes">2x</span>
261
- <span class="cline-any cline-yes">2x</span>
262
223
  <span class="cline-any cline-yes">1x</span>
263
224
  <span class="cline-any cline-yes">1x</span>
264
225
  <span class="cline-any cline-no">&nbsp;</span>
@@ -267,11 +228,34 @@
267
228
  <span class="cline-any cline-no">&nbsp;</span>
268
229
  <span class="cline-any cline-no">&nbsp;</span>
269
230
  <span class="cline-any cline-no">&nbsp;</span>
231
+ <span class="cline-any cline-no">&nbsp;</span>
232
+ <span class="cline-any cline-no">&nbsp;</span>
233
+ <span class="cline-any cline-no">&nbsp;</span>
234
+ <span class="cline-any cline-no">&nbsp;</span>
235
+ <span class="cline-any cline-no">&nbsp;</span>
236
+ <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-no">&nbsp;</span>
270
238
  <span class="cline-any cline-yes">1x</span>
271
239
  <span class="cline-any cline-yes">1x</span>
272
240
  <span class="cline-any cline-no">&nbsp;</span>
273
241
  <span class="cline-any cline-no">&nbsp;</span>
274
242
  <span class="cline-any cline-no">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-no">&nbsp;</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
250
+ <span class="cline-any cline-no">&nbsp;</span>
251
+ <span class="cline-any cline-no">&nbsp;</span>
252
+ <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-no">&nbsp;</span>
254
+ <span class="cline-any cline-no">&nbsp;</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-no">&nbsp;</span>
257
+ <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-no">&nbsp;</span>
275
259
  <span class="cline-any cline-yes">1x</span>
276
260
  <span class="cline-any cline-yes">1x</span>
277
261
  <span class="cline-any cline-yes">7x</span>
@@ -280,6 +264,9 @@
280
264
  <span class="cline-any cline-yes">7x</span>
281
265
  <span class="cline-any cline-yes">7x</span>
282
266
  <span class="cline-any cline-yes">7x</span>
267
+ <span class="cline-any cline-yes">7x</span>
268
+ <span class="cline-any cline-yes">7x</span>
269
+ <span class="cline-any cline-yes">7x</span>
283
270
  <span class="cline-any cline-yes">1x</span>
284
271
  <span class="cline-any cline-yes">1x</span>
285
272
  <span class="cline-any cline-no">&nbsp;</span>
@@ -287,40 +274,30 @@
287
274
  <span class="cline-any cline-no">&nbsp;</span>
288
275
  <span class="cline-any cline-yes">1x</span>
289
276
  <span class="cline-any cline-yes">1x</span>
290
- <span class="cline-any cline-yes">7x</span>
291
- <span class="cline-any cline-yes">7x</span>
292
- <span class="cline-any cline-yes">7x</span>
293
- <span class="cline-any cline-yes">7x</span>
294
- <span class="cline-any cline-yes">7x</span>
295
- <span class="cline-any cline-yes">7x</span>
296
- <span class="cline-any cline-yes">7x</span>
297
- <span class="cline-any cline-yes">7x</span>
298
- <span class="cline-any cline-yes">7x</span>
299
- <span class="cline-any cline-yes">7x</span>
300
- <span class="cline-any cline-yes">7x</span>
301
- <span class="cline-any cline-yes">34x</span>
302
- <span class="cline-any cline-yes">34x</span>
303
- <span class="cline-any cline-yes">34x</span>
304
- <span class="cline-any cline-yes">34x</span>
305
- <span class="cline-any cline-yes">7x</span>
306
- <span class="cline-any cline-yes">7x</span>
307
- <span class="cline-any cline-yes">7x</span>
308
- <span class="cline-any cline-yes">2x</span>
309
- <span class="cline-any cline-yes">2x</span>
310
- <span class="cline-any cline-yes">2x</span>
277
+ <span class="cline-any cline-yes">1x</span>
278
+ <span class="cline-any cline-yes">1x</span>
279
+ <span class="cline-any cline-yes">1x</span>
280
+ <span class="cline-any cline-yes">1x</span>
281
+ <span class="cline-any cline-yes">1x</span>
282
+ <span class="cline-any cline-yes">1x</span>
283
+ <span class="cline-any cline-yes">1x</span>
284
+ <span class="cline-any cline-yes">1x</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>
288
+ <span class="cline-any cline-yes">1x</span>
289
+ <span class="cline-any cline-yes">1x</span>
290
+ <span class="cline-any cline-no">&nbsp;</span>
311
291
  <span class="cline-any cline-no">&nbsp;</span>
312
292
  <span class="cline-any cline-no">&nbsp;</span>
313
293
  <span class="cline-any cline-no">&nbsp;</span>
314
294
  <span class="cline-any cline-no">&nbsp;</span>
315
- <span class="cline-any cline-yes">7x</span>
316
- <span class="cline-any cline-yes">7x</span>
317
- <span class="cline-any cline-yes">2x</span>
318
- <span class="cline-any cline-yes">2x</span>
319
- <span class="cline-any cline-yes">2x</span>
320
295
  <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-yes">7x</span>
322
- <span class="cline-any cline-yes">7x</span>
323
- <span class="cline-any cline-yes">7x</span>
296
+ <span class="cline-any cline-yes">1x</span>
297
+ <span class="cline-any cline-yes">1x</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>
324
301
  <span class="cline-any cline-yes">1x</span>
325
302
  <span class="cline-any cline-yes">1x</span>
326
303
  <span class="cline-any cline-yes">7x</span>
@@ -355,15 +332,14 @@
355
332
  <span class="cline-any cline-yes">7x</span>
356
333
  <span class="cline-any cline-yes">7x</span>
357
334
  <span class="cline-any cline-yes">7x</span>
358
- <span class="cline-any cline-no">&nbsp;</span>
359
- <span class="cline-any cline-no">&nbsp;</span>
360
- <span class="cline-any cline-no">&nbsp;</span>
361
- <span class="cline-any cline-yes">7x</span>
362
335
  <span class="cline-any cline-yes">7x</span>
363
336
  <span class="cline-any cline-yes">7x</span>
364
337
  <span class="cline-any cline-yes">7x</span>
365
338
  <span class="cline-any cline-yes">7x</span>
366
339
  <span class="cline-any cline-yes">7x</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
367
343
  <span class="cline-any cline-yes">7x</span>
368
344
  <span class="cline-any cline-yes">7x</span>
369
345
  <span class="cline-any cline-yes">7x</span>
@@ -381,6 +357,8 @@
381
357
  import path from 'path'
382
358
  import makeDebug from 'debug'
383
359
  import { fileURLToPath } from 'url'
360
+ import mongodb from 'mongodb'
361
+ const { ObjectID } = mongodb
384
362
  &nbsp;
385
363
  const __dirname = path.dirname(fileURLToPath(import.meta.url))
386
364
  const modelsPath = path.join(__dirname, '..', 'models')
@@ -388,18 +366,41 @@ const servicesPath = path.join(__dirname, '..', 'services')
388
366
  &nbsp;
389
367
  const debug = makeDebug('kdk:core:services')
390
368
  &nbsp;
391
- export function createTagService (options = {}) {
392
- const app = this
393
- return app.createService('tags', Object.assign({
394
- servicesPath,
395
- modelsPath
396
- }, options))
397
- }
369
+ export <span class="fstat-no" title="function not covered" >function getServiceNameAndContext (servicePath) {</span>
370
+ <span class="cstat-no" title="statement not covered" > const app = this</span>
371
+ <span class="cstat-no" title="statement not covered" > // Get name from service path without api prefix</span>
372
+ <span class="cstat-no" title="statement not covered" > let name = servicePath.replace(app.get('apiPath').substring(1) + '/', '')</span>
373
+ <span class="cstat-no" title="statement not covered" > // Then without context if any</span>
374
+ <span class="cstat-no" title="statement not covered" > const lastSlash = name.lastIndexOf('/')</span>
375
+ <span class="cstat-no" title="statement not covered" > const contextId = (lastSlash &gt;= 0 ? name.substring(0, lastSlash) : '')</span>
376
+ <span class="cstat-no" title="statement not covered" > if (contextId &amp;&amp; ObjectID.isValid(contextId)) {</span>
377
+ <span class="cstat-no" title="statement not covered" > name = name.replace(contextId + '/', '')</span>
378
+ <span class="cstat-no" title="statement not covered" > return { name, contextId }</span>
379
+ <span class="cstat-no" title="statement not covered" > } else {</span>
380
+ <span class="cstat-no" title="statement not covered" > return { name }</span>
381
+ <span class="cstat-no" title="statement not covered" > }</span>
382
+ <span class="cstat-no" title="statement not covered" >}</span>
398
383
  &nbsp;
399
- export function removeTagService (options = {}) {
400
- const app = this
401
- return app.removeService(app.getService('tags', options.context))
402
- }
384
+ export <span class="fstat-no" title="function not covered" >function decorateDistributedService (service) {</span>
385
+ <span class="cstat-no" title="statement not covered" > const app = this</span>
386
+ <span class="cstat-no" title="statement not covered" > // Remote service are registered according to their path, ie with API prefix (but without trailing /)</span>
387
+ <span class="cstat-no" title="statement not covered" > const remoteService = app.service(service.path)</span>
388
+ <span class="cstat-no" title="statement not covered" > const { name, contextId } = getServiceNameAndContext.call(app, service.path)</span>
389
+ <span class="cstat-no" title="statement not covered" > remoteService.name = name</span>
390
+ <span class="cstat-no" title="statement not covered" > remoteService.context = contextId</span>
391
+ <span class="cstat-no" title="statement not covered" > // As remote services have no context, from the internal point of view path = name</span>
392
+ <span class="cstat-no" title="statement not covered" > // Unfortunately this property is already set and used by feathers-distributed and should not be altered</span>
393
+ <span class="cstat-no" title="statement not covered" > // remoteService.path = name</span>
394
+ <span class="cstat-no" title="statement not covered" > remoteService.app = app</span>
395
+ <span class="cstat-no" title="statement not covered" > remoteService.getPath = function (withApiPrefix) {</span>
396
+ <span class="cstat-no" title="statement not covered" > const path = (contextId ? contextId + '/' + name : name)</span>
397
+ <span class="cstat-no" title="statement not covered" > return (withApiPrefix ? app.get('apiPath') + '/' + path : path)</span>
398
+ <span class="cstat-no" title="statement not covered" > }</span>
399
+ <span class="cstat-no" title="statement not covered" > remoteService.getContextId = function () {</span>
400
+ <span class="cstat-no" title="statement not covered" > return contextId</span>
401
+ <span class="cstat-no" title="statement not covered" > }</span>
402
+ <span class="cstat-no" title="statement not covered" > return remoteService</span>
403
+ <span class="cstat-no" title="statement not covered" >}</span>
403
404
  &nbsp;
404
405
  export function createStorageService (options = {}) {
405
406
  const app = this
@@ -412,79 +413,48 @@ export function createStorageService (options = {}) {
412
413
  }, options))
413
414
  }
414
415
  &nbsp;
415
- export function removeStorageService (options = {}) {
416
- const app = this
417
- return app.removeService(app.getService('storage', options.context))
418
- }
419
- &nbsp;
420
- export <span class="fstat-no" title="function not covered" >function createMessagesService (options = {}) {</span>
416
+ export <span class="fstat-no" title="function not covered" >function removeStorageService (options = {}) {</span>
421
417
  <span class="cstat-no" title="statement not covered" > const app = this</span>
422
- <span class="cstat-no" title="statement not covered" > return app.createService('messages', Object.assign({</span>
423
- <span class="cstat-no" title="statement not covered" > servicesPath,</span>
424
- <span class="cstat-no" title="statement not covered" > modelsPath</span>
425
- <span class="cstat-no" title="statement not covered" > }, options))</span>
418
+ <span class="cstat-no" title="statement not covered" > return app.removeService(app.getService('storage', options.context))</span>
426
419
  <span class="cstat-no" title="statement not covered" >}</span>
427
420
  &nbsp;
421
+ export function createMessagesService (options = {}) {
422
+ const app = this
423
+ return app.createService('messages', Object.assign({
424
+ servicesPath,
425
+ modelsPath
426
+ }, options))
427
+ }
428
+ &nbsp;
428
429
  export <span class="fstat-no" title="function not covered" >function removeMessagesService (options = {}) {</span>
429
430
  <span class="cstat-no" title="statement not covered" > const app = this</span>
430
431
  <span class="cstat-no" title="statement not covered" > return app.removeService(app.getService('messages', options.context))</span>
431
432
  <span class="cstat-no" title="statement not covered" >}</span>
432
433
  &nbsp;
433
- export function createDatabasesService (options = {}) {
434
- const app = this
435
- &nbsp;
436
- return app.createService('databases', Object.assign({
437
- servicesPath
438
- }, options))
439
- }
434
+ export <span class="fstat-no" title="function not covered" >function createDatabasesService (options = {}) {</span>
435
+ <span class="cstat-no" title="statement not covered" > const app = this</span>
436
+ <span class="cstat-no" title="statement not covered" ></span>
437
+ <span class="cstat-no" title="statement not covered" > return app.createService('databases', Object.assign({</span>
438
+ <span class="cstat-no" title="statement not covered" > servicesPath</span>
439
+ <span class="cstat-no" title="statement not covered" > }, options))</span>
440
+ <span class="cstat-no" title="statement not covered" >}</span>
440
441
  &nbsp;
441
442
  export <span class="fstat-no" title="function not covered" >function removeDatabasesService (options = {}) {</span>
442
443
  <span class="cstat-no" title="statement not covered" > const app = this</span>
443
444
  <span class="cstat-no" title="statement not covered" > return app.removeService(app.getService('databases', options.context))</span>
444
445
  <span class="cstat-no" title="statement not covered" >}</span>
445
446
  &nbsp;
446
- export async function createOrganisationService (options = {}) {
447
- const app = this
448
- &nbsp;
449
- // Create services to manage MongoDB databases, organisations, etc.
450
- await createDatabasesService.call(app)
451
- const orgsService = await app.createService('organisations', { modelsPath, servicesPath })
452
- &nbsp;
453
- // Replication management
454
- const usersService = app.getService('users')
455
- const authorisationsService = app.getService('authorisations')
456
- // Ensure permissions are correctly distributed when replicated
457
- usersService.on('patched', user =&gt; {
458
- // Patching profile should not trigger abilities update since
459
- // it is a perspective and permissions are not available in this case
460
- // Updating abilities in this case will result in loosing permissions for orgs/groups as none are available
461
- if (_.has(user, 'organisations') || _.has(user, 'groups')) authorisationsService.updateAbilities(user)
462
- })
463
- // Ensure org services are correctly distributed when replicated
464
- orgsService.on('created', organisation =&gt; {
465
- // Check if already done (initiator)
466
- const orgMembersService = app.getService('members', organisation)
467
- if (!orgMembersService) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
468
- <span class="cstat-no" title="statement not covered" > // Jump from infos/stats to real DB object</span>
469
- <span class="cstat-no" title="statement not covered" > const db = app.db.client.db(organisation._id.toString())</span>
470
- <span class="cstat-no" title="statement not covered" > orgsService.createOrganisationServices(organisation, db)</span>
471
- <span class="cstat-no" title="statement not covered" > }</span>
472
- })
473
- orgsService.on('removed', organisation =&gt; {
474
- // Check if already done (initiator)
475
- const orgMembersService = app.getService('members', organisation)
476
- if (!orgMembersService) return
477
- <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > orgsService.removeOrganisationServices(organisation)</span></span>
478
- })
479
- return orgsService
480
- }
481
- &nbsp;
482
447
  export default async function () {
483
448
  const app = this
484
449
  &nbsp;
485
450
  const authConfig = app.get('authentication')
486
451
  if (authConfig) {
487
- await app.createService('users', { modelsPath, servicesPath })
452
+ await app.createService('users', {
453
+ modelsPath,
454
+ servicesPath,
455
+ methods: ['create', 'get', 'find', 'update', 'patch', 'remove', 'logout'],
456
+ events: ['logout']
457
+ })
488
458
  debug('\'users\' service created')
489
459
  await app.createService('account', {
490
460
  servicesPath,
@@ -515,12 +485,6 @@ export default async function () {
515
485
  <span class="cstat-no" title="statement not covered" > await createMessagesService.call(app)</span>
516
486
  <span class="cstat-no" title="statement not covered" > debug('\'messages\' service created')</span>
517
487
  <span class="cstat-no" title="statement not covered" > }</span>
518
- &nbsp;
519
- const orgConfig = app.get('organisations')
520
- if (orgConfig) {
521
- await createOrganisationService.call(app)
522
- debug('\'organisations\' service created')
523
- }
524
488
  &nbsp;
525
489
  const mailerConfig = app.get('mailer')
526
490
  if (mailerConfig) {
@@ -541,7 +505,7 @@ export default async function () {
541
505
  <div class='footer quiet pad2 space-top1 center small'>
542
506
  Code coverage generated by
543
507
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
544
- at 2024-11-15T21:05:45.936Z
508
+ at 2025-02-18T09:52:45.637Z
545
509
  </div>
546
510
  <script src="../../../prettify.js"></script>
547
511
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2024-11-15T21:05:45.936Z
119
+ at 2025-02-18T09:52:45.637Z
120
120
  </div>
121
121
  <script src="../../../../prettify.js"></script>
122
122
  <script>
@@ -175,7 +175,7 @@ export default {
175
175
  <div class='footer quiet pad2 space-top1 center small'>
176
176
  Code coverage generated by
177
177
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
178
- at 2024-11-15T21:05:45.936Z
178
+ at 2025-02-18T09:52:45.637Z
179
179
  </div>
180
180
  <script src="../../../../prettify.js"></script>
181
181
  <script>
@@ -103,7 +103,7 @@ export default function (name, app, options) {
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at 2024-11-15T21:05:45.936Z
106
+ at 2025-02-18T09:52:45.637Z
107
107
  </div>
108
108
  <script src="../../../../prettify.js"></script>
109
109
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/38</span>
28
+ <span class='fraction'>38/38</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/1</span>
35
+ <span class='fraction'>1/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>0/0</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/38</span>
49
+ <span class='fraction'>38/38</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,18 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file low" data-value="messages.hooks.js"><a href="messages.hooks.js.html">messages.hooks.js</a></td>
83
- <td data-value="0" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
82
+ <td class="file high" data-value="messages.hooks.js"><a href="messages.hooks.js.html">messages.hooks.js</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
- <td data-value="0" class="pct low">0%</td>
87
- <td data-value="38" class="abs low">0/38</td>
88
- <td data-value="0" class="pct low">0%</td>
89
- <td data-value="1" class="abs low">0/1</td>
90
- <td data-value="0" class="pct low">0%</td>
91
- <td data-value="1" class="abs low">0/1</td>
92
- <td data-value="0" class="pct low">0%</td>
93
- <td data-value="38" class="abs low">0/38</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="38" class="abs high">38/38</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="1" class="abs high">1/1</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="0" class="abs high">0/0</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="38" class="abs high">38/38</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2024-11-15T21:05:45.936Z
104
+ at 2025-02-18T09:52:45.637Z
105
105
  </div>
106
106
  <script src="../../../../prettify.js"></script>
107
107
  <script>