@kalisio/kdk 2.5.1 → 2.5.3

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 (255) hide show
  1. package/core/api/hooks/hooks.authorisations.js +1 -2
  2. package/core/api/services/authorisations/authorisations.service.js +1 -3
  3. package/core/api/services/index.js +5 -1
  4. package/core/api/services/users/users.hooks.js +4 -3
  5. package/core/client/components/input/KShapePicker.vue +4 -4
  6. package/core/client/utils/index.js +1 -0
  7. package/coverage/core/api/application.js.html +344 -344
  8. package/coverage/core/api/authentication.js.html +79 -79
  9. package/coverage/core/api/db.js.html +167 -167
  10. package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
  11. package/coverage/core/api/hooks/hooks.authorisations.js.html +154 -157
  12. package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
  13. package/coverage/core/api/hooks/hooks.model.js.html +275 -275
  14. package/coverage/core/api/hooks/hooks.push.js.html +34 -34
  15. package/coverage/core/api/hooks/hooks.query.js.html +89 -89
  16. package/coverage/core/api/hooks/hooks.schemas.js.html +13 -13
  17. package/coverage/core/api/hooks/hooks.service.js.html +28 -28
  18. package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
  19. package/coverage/core/api/hooks/hooks.users.js.html +50 -50
  20. package/coverage/core/api/hooks/index.html +51 -51
  21. package/coverage/core/api/hooks/index.js.html +11 -11
  22. package/coverage/core/api/index.html +42 -42
  23. package/coverage/core/api/index.js.html +22 -22
  24. package/coverage/core/api/marshall.js.html +127 -127
  25. package/coverage/core/api/models/index.html +1 -1
  26. package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
  27. package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
  28. package/coverage/core/api/services/account/account.hooks.js.html +42 -42
  29. package/coverage/core/api/services/account/account.service.js.html +34 -34
  30. package/coverage/core/api/services/account/index.html +1 -1
  31. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  32. package/coverage/core/api/services/authorisations/authorisations.service.js.html +87 -93
  33. package/coverage/core/api/services/authorisations/index.html +19 -19
  34. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  35. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  36. package/coverage/core/api/services/databases/index.html +1 -1
  37. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  38. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  39. package/coverage/core/api/services/import-export/index.html +1 -1
  40. package/coverage/core/api/services/index.html +15 -15
  41. package/coverage/core/api/services/index.js.html +97 -85
  42. package/coverage/core/api/services/mailer/index.html +1 -1
  43. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  44. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  45. package/coverage/core/api/services/messages/index.html +1 -1
  46. package/coverage/core/api/services/messages/messages.hooks.js.html +1 -1
  47. package/coverage/core/api/services/push/index.html +1 -1
  48. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  49. package/coverage/core/api/services/push/push.service.js.html +1 -1
  50. package/coverage/core/api/services/storage/index.html +1 -1
  51. package/coverage/core/api/services/storage/storage.hooks.js.html +36 -36
  52. package/coverage/core/api/services/storage/storage.service.js.html +30 -30
  53. package/coverage/core/api/services/users/index.html +7 -7
  54. package/coverage/core/api/services/users/users.hooks.js.html +83 -80
  55. package/coverage/core/api/services/users/users.service.js.html +4 -4
  56. package/coverage/core/common/errors.js.html +2 -2
  57. package/coverage/core/common/index.html +30 -30
  58. package/coverage/core/common/index.js.html +11 -11
  59. package/coverage/core/common/permissions.js.html +187 -187
  60. package/coverage/core/common/schema.js.html +26 -26
  61. package/coverage/core/common/utils.js.html +61 -61
  62. package/coverage/core/common/utils.offline.js.html +6 -6
  63. package/coverage/index.html +173 -173
  64. package/coverage/lcov-report/core/api/application.js.html +344 -344
  65. package/coverage/lcov-report/core/api/authentication.js.html +79 -79
  66. package/coverage/lcov-report/core/api/db.js.html +167 -167
  67. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
  68. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +154 -157
  69. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
  70. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +275 -275
  71. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +34 -34
  72. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +89 -89
  73. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +13 -13
  74. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
  75. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
  76. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +50 -50
  77. package/coverage/lcov-report/core/api/hooks/index.html +51 -51
  78. package/coverage/lcov-report/core/api/hooks/index.js.html +11 -11
  79. package/coverage/lcov-report/core/api/index.html +42 -42
  80. package/coverage/lcov-report/core/api/index.js.html +22 -22
  81. package/coverage/lcov-report/core/api/marshall.js.html +127 -127
  82. package/coverage/lcov-report/core/api/models/index.html +1 -1
  83. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
  84. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
  85. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +42 -42
  86. package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
  87. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  88. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  89. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +87 -93
  90. package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
  91. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  92. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  93. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  94. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  95. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  96. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  97. package/coverage/lcov-report/core/api/services/index.html +15 -15
  98. package/coverage/lcov-report/core/api/services/index.js.html +97 -85
  99. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  100. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  101. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  102. package/coverage/lcov-report/core/api/services/messages/index.html +1 -1
  103. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +1 -1
  104. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  105. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  106. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  107. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  108. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +36 -36
  109. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +30 -30
  110. package/coverage/lcov-report/core/api/services/users/index.html +7 -7
  111. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +83 -80
  112. package/coverage/lcov-report/core/api/services/users/users.service.js.html +4 -4
  113. package/coverage/lcov-report/core/common/errors.js.html +2 -2
  114. package/coverage/lcov-report/core/common/index.html +30 -30
  115. package/coverage/lcov-report/core/common/index.js.html +11 -11
  116. package/coverage/lcov-report/core/common/permissions.js.html +187 -187
  117. package/coverage/lcov-report/core/common/schema.js.html +26 -26
  118. package/coverage/lcov-report/core/common/utils.js.html +61 -61
  119. package/coverage/lcov-report/core/common/utils.offline.js.html +6 -6
  120. package/coverage/lcov-report/index.html +173 -173
  121. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +316 -316
  122. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
  123. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +798 -789
  124. package/coverage/lcov-report/map/api/hooks/index.html +54 -54
  125. package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
  126. package/coverage/lcov-report/map/api/index.html +32 -32
  127. package/coverage/lcov-report/map/api/index.js.html +46 -46
  128. package/coverage/lcov-report/map/api/marshall.js.html +72 -72
  129. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
  130. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +44 -44
  131. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
  132. package/coverage/lcov-report/map/api/models/index.html +65 -65
  133. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
  134. package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +28 -28
  135. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
  136. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
  137. package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
  138. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +172 -172
  139. package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
  140. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  141. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  142. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +160 -160
  143. package/coverage/lcov-report/map/api/services/features/features.service.js.html +117 -117
  144. package/coverage/lcov-report/map/api/services/features/index.html +31 -31
  145. package/coverage/lcov-report/map/api/services/index.html +21 -21
  146. package/coverage/lcov-report/map/api/services/index.js.html +334 -334
  147. package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
  148. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
  149. package/coverage/lcov-report/map/api/services/styles/index.html +21 -21
  150. package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +84 -84
  151. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
  152. package/coverage/lcov-report/map/common/errors.js.html +16 -16
  153. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -267
  154. package/coverage/lcov-report/map/common/grid.js.html +554 -554
  155. package/coverage/lcov-report/map/common/index.html +159 -159
  156. package/coverage/lcov-report/map/common/index.js.html +68 -68
  157. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
  158. package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
  159. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
  160. package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
  161. package/coverage/lcov-report/map/common/permissions.js.html +40 -40
  162. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
  163. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  164. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
  165. package/coverage/lcov-report/map/common/wcs-utils.js.html +338 -338
  166. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
  167. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  168. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  169. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  170. package/coverage/lcov.info +6880 -5908
  171. package/coverage/map/api/hooks/hooks.catalog.js.html +316 -316
  172. package/coverage/map/api/hooks/hooks.features.js.html +218 -218
  173. package/coverage/map/api/hooks/hooks.query.js.html +798 -789
  174. package/coverage/map/api/hooks/index.html +54 -54
  175. package/coverage/map/api/hooks/index.js.html +16 -16
  176. package/coverage/map/api/index.html +32 -32
  177. package/coverage/map/api/index.js.html +46 -46
  178. package/coverage/map/api/marshall.js.html +72 -72
  179. package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
  180. package/coverage/map/api/models/catalog.model.mongodb.js.html +44 -44
  181. package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
  182. package/coverage/map/api/models/index.html +65 -65
  183. package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
  184. package/coverage/map/api/models/styles.model.mongodb.js.html +28 -28
  185. package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
  186. package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
  187. package/coverage/map/api/services/alerts/index.html +32 -32
  188. package/coverage/map/api/services/catalog/catalog.hooks.js.html +172 -172
  189. package/coverage/map/api/services/catalog/index.html +21 -21
  190. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  191. package/coverage/map/api/services/daptiles/index.html +1 -1
  192. package/coverage/map/api/services/features/features.hooks.js.html +160 -160
  193. package/coverage/map/api/services/features/features.service.js.html +117 -117
  194. package/coverage/map/api/services/features/index.html +31 -31
  195. package/coverage/map/api/services/index.html +21 -21
  196. package/coverage/map/api/services/index.js.html +334 -334
  197. package/coverage/map/api/services/projects/index.html +21 -21
  198. package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
  199. package/coverage/map/api/services/styles/index.html +21 -21
  200. package/coverage/map/api/services/styles/styles.hooks.js.html +84 -84
  201. package/coverage/map/common/dynamic-grid-source.js.html +68 -68
  202. package/coverage/map/common/errors.js.html +16 -16
  203. package/coverage/map/common/geotiff-grid-source.js.html +267 -267
  204. package/coverage/map/common/grid.js.html +554 -554
  205. package/coverage/map/common/index.html +159 -159
  206. package/coverage/map/common/index.js.html +68 -68
  207. package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
  208. package/coverage/map/common/moment-utils.js.html +18 -18
  209. package/coverage/map/common/opendap-grid-source.js.html +484 -484
  210. package/coverage/map/common/opendap-utils.js.html +353 -353
  211. package/coverage/map/common/permissions.js.html +40 -40
  212. package/coverage/map/common/time-based-grid-source.js.html +59 -59
  213. package/coverage/map/common/tms-utils.js.html +1 -1
  214. package/coverage/map/common/wcs-grid-source.js.html +190 -190
  215. package/coverage/map/common/wcs-utils.js.html +338 -338
  216. package/coverage/map/common/weacast-grid-source.js.html +345 -345
  217. package/coverage/map/common/wfs-utils.js.html +1 -1
  218. package/coverage/map/common/wms-utils.js.html +1 -1
  219. package/coverage/map/common/wmts-utils.js.html +1 -1
  220. package/coverage/tmp/coverage-151198-1753351220086-0.json +1 -0
  221. package/coverage/tmp/coverage-151210-1753351220070-0.json +1 -0
  222. package/coverage/tmp/coverage-151221-1753351129816-0.json +1 -0
  223. package/coverage/tmp/coverage-151233-1753351129803-0.json +1 -0
  224. package/coverage/tmp/coverage-151240-1753351129770-0.json +1 -0
  225. package/coverage/tmp/coverage-151307-1753351220058-0.json +1 -0
  226. package/coverage/tmp/coverage-151319-1753351220044-0.json +1 -0
  227. package/coverage/tmp/coverage-151326-1753351220010-0.json +1 -0
  228. package/map/api/hooks/hooks.query.js +7 -4
  229. package/map/api/services/styles/styles.hooks.js +1 -1
  230. package/map/client/components/KLayerEditor.vue +4 -0
  231. package/map/client/components/catalog/KLayerCategories.vue +2 -0
  232. package/map/client/components/stickies/KAttribution.vue +8 -7
  233. package/map/client/components/stickies/KLevelSlider.vue +10 -8
  234. package/map/client/components/styles/KStyleEditor.vue +1 -1
  235. package/map/client/components/styles/KStyleManager.vue +7 -1
  236. package/map/client/composables/highlight.js +5 -1
  237. package/map/client/i18n/map_en.json +4 -1
  238. package/map/client/i18n/map_fr.json +5 -2
  239. package/map/client/leaflet/utils/utils.geojson.js +5 -4
  240. package/map/client/mixins/globe/mixin.geojson-layers.js +11 -5
  241. package/map/client/mixins/mixin.activity.js +9 -0
  242. package/map/client/utils/utils.layers.js +0 -2
  243. package/package.json +1 -1
  244. package/test/api/core/index.test.js +49 -60
  245. package/test/api/core/push.test.js +1 -1
  246. package/test/api/core/test-log-2025-06-25.log +9 -0
  247. package/test/api/core/test-log-2025-07-24.log +44 -0
  248. package/test/api/map/test-log-2025-05-27.log +13 -0
  249. package/test/api/map/test-log-2025-06-23.log +7 -0
  250. package/test/api/map/test-log-2025-07-24.log +11 -0
  251. package/coverage/tmp/coverage-323534-1747828879483-0.json +0 -1
  252. package/coverage/tmp/coverage-323546-1747828879453-0.json +0 -1
  253. package/coverage/tmp/coverage-323557-1747828879439-0.json +0 -1
  254. package/coverage/tmp/coverage-323569-1747828879416-0.json +0 -1
  255. package/coverage/tmp/coverage-323576-1747828879390-0.json +0 -1
@@ -284,8 +284,7 @@ export function updateAbilities (options = {}) {
284
284
  if (options.fetchSubject) {
285
285
  subject = await app.getService('users').get(subject._id.toString())
286
286
  }
287
- const abilities = await authorisationService.updateAbilities(subject)
288
- debug('Abilities updated on subject', subject, abilities.rules)
287
+ await authorisationService.updateAbilities(subject)
289
288
  return hook
290
289
  }
291
290
  }
@@ -42,7 +42,6 @@ export default {
42
42
  }, {
43
43
  user: params.user
44
44
  })
45
- await this.updateAbilities(subject)
46
45
  debug('Authorisation ' + data.permissions + ' set for subject ' + subject._id + ' on resource ' + params.resource._id + ' with scope ' + scopeName)
47
46
  return subject
48
47
  }))
@@ -75,7 +74,6 @@ export default {
75
74
  }, {
76
75
  user: params.user
77
76
  })
78
- await this.updateAbilities(subject)
79
77
  debug('Authorisation unset for subject ' + subject._id + ' on resource ' + id + ' with scope ' + scopeName)
80
78
  return subject
81
79
  }
@@ -119,7 +117,7 @@ export default {
119
117
  const abilities = await defineAbilities(subject, this.app)
120
118
 
121
119
  if (cacheKey) {
122
- debug('Updating user abilities of subject ' + (subject ? subject._id : ANONYMOUS_USER) + ' with cache key ' + cacheKey)
120
+ debug('Updating abilities of subject ' + (subject ? subject._id : ANONYMOUS_USER) + ' with cache key ' + cacheKey)
123
121
  this.cache.set(cacheKey, abilities)
124
122
  }
125
123
 
@@ -18,7 +18,11 @@ export function getServiceNameAndContext (servicePath) {
18
18
  // Then without context if any
19
19
  const lastSlash = name.lastIndexOf('/')
20
20
  const contextId = (lastSlash >= 0 ? name.substring(0, lastSlash) : '')
21
- if (contextId && ObjectID.isValid(contextId)) {
21
+ // Check if a string is a valid MongoDB Object ID.
22
+ // We don't use ObjectID.isValid as it returns true for any string that contains 12 characters: https://jira.mongodb.org/browse/NODE-4912.
23
+ // Regular expression that checks for hex value
24
+ const checkForHexRegExp = /^[0-9a-fA-F]{24}$/
25
+ if (contextId && (contextId.length === 24) && checkForHexRegExp.test(contextId)) {
22
26
  name = name.replace(contextId + '/', '')
23
27
  return { name, contextId }
24
28
  } else {
@@ -56,9 +56,10 @@ export default {
56
56
  ],
57
57
  find: [],
58
58
  get: [],
59
- create: [updateAbilities()],
60
- update: [],
61
- patch: [sendNewSubscriptionEmail],
59
+ create: [updateAbilities({ subjectAsItem: true })],
60
+ update: [updateAbilities({ subjectAsItem: true })],
61
+ // Fetch user in this case as we might only have partial data and miss permission properties
62
+ patch: [updateAbilities({ subjectAsItem: true, fetchSubject: true }), sendNewSubscriptionEmail],
62
63
  remove: []
63
64
  },
64
65
 
@@ -29,9 +29,9 @@ import KShape from '../media/KShape.vue'
29
29
  const props = defineProps({
30
30
  modelValue: {
31
31
  type: String,
32
- default: 'rect',
32
+ default: 'circle',
33
33
  validator: (value) => {
34
- return _.keys(kdkCoreUtils.Shapes).includes(value)
34
+ return _.concat(['none'], _.keys(kdkCoreUtils.Shapes)).includes(value)
35
35
  }
36
36
  },
37
37
  size: {
@@ -45,8 +45,8 @@ const emit = defineEmits(['update:modelValue'])
45
45
 
46
46
  // Data
47
47
  const popupProxyRef = ref(null)
48
- const shape = ref(props.modelValue)
49
- const shapeTypes = _.keys(kdkCoreUtils.Shapes)
48
+ const shapeTypes = _.concat(['none'], _.keys(kdkCoreUtils.Shapes))
49
+ const shape = ref(shapeTypes.includes(props.modelValue) ? props.modelValue : 'circle')
50
50
  const shapeSizes = {
51
51
  xs: 14,
52
52
  sm: 16,
@@ -188,6 +188,7 @@ export function dotify (object) {
188
188
  const checkForHexRegExp = /^[0-9a-fA-F]{24}$/
189
189
 
190
190
  // Check if a string is a valid MongoDB Object ID
191
+ // We don't use ObjectID.isValid as it returns true for any string that contains 12 characters: https://jira.mongodb.org/browse/NODE-4912.
191
192
  export function isObjectID (id) {
192
193
  return (id.length === 24 && checkForHexRegExp.test(id))
193
194
  }