@kalisio/kdk 2.6.4 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/core/api/application.js +2 -4
  2. package/core/api/authentication.js +2 -3
  3. package/core/api/db.js +10 -2
  4. package/core/api/hooks/hooks.authorisations.js +4 -2
  5. package/core/api/hooks/hooks.push.js +6 -2
  6. package/core/api/hooks/hooks.query.js +29 -12
  7. package/core/api/hooks/hooks.users.js +30 -17
  8. package/core/api/models/configurations.model.mongodb.js +4 -0
  9. package/core/api/services/authorisations/authorisations.service.js +1 -1
  10. package/core/api/services/configurations/configurations.hooks.js +33 -0
  11. package/core/api/services/index.js +41 -7
  12. package/core/api/services/messages/messages.hooks.js +9 -3
  13. package/core/client/api.js +14 -1
  14. package/core/client/capabilities.js +1 -6
  15. package/core/client/components/KAvatar.vue +24 -20
  16. package/core/client/components/account/KProfile.vue +10 -71
  17. package/core/client/components/account/index.js +0 -2
  18. package/core/client/components/app/KSettings.vue +1 -0
  19. package/core/client/components/collection/KBoard.vue +4 -3
  20. package/core/client/components/collection/KCardSection.vue +1 -0
  21. package/core/client/components/collection/KGrid.vue +2 -0
  22. package/core/client/components/collection/KTable.vue +5 -1
  23. package/core/client/components/collection/KTimeLine.vue +9 -1
  24. package/core/client/components/collection/index.js +0 -2
  25. package/core/client/components/form/KChipsField.vue +2 -1
  26. package/core/client/components/form/KEmailField.vue +1 -0
  27. package/core/client/components/form/KFileField.vue +22 -1
  28. package/core/client/components/form/KForm.vue +2 -0
  29. package/core/client/components/form/KItemField.vue +1 -0
  30. package/core/client/components/form/KNumberField.vue +1 -0
  31. package/core/client/components/form/KPasswordField.vue +1 -0
  32. package/core/client/components/form/KPhoneField.vue +1 -0
  33. package/core/client/components/form/KPropertyItemField.vue +1 -0
  34. package/core/client/components/form/KResolutionField.vue +1 -0
  35. package/core/client/components/form/KSelectField.vue +31 -0
  36. package/core/client/components/form/KTagField.vue +1 -0
  37. package/core/client/components/form/KTextField.vue +1 -0
  38. package/core/client/components/form/KTokenField.vue +1 -0
  39. package/core/client/components/form/KUnitField.vue +1 -0
  40. package/core/client/components/form/KUrlField.vue +1 -0
  41. package/core/client/components/graphics/KIcon.vue +3 -4
  42. package/core/client/components/layout/KPage.vue +1 -0
  43. package/core/client/components/layout/KWindow.vue +6 -3
  44. package/core/client/components/messages/KMessageComposer.vue +2 -1
  45. package/core/client/components/messages/KMessagesTimeLine.vue +1 -1
  46. package/core/client/components/time/KDate.vue +1 -2
  47. package/core/client/components/time/KDateTime.vue +11 -11
  48. package/core/client/components/time/KTime.vue +1 -1
  49. package/core/client/composables/collection.js +33 -8
  50. package/core/client/composables/errors.js +1 -1
  51. package/core/client/composables/layout.js +9 -9
  52. package/core/client/configurations.js +50 -0
  53. package/core/client/exporter.js +1 -1
  54. package/core/client/i18n/core_en.json +6 -39
  55. package/core/client/i18n/core_fr.json +6 -39
  56. package/core/client/index.js +2 -0
  57. package/core/client/layout.js +8 -8
  58. package/core/client/mixins/mixin.base-activity.js +5 -2
  59. package/core/client/mixins/mixin.base-field.js +3 -3
  60. package/core/client/search.js +2 -1
  61. package/core/client/utils/utils.collection.js +8 -8
  62. package/core/client/utils/utils.items.js +4 -0
  63. package/core/client/utils/utils.push.js +3 -3
  64. package/core/client/utils/utils.session.js +7 -5
  65. package/core/client/utils/utils.shapes.js +38 -7
  66. package/core/client/utils/utils.time.js +21 -22
  67. package/core/common/schemas/users.update-profile.json +3 -2
  68. package/coverage/core/api/application.js.html +392 -398
  69. package/coverage/core/api/authentication.js.html +352 -187
  70. package/coverage/core/api/db.js.html +165 -126
  71. package/coverage/core/api/hooks/hooks.authentication.js.html +22 -196
  72. package/coverage/core/api/hooks/hooks.authorisations.js.html +383 -662
  73. package/coverage/core/api/hooks/hooks.logger.js.html +41 -41
  74. package/coverage/core/api/hooks/hooks.model.js.html +113 -101
  75. package/coverage/core/api/hooks/hooks.push.js.html +124 -97
  76. package/coverage/core/api/hooks/hooks.query.js.html +292 -217
  77. package/coverage/core/api/hooks/hooks.schemas.js.html +123 -123
  78. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  79. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  80. package/coverage/core/api/hooks/{hooks.groups.js.html → hooks.tags.js.html} +100 -76
  81. package/coverage/core/api/hooks/hooks.users.js.html +255 -447
  82. package/coverage/core/api/hooks/index.html +107 -122
  83. package/coverage/core/api/hooks/index.js.html +4 -10
  84. package/coverage/core/api/index.html +46 -61
  85. package/coverage/core/api/index.js.html +9 -9
  86. package/coverage/core/api/marshall.js.html +9 -9
  87. package/coverage/core/api/models/{organisations.model.mongodb.js.html → configurations.model.mongodb.js.html} +10 -7
  88. package/coverage/core/api/models/index.html +35 -50
  89. package/coverage/core/api/models/messages.model.mongodb.js.html +39 -27
  90. package/coverage/core/api/models/tags.model.mongodb.js.html +26 -32
  91. package/coverage/core/api/models/users.model.mongodb.js.html +10 -10
  92. package/coverage/core/api/services/account/account.hooks.js.html +5 -5
  93. package/coverage/core/api/services/account/account.service.js.html +127 -127
  94. package/coverage/core/api/services/account/index.html +22 -22
  95. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  96. package/coverage/core/api/services/authorisations/authorisations.service.js.html +213 -222
  97. package/coverage/core/api/services/authorisations/index.html +21 -21
  98. package/coverage/core/api/services/{organisations/organisations.hooks.js.html → configurations/configurations.hooks.js.html} +16 -10
  99. package/coverage/core/api/services/{groups → configurations}/index.html +8 -8
  100. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  101. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  102. package/coverage/core/api/services/databases/index.html +1 -1
  103. package/coverage/core/api/services/import-export/import-export.hooks.js.html +76 -76
  104. package/coverage/core/api/services/import-export/import-export.service.js.html +32 -32
  105. package/coverage/core/api/services/import-export/index.html +32 -32
  106. package/coverage/core/api/services/index.html +21 -21
  107. package/coverage/core/api/services/index.js.html +313 -142
  108. package/coverage/core/api/services/mailer/index.html +32 -32
  109. package/coverage/core/api/services/mailer/mailer.hooks.js.html +80 -80
  110. package/coverage/core/api/services/mailer/mailer.service.js.html +32 -32
  111. package/coverage/core/api/services/messages/index.html +21 -21
  112. package/coverage/core/api/services/messages/messages.hooks.js.html +112 -76
  113. package/coverage/core/api/services/push/index.html +32 -32
  114. package/coverage/core/api/services/push/push.hooks.js.html +80 -80
  115. package/coverage/core/api/services/push/push.service.js.html +34 -34
  116. package/coverage/core/api/services/storage/index.html +29 -29
  117. package/coverage/core/api/services/storage/storage.hooks.js.html +80 -80
  118. package/coverage/core/api/services/storage/storage.service.js.html +29 -29
  119. package/coverage/core/api/services/tags/index.html +21 -21
  120. package/coverage/core/api/services/tags/tags.hooks.js.html +119 -71
  121. package/coverage/core/api/services/users/index.html +27 -12
  122. package/coverage/core/api/services/users/users.hooks.js.html +14 -11
  123. package/coverage/core/api/services/users/users.service.js.html +100 -0
  124. package/coverage/core/common/errors.js.html +1 -1
  125. package/coverage/core/common/index.html +42 -27
  126. package/coverage/core/common/index.js.html +1 -1
  127. package/coverage/core/common/permissions.js.html +166 -472
  128. package/coverage/core/common/schema.js.html +4 -4
  129. package/coverage/core/common/utils.js.html +31 -25
  130. package/coverage/core/common/utils.offline.js.html +199 -0
  131. package/coverage/index.html +192 -192
  132. package/coverage/lcov-report/core/api/application.js.html +392 -398
  133. package/coverage/lcov-report/core/api/authentication.js.html +352 -187
  134. package/coverage/lcov-report/core/api/db.js.html +165 -126
  135. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +22 -196
  136. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +383 -662
  137. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +41 -41
  138. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +113 -101
  139. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +124 -97
  140. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +292 -217
  141. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +123 -123
  142. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  143. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  144. package/coverage/lcov-report/core/api/hooks/{hooks.groups.js.html → hooks.tags.js.html} +100 -76
  145. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +255 -447
  146. package/coverage/lcov-report/core/api/hooks/index.html +107 -122
  147. package/coverage/lcov-report/core/api/hooks/index.js.html +4 -10
  148. package/coverage/lcov-report/core/api/index.html +46 -61
  149. package/coverage/lcov-report/core/api/index.js.html +9 -9
  150. package/coverage/lcov-report/core/api/marshall.js.html +9 -9
  151. package/coverage/lcov-report/core/api/models/{organisations.model.mongodb.js.html → configurations.model.mongodb.js.html} +10 -7
  152. package/coverage/lcov-report/core/api/models/index.html +35 -50
  153. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +39 -27
  154. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +26 -32
  155. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +10 -10
  156. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +5 -5
  157. package/coverage/lcov-report/core/api/services/account/account.service.js.html +127 -127
  158. package/coverage/lcov-report/core/api/services/account/index.html +22 -22
  159. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  160. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +213 -222
  161. package/coverage/lcov-report/core/api/services/authorisations/index.html +21 -21
  162. package/coverage/lcov-report/core/api/services/{groups/groups.hooks.js.html → configurations/configurations.hooks.js.html} +16 -10
  163. package/coverage/lcov-report/core/api/services/{groups → configurations}/index.html +8 -8
  164. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  165. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  166. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  167. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +76 -76
  168. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +32 -32
  169. package/coverage/lcov-report/core/api/services/import-export/index.html +32 -32
  170. package/coverage/lcov-report/core/api/services/index.html +21 -21
  171. package/coverage/lcov-report/core/api/services/index.js.html +313 -142
  172. package/coverage/lcov-report/core/api/services/mailer/index.html +32 -32
  173. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +80 -80
  174. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +32 -32
  175. package/coverage/lcov-report/core/api/services/messages/index.html +21 -21
  176. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +112 -76
  177. package/coverage/lcov-report/core/api/services/push/index.html +32 -32
  178. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +80 -80
  179. package/coverage/lcov-report/core/api/services/push/push.service.js.html +34 -34
  180. package/coverage/lcov-report/core/api/services/storage/index.html +29 -29
  181. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +80 -80
  182. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +29 -29
  183. package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
  184. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +119 -71
  185. package/coverage/lcov-report/core/api/services/users/index.html +27 -12
  186. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +14 -11
  187. package/coverage/lcov-report/core/api/services/users/users.service.js.html +100 -0
  188. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  189. package/coverage/lcov-report/core/common/index.html +42 -27
  190. package/coverage/lcov-report/core/common/index.js.html +1 -1
  191. package/coverage/lcov-report/core/common/permissions.js.html +166 -472
  192. package/coverage/lcov-report/core/common/schema.js.html +4 -4
  193. package/coverage/lcov-report/core/common/utils.js.html +31 -25
  194. package/coverage/lcov-report/core/common/utils.offline.js.html +199 -0
  195. package/coverage/lcov-report/index.html +192 -192
  196. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +169 -31
  197. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
  198. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +215 -35
  199. package/coverage/lcov-report/map/api/hooks/index.html +7 -7
  200. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  201. package/coverage/lcov-report/map/api/index.html +1 -1
  202. package/coverage/lcov-report/map/api/index.js.html +1 -1
  203. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  204. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  205. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +82 -7
  206. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  207. package/coverage/lcov-report/map/api/models/index.html +22 -7
  208. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
  209. package/coverage/lcov-report/{core/api/models/groups.model.mongodb.js.html → map/api/models/styles.model.mongodb.js.html} +10 -7
  210. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  211. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  212. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  213. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +39 -12
  214. package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
  215. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  216. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  217. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +86 -11
  218. package/coverage/lcov-report/map/api/services/features/features.service.js.html +307 -4
  219. package/coverage/lcov-report/map/api/services/features/index.html +7 -7
  220. package/coverage/lcov-report/map/api/services/index.html +5 -5
  221. package/coverage/lcov-report/map/api/services/index.js.html +326 -50
  222. package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
  223. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
  224. package/coverage/{core/api/services/organisations → lcov-report/map/api/services/styles}/index.html +10 -25
  225. package/coverage/lcov-report/{core/api/services/organisations/organisations.hooks.js.html → map/api/services/styles/styles.hooks.js.html} +45 -12
  226. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  227. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  228. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +7 -10
  229. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  230. package/coverage/lcov-report/map/common/index.html +19 -19
  231. package/coverage/lcov-report/map/common/index.js.html +1 -1
  232. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  233. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  234. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  235. package/coverage/lcov-report/map/common/opendap-utils.js.html +4 -7
  236. package/coverage/lcov-report/map/common/permissions.js.html +10 -4
  237. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  238. package/coverage/lcov-report/map/common/tms-utils.js.html +9 -12
  239. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +3 -3
  240. package/coverage/lcov-report/map/common/wcs-utils.js.html +12 -15
  241. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +2 -2
  242. package/coverage/lcov-report/map/common/wfs-utils.js.html +14 -17
  243. package/coverage/lcov-report/map/common/wms-utils.js.html +30 -12
  244. package/coverage/lcov-report/map/common/wmts-utils.js.html +10 -13
  245. package/coverage/lcov.info +4157 -3816
  246. package/coverage/map/api/hooks/hooks.catalog.js.html +169 -31
  247. package/coverage/map/api/hooks/hooks.features.js.html +1 -1
  248. package/coverage/map/api/hooks/hooks.query.js.html +215 -35
  249. package/coverage/map/api/hooks/index.html +7 -7
  250. package/coverage/map/api/hooks/index.js.html +1 -1
  251. package/coverage/map/api/index.html +1 -1
  252. package/coverage/map/api/index.js.html +1 -1
  253. package/coverage/map/api/marshall.js.html +1 -1
  254. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  255. package/coverage/map/api/models/catalog.model.mongodb.js.html +82 -7
  256. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  257. package/coverage/map/api/models/index.html +22 -7
  258. package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
  259. package/coverage/{core/api/models/groups.model.mongodb.js.html → map/api/models/styles.model.mongodb.js.html} +10 -7
  260. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  261. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  262. package/coverage/map/api/services/alerts/index.html +1 -1
  263. package/coverage/map/api/services/catalog/catalog.hooks.js.html +39 -12
  264. package/coverage/map/api/services/catalog/index.html +5 -5
  265. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  266. package/coverage/map/api/services/daptiles/index.html +1 -1
  267. package/coverage/map/api/services/features/features.hooks.js.html +86 -11
  268. package/coverage/map/api/services/features/features.service.js.html +307 -4
  269. package/coverage/map/api/services/features/index.html +7 -7
  270. package/coverage/map/api/services/index.html +5 -5
  271. package/coverage/map/api/services/index.js.html +326 -50
  272. package/coverage/map/api/services/projects/index.html +1 -1
  273. package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
  274. package/coverage/{lcov-report/core/api/services/organisations → map/api/services/styles}/index.html +10 -25
  275. package/coverage/{core/api/services/groups/groups.hooks.js.html → map/api/services/styles/styles.hooks.js.html} +45 -12
  276. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  277. package/coverage/map/common/errors.js.html +1 -1
  278. package/coverage/map/common/geotiff-grid-source.js.html +7 -10
  279. package/coverage/map/common/grid.js.html +1 -1
  280. package/coverage/map/common/index.html +19 -19
  281. package/coverage/map/common/index.js.html +1 -1
  282. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  283. package/coverage/map/common/moment-utils.js.html +1 -1
  284. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  285. package/coverage/map/common/opendap-utils.js.html +4 -7
  286. package/coverage/map/common/permissions.js.html +10 -4
  287. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  288. package/coverage/map/common/tms-utils.js.html +9 -12
  289. package/coverage/map/common/wcs-grid-source.js.html +3 -3
  290. package/coverage/map/common/wcs-utils.js.html +12 -15
  291. package/coverage/map/common/weacast-grid-source.js.html +2 -2
  292. package/coverage/map/common/wfs-utils.js.html +14 -17
  293. package/coverage/map/common/wms-utils.js.html +30 -12
  294. package/coverage/map/common/wmts-utils.js.html +10 -13
  295. package/coverage/tmp/coverage-1028514-1773134124472-0.json +1 -0
  296. package/coverage/tmp/coverage-1028526-1773134124448-0.json +1 -0
  297. package/coverage/tmp/coverage-1028537-1773134124431-0.json +1 -0
  298. package/coverage/tmp/coverage-1028549-1773134124401-0.json +1 -0
  299. package/coverage/tmp/coverage-1028556-1773134124353-0.json +1 -0
  300. package/extras/configs/widgets.top.js +3 -3
  301. package/extras/tests/core/collection.mjs +2 -9
  302. package/extras/tours/pane.top.js +0 -9
  303. package/map/api/hooks/hooks.catalog.js +18 -4
  304. package/map/api/services/catalog/catalog.hooks.js +3 -0
  305. package/map/api/services/features/features.hooks.js +3 -1
  306. package/map/api/services/index.js +2 -6
  307. package/map/api/services/styles/styles.hooks.js +6 -1
  308. package/map/client/components/KFeatureActionButton.vue +9 -3
  309. package/map/client/components/KFeaturesFilterManager.vue +5 -5
  310. package/map/client/components/KFilterCondition.vue +17 -10
  311. package/map/client/components/KLayerEditor.vue +49 -39
  312. package/map/client/components/KMeasureTool.vue +7 -1
  313. package/map/client/components/KTimezoneMap.vue +29 -9
  314. package/map/client/components/catalog/KLayersPanel.vue +26 -16
  315. package/map/client/components/catalog/KLayersSelector.vue +13 -2
  316. package/map/client/components/catalog/KViewsPanel.vue +5 -4
  317. package/map/client/components/form/KSelectLayersField.vue +28 -17
  318. package/map/client/components/form/KSelectViewsField.vue +18 -9
  319. package/map/client/components/form/KTimezoneField.vue +1 -2
  320. package/map/client/components/legend/KVariablesLegend.vue +10 -1
  321. package/map/client/components/location/KLocationCardSection.vue +7 -2
  322. package/map/client/components/location/KLocationMap.vue +31 -7
  323. package/map/client/components/selection/KSelectedLayerFeatures.vue +2 -2
  324. package/map/client/components/stickies/KZoomControl.vue +1 -1
  325. package/map/client/components/styles/KStyleManager.vue +4 -1
  326. package/map/client/components/widget/KTimeSeries.vue +174 -497
  327. package/map/client/components/widget/KTimeSeriesSelector.vue +72 -0
  328. package/map/client/components/widget/KTimeSeriesToolbar.vue +83 -0
  329. package/map/client/composables/catalog.js +6 -10
  330. package/map/client/composables/highlight.js +12 -9
  331. package/map/client/composables/project.js +1 -1
  332. package/map/client/composables/selection.js +8 -7
  333. package/map/client/composables/weather.js +9 -2
  334. package/map/client/geolocation.js +8 -5
  335. package/map/client/i18n/map_en.json +11 -10
  336. package/map/client/i18n/map_fr.json +10 -9
  337. package/map/client/leaflet/TiledFeatureLayer.js +85 -82
  338. package/map/client/leaflet/utils/utils.geojson.js +3 -3
  339. package/map/client/mixins/globe/mixin.base-globe.js +15 -6
  340. package/map/client/mixins/globe/mixin.geojson-layers.js +27 -18
  341. package/map/client/mixins/map/mixin.edit-layers.js +9 -1
  342. package/map/client/mixins/map/mixin.pmtiles-layers.js +118 -29
  343. package/map/client/mixins/map/mixin.tiled-mesh-layers.js +12 -5
  344. package/map/client/mixins/map/mixin.tiled-wind-layers.js +19 -10
  345. package/map/client/mixins/mixin.activity.js +23 -30
  346. package/map/client/mixins/mixin.feature-selection.js +41 -5
  347. package/map/client/planets.js +1 -1
  348. package/map/client/readers/reader.kml.js +2 -3
  349. package/map/client/utils/utils.catalog.js +36 -10
  350. package/map/client/utils/utils.layers.js +39 -8
  351. package/map/client/utils/utils.project.js +4 -0
  352. package/map/client/utils/utils.style.js +37 -7
  353. package/map/client/utils/utils.time-series.js +215 -6
  354. package/map/common/schemas/catalog.update.json +1 -1
  355. package/map/common/weacast-grid-source.js +1 -1
  356. package/package.json +3 -3
  357. package/scripts/kash/CHANGELOG.md +0 -4
  358. package/scripts/kash/README.md +0 -9
  359. package/scripts/kash/kash.sh +45 -40
  360. package/scripts/kash/scripts/run_tests.sh +1 -4
  361. package/test/api/core/authentication.test.js +9 -4
  362. package/test/api/core/config/default.cjs +1 -0
  363. package/test/api/core/hooks.test.js +6 -0
  364. package/test/api/core/index.test.js +43 -18
  365. package/test/api/core/push.test.js +8 -8
  366. package/test/api/core/test-log-2026-03-10.log +60 -0
  367. package/test/api/core/users.test.js +384 -0
  368. package/test/api/map/grid-sources.test.js +1 -1
  369. package/test/api/map/test-log-2026-03-10.log +56 -0
  370. package/vite/package.json +11 -2
  371. package/vite/test/core/composables.test.js +77 -0
  372. package/vite/vitest.config.js +13 -0
  373. package/vite/yarn.lock +1096 -18
  374. package/.vscode/settings.json +0 -5
  375. package/core/client/components/account/KAccount.vue +0 -68
  376. package/core/client/components/account/KDeleteAccountManager.vue +0 -62
  377. package/core/client/components/account/KEmailManager.vue +0 -128
  378. package/core/client/components/account/KPasswordManager.vue +0 -90
  379. package/core/client/components/account/KVerifyEmailManager.vue +0 -105
  380. package/core/client/components/collection/KColumn.vue +0 -227
  381. package/core/client/components/collection/KHistory.vue +0 -113
  382. package/core/client/components/collection/KHistoryEntry.vue +0 -109
  383. package/coverage/core/api/hooks/hooks.organisations.js.html +0 -541
  384. package/coverage/core/api/services/organisations/organisations.service.js.html +0 -343
  385. package/coverage/core/api/utils.js.html +0 -118
  386. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +0 -541
  387. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +0 -343
  388. package/coverage/lcov-report/core/api/utils.js.html +0 -118
  389. package/coverage/tmp/coverage-151166-1723543324307-0.json +0 -1
  390. package/coverage/tmp/coverage-151178-1723543324283-0.json +0 -1
  391. package/coverage/tmp/coverage-151189-1723543324271-0.json +0 -1
  392. package/coverage/tmp/coverage-151201-1723543324248-0.json +0 -1
  393. package/coverage/tmp/coverage-151208-1723543324227-0.json +0 -1
  394. package/scripts/kash/LICENSE +0 -21
  395. package/test/api/core/test-log-2024-04-22.log +0 -84
  396. package/test/api/core/test-log-2024-04-23.log +0 -23
  397. package/test/api/core/test-log-2024-08-13.log +0 -3
  398. package/test/api/map/test-log-2025-03-08.log +0 -0
@@ -276,7 +276,7 @@ describe('map:grid-source', () => {
276
276
 
277
277
  it('is possible to create a Weacast source from makeGridSource', () => {
278
278
  const [key, conf] = extractGridSourceConfig(weacastOptions)
279
- source = makeGridSource(key, { weacastApi: weacastOptions.weacastApi })
279
+ source = makeGridSource(key, { planetApi: weacastOptions.weacastApi })
280
280
  expect(source).to.exist
281
281
  expect(conf).to.deep.equal(weacastOptions.weacast)
282
282
  sourceConfig = conf
@@ -0,0 +1,56 @@
1
+ {"level":"info","message":"Logger configured"}
2
+ {"level":"info","message":"Initializing weacast-gfs plugin"}
3
+ {"level":"info","message":"Initializing gfs-world forecast"}
4
+ {"level":"info","message":"Checking for up-to-date forecast data on gfs-world/u-wind"}
5
+ {"level":"info","message":"Checking for up-to-date forecast data on gfs-world/v-wind"}
6
+ {"level":"error","message":"Could not update gfs-world/v-wind forecast at 2026-03-10T06:00:00Z for run 2026-03-10T00:00:00Z"}
7
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/v-wind/2026-03-10_00-00-00_2026-03-10_06-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
8
+ {"level":"error","message":"Could not update gfs-world/u-wind forecast at 2026-03-10T06:00:00Z for run 2026-03-10T00:00:00Z"}
9
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/u-wind/2026-03-10_00-00-00_2026-03-10_06-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
10
+ {"level":"error","message":"Could not update gfs-world/v-wind forecast at 2026-03-10T06:00:00Z for run 2026-03-09T18:00:00Z"}
11
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/v-wind/2026-03-09_18-00-00_2026-03-10_06-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
12
+ {"level":"error","message":"Could not update gfs-world/u-wind forecast at 2026-03-10T06:00:00Z for run 2026-03-09T18:00:00Z"}
13
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/u-wind/2026-03-09_18-00-00_2026-03-10_06-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
14
+ {"level":"error","message":"Could not update gfs-world/v-wind forecast at 2026-03-10T06:00:00Z for run 2026-03-09T12:00:00Z"}
15
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/v-wind/2026-03-09_12-00-00_2026-03-10_06-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
16
+ {"level":"error","message":"Could not update gfs-world/u-wind forecast at 2026-03-10T06:00:00Z for run 2026-03-09T12:00:00Z"}
17
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/u-wind/2026-03-09_12-00-00_2026-03-10_06-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
18
+ {"level":"error","message":"Could not update gfs-world/v-wind forecast at 2026-03-10T09:00:00Z for run 2026-03-10T00:00:00Z"}
19
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/v-wind/2026-03-10_00-00-00_2026-03-10_09-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
20
+ {"level":"error","message":"Could not update gfs-world/u-wind forecast at 2026-03-10T09:00:00Z for run 2026-03-10T00:00:00Z"}
21
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/u-wind/2026-03-10_00-00-00_2026-03-10_09-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
22
+ {"level":"error","message":"Could not update gfs-world/v-wind forecast at 2026-03-10T09:00:00Z for run 2026-03-09T18:00:00Z"}
23
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/v-wind/2026-03-09_18-00-00_2026-03-10_09-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
24
+ {"level":"error","message":"Could not update gfs-world/v-wind forecast at 2026-03-10T09:00:00Z for run 2026-03-09T12:00:00Z"}
25
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/v-wind/2026-03-09_12-00-00_2026-03-10_09-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
26
+ {"level":"info","message":"Completed forecast data update on gfs-world/v-wind"}
27
+ {"level":"error","message":"Could not update gfs-world/u-wind forecast at 2026-03-10T09:00:00Z for run 2026-03-09T18:00:00Z"}
28
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/u-wind/2026-03-09_18-00-00_2026-03-10_09-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
29
+ {"level":"error","message":"Could not update gfs-world/u-wind forecast at 2026-03-10T09:00:00Z for run 2026-03-09T12:00:00Z"}
30
+ {"level":"error","message":"Command failed: /home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json --data /home/robin/Taff/kalisio/kdk/test/api/map/forecast-data/gfs-world/u-wind/2026-03-09_12-00-00_2026-03-10_09-00-00.grib\n/home/robin/Taff/kalisio/kdk/node_modules/@weacast/grib2json/bin/grib2json: 3: /bin/java: not found\n"}
31
+ {"level":"info","message":"Completed forecast data update on gfs-world/u-wind"}
32
+ {"level":"error","message":"Cannot check alert 69afde354d314fa3bd9e24a8 as no data is available for gfs-world"}
33
+ {"level":"error","message":"Cannot check alert 69afde354d314fa3bd9e24a8 as no data is available for gfs-world"}
34
+ {"level":"error","message":"Cannot check alert 69afde354d314fa3bd9e24a8 as no data is available for gfs-world"}
35
+ {"level":"error","message":"Cannot check alert 69afde444d314fa3bd9e24a9 as no data is available for gfs-world"}
36
+ {"level":"error","message":"Cannot check alert 69afde444d314fa3bd9e24a9 as no data is available for gfs-world"}
37
+ {"level":"error","message":"Cannot check alert 69afde444d314fa3bd9e24a9 as no data is available for gfs-world"}
38
+ {"level":"error","message":"Cannot check alert 69afde534d314fa3bd9e24aa as no data is available for gfs-world"}
39
+ {"level":"error","message":"Cannot check alert 69afde724d314fa3bd9e29ed as no data is available for features service vigicrues-observations"}
40
+ {"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
41
+ {"level":"info","message":"Logger configured"}
42
+ {"level":"error","message":"error: api/vigicrues-observations - Method: find: You are not allowed to use $accumulator operator"}
43
+ {"level":"error","message":"error: api/vigicrues-observations - Method: find: You are not allowed to use $function operator"}
44
+ {"level":"info","message":"Logger configured"}
45
+ {"level":"info","message":"Initializing weacast-gfs plugin"}
46
+ {"level":"info","message":"Initializing gfs-world forecast"}
47
+ {"level":"info","message":"Checking for up-to-date forecast data on gfs-world/u-wind"}
48
+ {"level":"info","message":"Checking for up-to-date forecast data on gfs-world/v-wind"}
49
+ {"level":"info","message":"Completed forecast data update on gfs-world/v-wind"}
50
+ {"level":"info","message":"Completed forecast data update on gfs-world/u-wind"}
51
+ {"level":"error","message":"Cannot check alert 69afe195ae25fbb35c793f22 as no data is available for gfs-world"}
52
+ {"level":"error","message":"Cannot check alert 69afe1b3ae25fbb35c794465 as no data is available for features service vigicrues-observations"}
53
+ {"level":"error","message":"error: api/catalog - Method: create: Object with name equals to dummy already exist for service catalog"}
54
+ {"level":"info","message":"Logger configured"}
55
+ {"level":"error","message":"error: api/vigicrues-observations - Method: find: You are not allowed to use $accumulator operator"}
56
+ {"level":"error","message":"error: api/vigicrues-observations - Method: find: You are not allowed to use $function operator"}
package/vite/package.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "node": ">= 16.0.0"
38
38
  },
39
39
  "scripts": {
40
+ "fix-protomaps-leaflet": "fix-esm-import-path node_modules/protomaps-leaflet/dist/index.js",
40
41
  "build:app": "cross-env BUILD_MODE=app vite build",
41
42
  "build:app:globe": "cross-env BUILD_MODE=app GLOBE=1 vite build",
42
43
  "extras:css": "shx mkdir -p ../client/css && shx cp -R ../extras/css/* ../client/css",
@@ -47,7 +48,9 @@
47
48
  "build:lib:globe:debug": "cross-env BUILD_MODE=lib GLOBE=1 DEBUG=1 vite build",
48
49
  "build:lib": "cross-env BUILD_MODE=lib vite build",
49
50
  "build:lib:globe": "cross-env BUILD_MODE=lib GLOBE=1 vite build",
50
- "build:libs": "npm run build:lib:extras && npm run build:lib:debug && npm run build:lib:globe:debug && npm run build:lib && npm run build:lib:globe",
51
+ "build:libs": "npm run build:lib:extras && npm run build:lib:debug && npm run build:lib:globe:debug && npm run fix-protomaps-leaflet && npm run build:lib && npm run build:lib:globe",
52
+ "test:core": "vitest --run --dir test/core",
53
+ "test": "npm-run-all --serial test:**",
51
54
  "dev": "vite dev",
52
55
  "dev:globe": "cross-env GLOBE=1 vite dev"
53
56
  },
@@ -84,8 +87,9 @@
84
87
  "@thumbmarkjs/thumbmarkjs": "^0.16.1",
85
88
  "@tmcw/togeojson": "^4.5.0",
86
89
  "@turf/turf": "^6.5.0",
87
- "@weacast/core": "^2.2.1",
88
90
  "@vitejs/plugin-vue": "^6.0.0",
91
+ "@vue/test-utils": "^2.4.6",
92
+ "@weacast/core": "^2.2.1",
89
93
  "abort-controller": "^3.0.0",
90
94
  "ajv": "^8.12.0",
91
95
  "ajv-formats": "^2.1.1",
@@ -107,6 +111,7 @@
107
111
  "debug": "^4.1.0",
108
112
  "email-validator": "^2.0.4",
109
113
  "feathers-reactive": "^0.11.0",
114
+ "fix-esm-import-path": "^1.10.0",
110
115
  "formatcoords": "^1.1.3",
111
116
  "fs-extra": "^8.1.0",
112
117
  "geotiff": "^2.1.3",
@@ -115,11 +120,13 @@
115
120
  "iso8601-js-period": "^0.2.1",
116
121
  "jquery": "^3.2.1",
117
122
  "js-yaml": "^3.13.1",
123
+ "jsdom": "^27.3.0",
118
124
  "jsts": "^2.12.1",
119
125
  "jwt-decode": "^3.1.2",
120
126
  "leaflet": "1.6.0",
121
127
  "leaflet-arrowheads": "^1.4.0",
122
128
  "leaflet-fullscreen": "^1.0.2",
129
+ "leaflet-gesture-handling": "^1.2.2",
123
130
  "leaflet-heatmap": "^1.0.0",
124
131
  "leaflet-pixi-overlay": "1.9.3",
125
132
  "leaflet-realtime": "^2.2.0",
@@ -140,6 +147,7 @@
140
147
  "moment": "^2.29.3",
141
148
  "moment-timezone": "^0.5.35",
142
149
  "node-fetch": "^2.6.7",
150
+ "npm-run-all": "^4.1.1",
143
151
  "papaparse": "^5.3.2",
144
152
  "path-browserify": "^1.0.1",
145
153
  "pinch-zoom-element": "^1.1.1",
@@ -162,6 +170,7 @@
162
170
  "vite": "^7.0.6",
163
171
  "vite-plugin-node-polyfills": "^0.24.0",
164
172
  "vite-plugin-static-copy": "^3.1.1",
173
+ "vitest": "^4.0.15",
165
174
  "vue": "3.2.45",
166
175
  "vue-i18n": "^9.2.0-beta.35",
167
176
  "vue-router": "4.1.3",
@@ -0,0 +1,77 @@
1
+ import { ref } from 'vue'
2
+ import { feathers } from '@feathersjs/feathers'
3
+ import { rx } from 'feathers-reactive'
4
+ import { memory } from '@feathersjs/memory'
5
+ import { describe, it, expect, beforeAll, afterAll, vi } from 'vitest'
6
+ import { flushPromises } from '@vue/test-utils'
7
+ import { kdkCore, kdkMap } from '../../../client/kdk.client.map.js'
8
+
9
+ describe('core:composables', () => {
10
+ let client
11
+ const nbItemsPerPage = ref(2)
12
+ const baseQuery = ref({ $sort: { _id: 1 } })
13
+ const filterQuery = ref({})
14
+ const getService = ref(() => client.service('/messages'))
15
+
16
+ beforeAll(() => {
17
+ client = feathers()
18
+ .configure(rx({ idField: '_id' }))
19
+ const service = memory({
20
+ id: '_id',
21
+ store: {
22
+ 0: { _id: 1, name: 'xxx' },
23
+ 1: { _id: 2, name: 'yyy' },
24
+ 2: { _id: 3, name: 'zzz' }
25
+ },
26
+ paginate: { default: 5, max: 5 }
27
+ })
28
+ client.use('/messages', service).hooks({
29
+ before: {
30
+ // Required as some options like $locale are only supported by server-side services
31
+ all: [kdkCore.hooks.removeServerSideParameters]
32
+ }
33
+ })
34
+ })
35
+
36
+ it('refresh collection in paginated mode', async () => {
37
+ const { items, currentPage, refreshCollection } = kdkCore.composables.useCollection({
38
+ nbItemsPerPage, baseQuery, filterQuery, getService
39
+ })
40
+ refreshCollection()
41
+ await vi.waitFor(() => {
42
+ expect(items.value).to.deep.equal([{ _id: 1, name: 'xxx' }, { _id: 2, name: 'yyy' }])
43
+ })
44
+ currentPage.value++
45
+ refreshCollection()
46
+ await vi.waitFor(() => {
47
+ expect(items.value).to.deep.equal([{ _id: 3, name: 'zzz' }])
48
+ })
49
+ filterQuery.value = { name: 'yyy' }
50
+ await vi.waitFor(() => {
51
+ expect(items.value).to.deep.equal([{ _id: 2, name: 'yyy' }])
52
+ })
53
+ })
54
+
55
+ it('refresh collection in append mode', async () => {
56
+ // Reset any filter
57
+ filterQuery.value = {}
58
+ const { items, currentPage, refreshCollection } = kdkCore.composables.useCollection({
59
+ nbItemsPerPage, baseQuery, filterQuery, getService, appendItems: ref(true)
60
+ })
61
+ refreshCollection()
62
+ await vi.waitFor(() => {
63
+ expect(items.value).to.deep.equal([{ _id: 1, name: 'xxx' }, { _id: 2, name: 'yyy' }])
64
+ })
65
+ currentPage.value++
66
+ refreshCollection()
67
+ await vi.waitFor(() => {
68
+ expect(items.value).to.deep.equal([{ _id: 1, name: 'xxx' }, { _id: 2, name: 'yyy' }, { _id: 3, name: 'zzz' }])
69
+ })
70
+ filterQuery.value = { name: 'yyy' }
71
+ await vi.waitFor(() => {
72
+ expect(items.value).to.deep.equal([{ _id: 2, name: 'yyy' }])
73
+ })
74
+ })
75
+
76
+ afterAll(() => {})
77
+ })
@@ -0,0 +1,13 @@
1
+ import { defineConfig, mergeConfig } from 'vite'
2
+ import viteConfig from './vite.config'
3
+ import 'vitest/config'
4
+
5
+ export default mergeConfig(
6
+ viteConfig,
7
+ defineConfig({
8
+ test: {
9
+ environment: 'jsdom',
10
+ disableConsoleIntercept: true
11
+ }
12
+ })
13
+ )