@kalisio/kdk 2.5.2 → 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 (275) hide show
  1. package/core/client/components/input/KShapePicker.vue +4 -4
  2. package/coverage/core/api/application.js.html +344 -344
  3. package/coverage/core/api/authentication.js.html +79 -79
  4. package/coverage/core/api/db.js.html +167 -167
  5. package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
  6. package/coverage/core/api/hooks/hooks.authorisations.js.html +166 -163
  7. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  8. package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
  9. package/coverage/core/api/hooks/hooks.model.js.html +280 -268
  10. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  11. package/coverage/core/api/hooks/hooks.push.js.html +12 -12
  12. package/coverage/core/api/hooks/hooks.query.js.html +92 -92
  13. package/coverage/core/api/hooks/hooks.schemas.js.html +13 -13
  14. package/coverage/core/api/hooks/hooks.service.js.html +28 -28
  15. package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
  16. package/coverage/core/api/hooks/hooks.users.js.html +48 -48
  17. package/coverage/core/api/hooks/index.html +49 -49
  18. package/coverage/core/api/hooks/index.js.html +11 -11
  19. package/coverage/core/api/index.html +42 -42
  20. package/coverage/core/api/index.js.html +22 -22
  21. package/coverage/core/api/marshall.js.html +127 -127
  22. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  23. package/coverage/core/api/models/index.html +1 -1
  24. package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
  25. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  26. package/coverage/core/api/models/tags.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 +108 -120
  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/groups/groups.hooks.js.html +1 -1
  38. package/coverage/core/api/services/groups/index.html +1 -1
  39. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  40. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  41. package/coverage/core/api/services/import-export/index.html +1 -1
  42. package/coverage/core/api/services/index.html +15 -15
  43. package/coverage/core/api/services/index.js.html +97 -85
  44. package/coverage/core/api/services/mailer/index.html +1 -1
  45. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  46. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  47. package/coverage/core/api/services/messages/index.html +5 -5
  48. package/coverage/core/api/services/messages/messages.hooks.js.html +11 -8
  49. package/coverage/core/api/services/organisations/index.html +1 -1
  50. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  51. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  52. package/coverage/core/api/services/push/index.html +1 -1
  53. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  54. package/coverage/core/api/services/push/push.service.js.html +1 -1
  55. package/coverage/core/api/services/storage/index.html +1 -1
  56. package/coverage/core/api/services/storage/storage.hooks.js.html +36 -36
  57. package/coverage/core/api/services/storage/storage.service.js.html +30 -30
  58. package/coverage/core/api/services/tags/index.html +1 -1
  59. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  60. package/coverage/core/api/services/users/index.html +7 -7
  61. package/coverage/core/api/services/users/users.hooks.js.html +83 -80
  62. package/coverage/core/api/services/users/users.service.js.html +4 -4
  63. package/coverage/core/api/utils.js.html +1 -1
  64. package/coverage/core/common/errors.js.html +2 -2
  65. package/coverage/core/common/index.html +30 -30
  66. package/coverage/core/common/index.js.html +11 -11
  67. package/coverage/core/common/permissions.js.html +187 -187
  68. package/coverage/core/common/schema.js.html +26 -26
  69. package/coverage/core/common/utils.js.html +61 -61
  70. package/coverage/core/common/utils.offline.js.html +6 -6
  71. package/coverage/index.html +179 -164
  72. package/coverage/lcov-report/core/api/application.js.html +344 -344
  73. package/coverage/lcov-report/core/api/authentication.js.html +79 -79
  74. package/coverage/lcov-report/core/api/db.js.html +167 -167
  75. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
  76. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +166 -163
  77. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  78. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
  79. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +280 -268
  80. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  81. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +12 -12
  82. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +92 -92
  83. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +13 -13
  84. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
  85. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
  86. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +48 -48
  87. package/coverage/lcov-report/core/api/hooks/index.html +49 -49
  88. package/coverage/lcov-report/core/api/hooks/index.js.html +11 -11
  89. package/coverage/lcov-report/core/api/index.html +42 -42
  90. package/coverage/lcov-report/core/api/index.js.html +22 -22
  91. package/coverage/lcov-report/core/api/marshall.js.html +127 -127
  92. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  93. package/coverage/lcov-report/core/api/models/index.html +1 -1
  94. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
  95. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  96. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  97. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
  98. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +42 -42
  99. package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
  100. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  101. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  102. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +108 -120
  103. package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
  104. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  105. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  106. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  107. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  108. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  109. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  110. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  111. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  112. package/coverage/lcov-report/core/api/services/index.html +15 -15
  113. package/coverage/lcov-report/core/api/services/index.js.html +97 -85
  114. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  115. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  116. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  117. package/coverage/lcov-report/core/api/services/messages/index.html +5 -5
  118. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +11 -8
  119. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  120. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  121. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  122. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  123. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  124. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  125. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  126. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +36 -36
  127. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +30 -30
  128. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  129. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  130. package/coverage/lcov-report/core/api/services/users/index.html +7 -7
  131. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +83 -80
  132. package/coverage/lcov-report/core/api/services/users/users.service.js.html +4 -4
  133. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  134. package/coverage/lcov-report/core/common/errors.js.html +2 -2
  135. package/coverage/lcov-report/core/common/index.html +30 -30
  136. package/coverage/lcov-report/core/common/index.js.html +11 -11
  137. package/coverage/lcov-report/core/common/permissions.js.html +187 -187
  138. package/coverage/lcov-report/core/common/schema.js.html +26 -26
  139. package/coverage/lcov-report/core/common/utils.js.html +61 -61
  140. package/coverage/lcov-report/core/common/utils.offline.js.html +6 -6
  141. package/coverage/lcov-report/index.html +179 -164
  142. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +348 -258
  143. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
  144. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +795 -810
  145. package/coverage/lcov-report/map/api/hooks/index.html +54 -54
  146. package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
  147. package/coverage/lcov-report/map/api/index.html +32 -32
  148. package/coverage/lcov-report/map/api/index.js.html +46 -46
  149. package/coverage/lcov-report/map/api/marshall.js.html +72 -72
  150. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
  151. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +69 -27
  152. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
  153. package/coverage/lcov-report/map/api/models/index.html +69 -54
  154. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
  155. package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +112 -0
  156. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
  157. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
  158. package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
  159. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +177 -162
  160. package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
  161. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  163. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +160 -160
  164. package/coverage/lcov-report/map/api/services/features/features.service.js.html +117 -117
  165. package/coverage/lcov-report/map/api/services/features/index.html +31 -31
  166. package/coverage/lcov-report/map/api/services/index.html +21 -21
  167. package/coverage/lcov-report/map/api/services/index.js.html +404 -296
  168. package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
  169. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
  170. package/coverage/lcov-report/map/api/services/styles/index.html +116 -0
  171. package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +196 -0
  172. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
  173. package/coverage/lcov-report/map/common/errors.js.html +16 -16
  174. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -267
  175. package/coverage/lcov-report/map/common/grid.js.html +554 -554
  176. package/coverage/lcov-report/map/common/index.html +158 -158
  177. package/coverage/lcov-report/map/common/index.js.html +68 -68
  178. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
  179. package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
  180. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
  181. package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
  182. package/coverage/lcov-report/map/common/permissions.js.html +42 -36
  183. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
  184. package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
  185. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
  186. package/coverage/lcov-report/map/common/wcs-utils.js.html +339 -339
  187. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
  188. package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
  189. package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
  190. package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
  191. package/coverage/lcov.info +7022 -5894
  192. package/coverage/map/api/hooks/hooks.catalog.js.html +348 -258
  193. package/coverage/map/api/hooks/hooks.features.js.html +218 -218
  194. package/coverage/map/api/hooks/hooks.query.js.html +795 -810
  195. package/coverage/map/api/hooks/index.html +54 -54
  196. package/coverage/map/api/hooks/index.js.html +16 -16
  197. package/coverage/map/api/index.html +32 -32
  198. package/coverage/map/api/index.js.html +46 -46
  199. package/coverage/map/api/marshall.js.html +72 -72
  200. package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
  201. package/coverage/map/api/models/catalog.model.mongodb.js.html +69 -27
  202. package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
  203. package/coverage/map/api/models/index.html +69 -54
  204. package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
  205. package/coverage/map/api/models/styles.model.mongodb.js.html +112 -0
  206. package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
  207. package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
  208. package/coverage/map/api/services/alerts/index.html +32 -32
  209. package/coverage/map/api/services/catalog/catalog.hooks.js.html +177 -162
  210. package/coverage/map/api/services/catalog/index.html +21 -21
  211. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  212. package/coverage/map/api/services/daptiles/index.html +1 -1
  213. package/coverage/map/api/services/features/features.hooks.js.html +160 -160
  214. package/coverage/map/api/services/features/features.service.js.html +117 -117
  215. package/coverage/map/api/services/features/index.html +31 -31
  216. package/coverage/map/api/services/index.html +21 -21
  217. package/coverage/map/api/services/index.js.html +404 -296
  218. package/coverage/map/api/services/projects/index.html +21 -21
  219. package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
  220. package/coverage/map/api/services/styles/index.html +116 -0
  221. package/coverage/map/api/services/styles/styles.hooks.js.html +196 -0
  222. package/coverage/map/common/dynamic-grid-source.js.html +68 -68
  223. package/coverage/map/common/errors.js.html +16 -16
  224. package/coverage/map/common/geotiff-grid-source.js.html +267 -267
  225. package/coverage/map/common/grid.js.html +554 -554
  226. package/coverage/map/common/index.html +158 -158
  227. package/coverage/map/common/index.js.html +68 -68
  228. package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
  229. package/coverage/map/common/moment-utils.js.html +18 -18
  230. package/coverage/map/common/opendap-grid-source.js.html +484 -484
  231. package/coverage/map/common/opendap-utils.js.html +353 -353
  232. package/coverage/map/common/permissions.js.html +42 -36
  233. package/coverage/map/common/time-based-grid-source.js.html +59 -59
  234. package/coverage/map/common/tms-utils.js.html +6 -6
  235. package/coverage/map/common/wcs-grid-source.js.html +190 -190
  236. package/coverage/map/common/wcs-utils.js.html +339 -339
  237. package/coverage/map/common/weacast-grid-source.js.html +345 -345
  238. package/coverage/map/common/wfs-utils.js.html +11 -11
  239. package/coverage/map/common/wms-utils.js.html +8 -8
  240. package/coverage/map/common/wmts-utils.js.html +7 -7
  241. package/coverage/tmp/coverage-151198-1753351220086-0.json +1 -0
  242. package/coverage/tmp/coverage-151210-1753351220070-0.json +1 -0
  243. package/coverage/tmp/coverage-151221-1753351129816-0.json +1 -0
  244. package/coverage/tmp/coverage-151233-1753351129803-0.json +1 -0
  245. package/coverage/tmp/coverage-151240-1753351129770-0.json +1 -0
  246. package/coverage/tmp/coverage-151307-1753351220058-0.json +1 -0
  247. package/coverage/tmp/coverage-151319-1753351220044-0.json +1 -0
  248. package/coverage/tmp/coverage-151326-1753351220010-0.json +1 -0
  249. package/map/api/services/styles/styles.hooks.js +1 -1
  250. package/map/client/components/KLayerEditor.vue +4 -0
  251. package/map/client/components/catalog/KLayerCategories.vue +2 -0
  252. package/map/client/components/stickies/KLevelSlider.vue +10 -8
  253. package/map/client/components/styles/KStyleEditor.vue +1 -1
  254. package/map/client/components/styles/KStyleManager.vue +7 -1
  255. package/map/client/composables/highlight.js +5 -1
  256. package/map/client/i18n/map_en.json +4 -1
  257. package/map/client/i18n/map_fr.json +4 -1
  258. package/map/client/mixins/globe/mixin.geojson-layers.js +11 -5
  259. package/map/client/mixins/mixin.activity.js +9 -0
  260. package/map/client/utils/utils.layers.js +0 -2
  261. package/package.json +1 -1
  262. package/test/api/core/push.test.js +1 -1
  263. package/test/api/core/test-log-2025-02-05.log +23 -0
  264. package/test/api/core/test-log-2025-05-21.log +15 -0
  265. package/test/api/core/test-log-2025-06-25.log +9 -0
  266. package/test/api/core/test-log-2025-07-24.log +44 -0
  267. package/test/api/map/test-log-2025-05-27.log +13 -0
  268. package/test/api/map/test-log-2025-06-23.log +7 -0
  269. package/test/api/map/{test-log-2025-05-26.log → test-log-2025-07-24.log} +3 -4
  270. package/coverage/tmp/coverage-122123-1739872365211-0.json +0 -1
  271. package/coverage/tmp/coverage-122135-1739872365196-0.json +0 -1
  272. package/coverage/tmp/coverage-122146-1739872365184-0.json +0 -1
  273. package/coverage/tmp/coverage-122158-1739872365169-0.json +0 -1
  274. package/coverage/tmp/coverage-122165-1739872365141-0.json +0 -1
  275. package/test/api/core/test-log-2025-05-26.log +0 -22
@@ -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/29</span>
28
+ <span class='fraction'>29/29</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'>5/5</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">57.14% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>4/7</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/29</span>
49
+ <span class='fraction'>29/29</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
  <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>
@@ -92,64 +92,64 @@
92
92
  <a name='L27'></a><a href='#L27'>27</a>
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
94
  <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
96
- <span class="cline-any cline-no">&nbsp;</span>
97
- <span class="cline-any cline-no">&nbsp;</span>
98
- <span class="cline-any cline-no">&nbsp;</span>
99
- <span class="cline-any cline-no">&nbsp;</span>
100
- <span class="cline-any cline-no">&nbsp;</span>
101
- <span class="cline-any cline-no">&nbsp;</span>
102
- <span class="cline-any cline-no">&nbsp;</span>
103
- <span class="cline-any cline-no">&nbsp;</span>
104
- <span class="cline-any cline-no">&nbsp;</span>
105
- <span class="cline-any cline-no">&nbsp;</span>
106
- <span class="cline-any cline-no">&nbsp;</span>
107
- <span class="cline-any cline-no">&nbsp;</span>
108
- <span class="cline-any cline-no">&nbsp;</span>
109
- <span class="cline-any cline-no">&nbsp;</span>
110
- <span class="cline-any cline-no">&nbsp;</span>
111
- <span class="cline-any cline-no">&nbsp;</span>
112
- <span class="cline-any cline-no">&nbsp;</span>
113
- <span class="cline-any cline-no">&nbsp;</span>
114
- <span class="cline-any cline-no">&nbsp;</span>
115
- <span class="cline-any cline-no">&nbsp;</span>
116
- <span class="cline-any cline-no">&nbsp;</span>
117
- <span class="cline-any cline-no">&nbsp;</span>
118
- <span class="cline-any cline-no">&nbsp;</span>
119
- <span class="cline-any cline-no">&nbsp;</span>
120
- <span class="cline-any cline-no">&nbsp;</span>
121
- <span class="cline-any cline-no">&nbsp;</span>
122
- <span class="cline-any cline-no">&nbsp;</span>
123
- <span class="cline-any cline-no">&nbsp;</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code</span></span></span>
125
- <span class="cstat-no" title="statement not covered" >// Tracked here : https://github.com/babel/babel/issues/2877</span>
126
- <span class="cstat-no" title="statement not covered" >// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far</span>
127
- <span class="cstat-no" title="statement not covered" >import * as errors from './errors.js'</span>
128
- <span class="cstat-no" title="statement not covered" >import * as permissions from './permissions.js'</span>
129
- <span class="cstat-no" title="statement not covered" >import * as dap from './opendap-utils.js'</span>
130
- <span class="cstat-no" title="statement not covered" >import * as grid from './grid.js'</span>
131
- <span class="cstat-no" title="statement not covered" >import { gridSourceFactories, unitConverters } from './grid.js'</span>
132
- <span class="cstat-no" title="statement not covered" >import { OpenDapGridSource } from './opendap-grid-source.js'</span>
133
- <span class="cstat-no" title="statement not covered" >import { WcsGridSource } from './wcs-grid-source.js'</span>
134
- <span class="cstat-no" title="statement not covered" >import { GeoTiffGridSource } from './geotiff-grid-source.js'</span>
135
- <span class="cstat-no" title="statement not covered" >import { WeacastGridSource } from './weacast-grid-source.js'</span>
136
- <span class="cstat-no" title="statement not covered" >import { MeteoModelGridSource } from './meteo-model-grid-source.js'</span>
137
- <span class="cstat-no" title="statement not covered" >import { TimeBasedGridSource } from './time-based-grid-source.js'</span>
138
- <span class="cstat-no" title="statement not covered" ></span>
139
- <span class="cstat-no" title="statement not covered" >export { errors }</span>
140
- <span class="cstat-no" title="statement not covered" >export { permissions }</span>
141
- <span class="cstat-no" title="statement not covered" >export { dap }</span>
142
- <span class="cstat-no" title="statement not covered" >export { grid }</span>
143
- <span class="cstat-no" title="statement not covered" ></span>
144
- <span class="cstat-no" title="statement not covered" >// register factories for known grid sources</span>
145
- <span class="cstat-no" title="statement not covered" >gridSourceFactories[OpenDapGridSource.getKey()] = function (options) { return new OpenDapGridSource(options) }</span>
146
- <span class="cstat-no" title="statement not covered" >gridSourceFactories[WcsGridSource.getKey()] = function (options) { return new WcsGridSource(options) }</span>
147
- <span class="cstat-no" title="statement not covered" >gridSourceFactories[GeoTiffGridSource.getKey()] = function (options) { return new GeoTiffGridSource(options) }</span>
148
- <span class="cstat-no" title="statement not covered" >gridSourceFactories[WeacastGridSource.getKey()] = function (options) { return new WeacastGridSource(options) }</span>
149
- <span class="cstat-no" title="statement not covered" >gridSourceFactories[MeteoModelGridSource.getKey()] = function (options) { return new MeteoModelGridSource(options) }</span>
150
- <span class="cstat-no" title="statement not covered" >gridSourceFactories[TimeBasedGridSource.getKey()] = function (options) { return new TimeBasedGridSource(options) }</span>
151
- <span class="cstat-no" title="statement not covered" ></span>
152
- <span class="cstat-no" title="statement not covered" >unitConverters.kelvin2celsius = function (kelvin) { return kelvin - 273.15 }</span>
95
+ <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
96
+ <span class="cline-any cline-yes">1x</span>
97
+ <span class="cline-any cline-yes">1x</span>
98
+ <span class="cline-any cline-yes">1x</span>
99
+ <span class="cline-any cline-yes">1x</span>
100
+ <span class="cline-any cline-yes">1x</span>
101
+ <span class="cline-any cline-yes">1x</span>
102
+ <span class="cline-any cline-yes">1x</span>
103
+ <span class="cline-any cline-yes">1x</span>
104
+ <span class="cline-any cline-yes">1x</span>
105
+ <span class="cline-any cline-yes">1x</span>
106
+ <span class="cline-any cline-yes">1x</span>
107
+ <span class="cline-any cline-yes">1x</span>
108
+ <span class="cline-any cline-yes">1x</span>
109
+ <span class="cline-any cline-yes">1x</span>
110
+ <span class="cline-any cline-yes">1x</span>
111
+ <span class="cline-any cline-yes">1x</span>
112
+ <span class="cline-any cline-yes">1x</span>
113
+ <span class="cline-any cline-yes">1x</span>
114
+ <span class="cline-any cline-yes">1x</span>
115
+ <span class="cline-any cline-yes">1x</span>
116
+ <span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-yes">1x</span>
118
+ <span class="cline-any cline-yes">1x</span>
119
+ <span class="cline-any cline-yes">1x</span>
120
+ <span class="cline-any cline-yes">1x</span>
121
+ <span class="cline-any cline-yes">1x</span>
122
+ <span class="cline-any cline-yes">1x</span>
123
+ <span class="cline-any cline-yes">1x</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code
125
+ // Tracked here : https://github.com/babel/babel/issues/2877
126
+ // We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far
127
+ import * as errors from './errors.js'
128
+ import * as permissions from './permissions.js'
129
+ import * as dap from './opendap-utils.js'
130
+ import * as grid from './grid.js'
131
+ import { gridSourceFactories, unitConverters } from './grid.js'
132
+ import { OpenDapGridSource } from './opendap-grid-source.js'
133
+ import { WcsGridSource } from './wcs-grid-source.js'
134
+ import { GeoTiffGridSource } from './geotiff-grid-source.js'
135
+ import { WeacastGridSource } from './weacast-grid-source.js'
136
+ import { MeteoModelGridSource } from './meteo-model-grid-source.js'
137
+ import { TimeBasedGridSource } from './time-based-grid-source.js'
138
+ &nbsp;
139
+ export { errors }
140
+ export { permissions }
141
+ export { dap }
142
+ export { grid }
143
+ &nbsp;
144
+ // register factories for known grid sources
145
+ gridSourceFactories[OpenDapGridSource.getKey()] = function (options) { return new OpenDapGridSource(options) }
146
+ gridSourceFactories[WcsGridSource.getKey()] = function (options) { return new WcsGridSource(options) }
147
+ gridSourceFactories[GeoTiffGridSource.getKey()] = function (options) { return new GeoTiffGridSource(options) }
148
+ gridSourceFactories[WeacastGridSource.getKey()] = function (options) { return new WeacastGridSource(options) }
149
+ gridSourceFactories[MeteoModelGridSource.getKey()] = <span class="fstat-no" title="function not covered" >function (options) { return new MeteoModelGridSource(options) }</span>
150
+ gridSourceFactories[TimeBasedGridSource.getKey()] = <span class="fstat-no" title="function not covered" >function (options) { return new TimeBasedGridSource(options) }</span>
151
+ &nbsp;
152
+ unitConverters.kelvin2celsius = <span class="fstat-no" title="function not covered" >function (kelvin) { return kelvin - 273.15 }</span>
153
153
  &nbsp;</pre></td></tr></table></pre>
154
154
 
155
155
  <div class='push'></div><!-- for sticky footer -->
@@ -157,7 +157,7 @@
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
160
- at 2025-02-18T09:52:45.605Z
160
+ at 2025-07-24T10:00:20.476Z
161
161
  </div>
162
162
  <script src="../../prettify.js"></script>
163
163
  <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">20.38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/157</span>
28
+ <span class='fraction'>32/157</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'>2/2</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">9.09% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>1/11</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">20.38% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/157</span>
49
+ <span class='fraction'>32/157</span>
50
50
  </div>
51
51
 
52
52
 
@@ -220,16 +220,32 @@
220
220
  <a name='L155'></a><a href='#L155'>155</a>
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
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-no">&nbsp;</span>
223
+ <a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
224
+ <span class="cline-any cline-yes">1x</span>
225
+ <span class="cline-any cline-yes">1x</span>
226
+ <span class="cline-any cline-yes">1x</span>
227
+ <span class="cline-any cline-yes">1x</span>
228
+ <span class="cline-any cline-yes">1x</span>
229
+ <span class="cline-any cline-yes">1x</span>
230
+ <span class="cline-any cline-yes">1x</span>
231
+ <span class="cline-any cline-yes">1x</span>
232
+ <span class="cline-any cline-yes">1x</span>
233
+ <span class="cline-any cline-yes">1x</span>
234
+ <span class="cline-any cline-yes">1x</span>
235
+ <span class="cline-any cline-yes">1x</span>
224
236
  <span class="cline-any cline-no">&nbsp;</span>
225
237
  <span class="cline-any cline-no">&nbsp;</span>
226
238
  <span class="cline-any cline-no">&nbsp;</span>
227
239
  <span class="cline-any cline-no">&nbsp;</span>
228
240
  <span class="cline-any cline-no">&nbsp;</span>
229
241
  <span class="cline-any cline-no">&nbsp;</span>
242
+ <span class="cline-any cline-yes">1x</span>
243
+ <span class="cline-any cline-yes">1x</span>
230
244
  <span class="cline-any cline-no">&nbsp;</span>
231
245
  <span class="cline-any cline-no">&nbsp;</span>
232
246
  <span class="cline-any cline-no">&nbsp;</span>
247
+ <span class="cline-any cline-yes">1x</span>
248
+ <span class="cline-any cline-yes">1x</span>
233
249
  <span class="cline-any cline-no">&nbsp;</span>
234
250
  <span class="cline-any cline-no">&nbsp;</span>
235
251
  <span class="cline-any cline-no">&nbsp;</span>
@@ -238,10 +254,14 @@
238
254
  <span class="cline-any cline-no">&nbsp;</span>
239
255
  <span class="cline-any cline-no">&nbsp;</span>
240
256
  <span class="cline-any cline-no">&nbsp;</span>
257
+ <span class="cline-any cline-yes">1x</span>
258
+ <span class="cline-any cline-yes">1x</span>
241
259
  <span class="cline-any cline-no">&nbsp;</span>
242
260
  <span class="cline-any cline-no">&nbsp;</span>
243
261
  <span class="cline-any cline-no">&nbsp;</span>
244
262
  <span class="cline-any cline-no">&nbsp;</span>
263
+ <span class="cline-any cline-yes">1x</span>
264
+ <span class="cline-any cline-yes">1x</span>
245
265
  <span class="cline-any cline-no">&nbsp;</span>
246
266
  <span class="cline-any cline-no">&nbsp;</span>
247
267
  <span class="cline-any cline-no">&nbsp;</span>
@@ -271,6 +291,8 @@
271
291
  <span class="cline-any cline-no">&nbsp;</span>
272
292
  <span class="cline-any cline-no">&nbsp;</span>
273
293
  <span class="cline-any cline-no">&nbsp;</span>
294
+ <span class="cline-any cline-yes">1x</span>
295
+ <span class="cline-any cline-yes">1x</span>
274
296
  <span class="cline-any cline-no">&nbsp;</span>
275
297
  <span class="cline-any cline-no">&nbsp;</span>
276
298
  <span class="cline-any cline-no">&nbsp;</span>
@@ -290,12 +312,16 @@
290
312
  <span class="cline-any cline-no">&nbsp;</span>
291
313
  <span class="cline-any cline-no">&nbsp;</span>
292
314
  <span class="cline-any cline-no">&nbsp;</span>
315
+ <span class="cline-any cline-yes">1x</span>
316
+ <span class="cline-any cline-yes">1x</span>
293
317
  <span class="cline-any cline-no">&nbsp;</span>
294
318
  <span class="cline-any cline-no">&nbsp;</span>
295
319
  <span class="cline-any cline-no">&nbsp;</span>
296
320
  <span class="cline-any cline-no">&nbsp;</span>
297
321
  <span class="cline-any cline-no">&nbsp;</span>
298
322
  <span class="cline-any cline-no">&nbsp;</span>
323
+ <span class="cline-any cline-yes">1x</span>
324
+ <span class="cline-any cline-yes">1x</span>
299
325
  <span class="cline-any cline-no">&nbsp;</span>
300
326
  <span class="cline-any cline-no">&nbsp;</span>
301
327
  <span class="cline-any cline-no">&nbsp;</span>
@@ -308,6 +334,8 @@
308
334
  <span class="cline-any cline-no">&nbsp;</span>
309
335
  <span class="cline-any cline-no">&nbsp;</span>
310
336
  <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-yes">1x</span>
338
+ <span class="cline-any cline-yes">1x</span>
311
339
  <span class="cline-any cline-no">&nbsp;</span>
312
340
  <span class="cline-any cline-no">&nbsp;</span>
313
341
  <span class="cline-any cline-no">&nbsp;</span>
@@ -330,6 +358,8 @@
330
358
  <span class="cline-any cline-no">&nbsp;</span>
331
359
  <span class="cline-any cline-no">&nbsp;</span>
332
360
  <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-yes">1x</span>
362
+ <span class="cline-any cline-yes">1x</span>
333
363
  <span class="cline-any cline-no">&nbsp;</span>
334
364
  <span class="cline-any cline-no">&nbsp;</span>
335
365
  <span class="cline-any cline-no">&nbsp;</span>
@@ -346,63 +376,33 @@
346
376
  <span class="cline-any cline-no">&nbsp;</span>
347
377
  <span class="cline-any cline-no">&nbsp;</span>
348
378
  <span class="cline-any cline-no">&nbsp;</span>
349
- <span class="cline-any cline-no">&nbsp;</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
- <span class="cline-any cline-no">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-no">&nbsp;</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-no">&nbsp;</span>
356
- <span class="cline-any cline-no">&nbsp;</span>
357
- <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
362
- <span class="cline-any cline-no">&nbsp;</span>
363
- <span class="cline-any cline-no">&nbsp;</span>
364
- <span class="cline-any cline-no">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
366
- <span class="cline-any cline-no">&nbsp;</span>
367
- <span class="cline-any cline-no">&nbsp;</span>
368
- <span class="cline-any cline-no">&nbsp;</span>
369
- <span class="cline-any cline-no">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
- <span class="cline-any cline-no">&nbsp;</span>
374
- <span class="cline-any cline-no">&nbsp;</span>
375
- <span class="cline-any cline-no">&nbsp;</span>
376
- <span class="cline-any cline-no">&nbsp;</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-no">&nbsp;</span>
379
- <span class="cline-any cline-no">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import _ from 'lodash'</span></span></span>
381
- <span class="cstat-no" title="statement not covered" >import moment from 'moment'</span>
382
- <span class="cstat-no" title="statement not covered" >import { getNearestRunTime, getNearestForecastTime } from '@weacast/core/common.js'</span>
383
- <span class="cstat-no" title="statement not covered" >import { makeGridSource, extractGridSourceConfig } from './grid.js'</span>
384
- <span class="cstat-no" title="statement not covered" >import { DynamicGridSource } from './dynamic-grid-source.js'</span>
385
- <span class="cstat-no" title="statement not covered" >import { readAsTimeOrDuration, makeTime } from './moment-utils.js'</span>
386
- <span class="cstat-no" title="statement not covered" ></span>
387
- <span class="cstat-no" title="statement not covered" >export class MeteoModelGridSource extends DynamicGridSource {</span>
388
- <span class="cstat-no" title="statement not covered" > static getKey () {</span>
389
- <span class="cstat-no" title="statement not covered" > return 'meteo_model'</span>
390
- <span class="cstat-no" title="statement not covered" > }</span>
391
- <span class="cstat-no" title="statement not covered" ></span>
392
- <span class="cstat-no" title="statement not covered" > constructor (options) {</span>
379
+ <span class="cline-any cline-yes">1x</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
381
+ import moment from 'moment'
382
+ import { getNearestRunTime, getNearestForecastTime } from '@weacast/core/common.js'
383
+ import { makeGridSource, extractGridSourceConfig } from './grid.js'
384
+ import { DynamicGridSource } from './dynamic-grid-source.js'
385
+ import { readAsTimeOrDuration, makeTime } from './moment-utils.js'
386
+ &nbsp;
387
+ export class MeteoModelGridSource extends DynamicGridSource {
388
+ static getKey () {
389
+ return 'meteo_model'
390
+ }
391
+ &nbsp;
392
+ <span class="fstat-no" title="function not covered" > constructor (options) {</span>
393
393
  <span class="cstat-no" title="statement not covered" > super(options)</span>
394
394
  <span class="cstat-no" title="statement not covered" ></span>
395
395
  <span class="cstat-no" title="statement not covered" > this.options = options</span>
396
396
  <span class="cstat-no" title="statement not covered" > // these members are not mandatory, but still defined in the context</span>
397
397
  <span class="cstat-no" title="statement not covered" > this.updateCtx.level = undefined</span>
398
398
  <span class="cstat-no" title="statement not covered" > }</span>
399
- <span class="cstat-no" title="statement not covered" ></span>
400
- <span class="cstat-no" title="statement not covered" > setModel (model) {</span>
399
+ &nbsp;
400
+ <span class="fstat-no" title="function not covered" > setModel (model) {</span>
401
401
  <span class="cstat-no" title="statement not covered" > this.updateCtx.model = model</span>
402
402
  <span class="cstat-no" title="statement not covered" > this.queueUpdate()</span>
403
403
  <span class="cstat-no" title="statement not covered" > }</span>
404
- <span class="cstat-no" title="statement not covered" ></span>
405
- <span class="cstat-no" title="statement not covered" > setTime (time) {</span>
404
+ &nbsp;
405
+ <span class="fstat-no" title="function not covered" > setTime (time) {</span>
406
406
  <span class="cstat-no" title="statement not covered" > this.updateCtx.time = time.clone()</span>
407
407
  <span class="cstat-no" title="statement not covered" > this.updateCtx.time.utc()</span>
408
408
  <span class="cstat-no" title="statement not covered" > // reset runOffset to fetch nearest run time</span>
@@ -411,14 +411,14 @@
411
411
  <span class="cstat-no" title="statement not covered" > this.updateCtx.runOffset = 0</span>
412
412
  <span class="cstat-no" title="statement not covered" > this.queueUpdate()</span>
413
413
  <span class="cstat-no" title="statement not covered" > }</span>
414
- <span class="cstat-no" title="statement not covered" ></span>
415
- <span class="cstat-no" title="statement not covered" > setLevel (level) {</span>
414
+ &nbsp;
415
+ <span class="fstat-no" title="function not covered" > setLevel (level) {</span>
416
416
  <span class="cstat-no" title="statement not covered" > if (level !== null) this.updateCtx.level = level</span>
417
417
  <span class="cstat-no" title="statement not covered" > else if (this.updateCtx.level) delete this.updateCtx.level</span>
418
418
  <span class="cstat-no" title="statement not covered" > this.queueUpdate()</span>
419
419
  <span class="cstat-no" title="statement not covered" > }</span>
420
- <span class="cstat-no" title="statement not covered" ></span>
421
- <span class="cstat-no" title="statement not covered" > async setup (config) {</span>
420
+ &nbsp;
421
+ <span class="fstat-no" title="function not covered" > async setup (config) {</span>
422
422
  <span class="cstat-no" title="statement not covered" > this.candidates = []</span>
423
423
  <span class="cstat-no" title="statement not covered" ></span>
424
424
  <span class="cstat-no" title="statement not covered" > for (const source of config.sources) {</span>
@@ -448,8 +448,8 @@
448
448
  <span class="cstat-no" title="statement not covered" > this.candidates.push(candidate)</span>
449
449
  <span class="cstat-no" title="statement not covered" > }</span>
450
450
  <span class="cstat-no" title="statement not covered" > }</span>
451
- <span class="cstat-no" title="statement not covered" ></span>
452
- <span class="cstat-no" title="statement not covered" > makeBuildContext (updateCtx) {</span>
451
+ &nbsp;
452
+ <span class="fstat-no" title="function not covered" > makeBuildContext (updateCtx) {</span>
453
453
  <span class="cstat-no" title="statement not covered" > const ctx = Object.assign({}, updateCtx)</span>
454
454
  <span class="cstat-no" title="statement not covered" ></span>
455
455
  <span class="cstat-no" title="statement not covered" > ctx.candidate = this.selectCandidate(updateCtx.time, updateCtx.model.name)</span>
@@ -469,16 +469,16 @@
469
469
  <span class="cstat-no" title="statement not covered" ></span>
470
470
  <span class="cstat-no" title="statement not covered" > return ctx</span>
471
471
  <span class="cstat-no" title="statement not covered" > }</span>
472
- <span class="cstat-no" title="statement not covered" ></span>
473
- <span class="cstat-no" title="statement not covered" > shouldSkipUpdate (newContext, oldContext) {</span>
472
+ &nbsp;
473
+ <span class="fstat-no" title="function not covered" > shouldSkipUpdate (newContext, oldContext) {</span>
474
474
  <span class="cstat-no" title="statement not covered" > if (oldContext.candidate !== newContext.candidate) return false</span>
475
475
  <span class="cstat-no" title="statement not covered" > if (oldContext.runTime &amp;&amp; newContext.runTime &amp;&amp; !oldContext.runTime.isSame(newContext.runTime)) return false</span>
476
476
  <span class="cstat-no" title="statement not covered" > if (oldContext.forecastTime &amp;&amp; newContext.forecastTime &amp;&amp; !oldContext.forecastTime.isSame(newContext.forecastTime)) return false</span>
477
477
  <span class="cstat-no" title="statement not covered" > if (oldContext.level !== newContext.level) return false</span>
478
478
  <span class="cstat-no" title="statement not covered" > return true</span>
479
479
  <span class="cstat-no" title="statement not covered" > }</span>
480
- <span class="cstat-no" title="statement not covered" ></span>
481
- <span class="cstat-no" title="statement not covered" > buildSourceAndConfig (ctx) {</span>
480
+ &nbsp;
481
+ <span class="fstat-no" title="function not covered" > buildSourceAndConfig (ctx) {</span>
482
482
  <span class="cstat-no" title="statement not covered" > let source = null</span>
483
483
  <span class="cstat-no" title="statement not covered" > let config = null</span>
484
484
  <span class="cstat-no" title="statement not covered" ></span>
@@ -491,8 +491,8 @@
491
491
  <span class="cstat-no" title="statement not covered" ></span>
492
492
  <span class="cstat-no" title="statement not covered" > return [source, config]</span>
493
493
  <span class="cstat-no" title="statement not covered" > }</span>
494
- <span class="cstat-no" title="statement not covered" ></span>
495
- <span class="cstat-no" title="statement not covered" > selectCandidate (time, model) {</span>
494
+ &nbsp;
495
+ <span class="fstat-no" title="function not covered" > selectCandidate (time, model) {</span>
496
496
  <span class="cstat-no" title="statement not covered" > const now = moment()</span>
497
497
  <span class="cstat-no" title="statement not covered" ></span>
498
498
  <span class="cstat-no" title="statement not covered" > let candidate = null</span>
@@ -515,8 +515,8 @@
515
515
  <span class="cstat-no" title="statement not covered" ></span>
516
516
  <span class="cstat-no" title="statement not covered" > return candidate</span>
517
517
  <span class="cstat-no" title="statement not covered" > }</span>
518
- <span class="cstat-no" title="statement not covered" ></span>
519
- <span class="cstat-no" title="statement not covered" > dataChanged () {</span>
518
+ &nbsp;
519
+ <span class="fstat-no" title="function not covered" > dataChanged () {</span>
520
520
  <span class="cstat-no" title="statement not covered" > // check if we need to try to fetch data from a previous run</span>
521
521
  <span class="cstat-no" title="statement not covered" > // in case the nearest run doesn't exists or fails to provide</span>
522
522
  <span class="cstat-no" title="statement not covered" > // required data</span>
@@ -533,7 +533,7 @@
533
533
  <span class="cstat-no" title="statement not covered" ></span>
534
534
  <span class="cstat-no" title="statement not covered" > super.dataChanged()</span>
535
535
  <span class="cstat-no" title="statement not covered" > }</span>
536
- <span class="cstat-no" title="statement not covered" >}</span>
536
+ }
537
537
  &nbsp;</pre></td></tr></table></pre>
538
538
 
539
539
  <div class='push'></div><!-- for sticky footer -->
@@ -541,7 +541,7 @@
541
541
  <div class='footer quiet pad2 space-top1 center small'>
542
542
  Code coverage generated by
543
543
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
544
- at 2025-02-18T09:52:45.605Z
544
+ at 2025-07-24T10:00:20.476Z
545
545
  </div>
546
546
  <script src="../../prettify.js"></script>
547
547
  <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">20.83% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/24</span>
28
+ <span class='fraction'>5/24</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
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>0/2</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">20.83% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/24</span>
49
+ <span class='fraction'>5/24</span>
50
50
  </div>
51
51
 
52
52
 
@@ -87,9 +87,9 @@
87
87
  <a name='L22'></a><a href='#L22'>22</a>
88
88
  <a name='L23'></a><a href='#L23'>23</a>
89
89
  <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
91
- <span class="cline-any cline-no">&nbsp;</span>
92
- <span class="cline-any cline-no">&nbsp;</span>
90
+ <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
91
+ <span class="cline-any cline-yes">1x</span>
92
+ <span class="cline-any cline-yes">1x</span>
93
93
  <span class="cline-any cline-no">&nbsp;</span>
94
94
  <span class="cline-any cline-no">&nbsp;</span>
95
95
  <span class="cline-any cline-no">&nbsp;</span>
@@ -107,13 +107,13 @@
107
107
  <span class="cline-any cline-no">&nbsp;</span>
108
108
  <span class="cline-any cline-no">&nbsp;</span>
109
109
  <span class="cline-any cline-no">&nbsp;</span>
110
+ <span class="cline-any cline-yes">1x</span>
111
+ <span class="cline-any cline-yes">1x</span>
110
112
  <span class="cline-any cline-no">&nbsp;</span>
111
113
  <span class="cline-any cline-no">&nbsp;</span>
112
- <span class="cline-any cline-no">&nbsp;</span>
113
- <span class="cline-any cline-no">&nbsp;</span>
114
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import moment from 'moment'</span></span></span>
115
- <span class="cstat-no" title="statement not covered" ></span>
116
- <span class="cstat-no" title="statement not covered" >export function readAsTimeOrDuration (conf) {</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import moment from 'moment'
115
+ &nbsp;
116
+ export <span class="fstat-no" title="function not covered" >function readAsTimeOrDuration (conf) {</span>
117
117
  <span class="cstat-no" title="statement not covered" > let ret = null</span>
118
118
  <span class="cstat-no" title="statement not covered" > if (typeof conf === 'string') {</span>
119
119
  <span class="cstat-no" title="statement not covered" > if (conf.charAt(0) === 'P') {</span>
@@ -131,8 +131,8 @@
131
131
  <span class="cstat-no" title="statement not covered" ></span>
132
132
  <span class="cstat-no" title="statement not covered" > return ret</span>
133
133
  <span class="cstat-no" title="statement not covered" >}</span>
134
- <span class="cstat-no" title="statement not covered" ></span>
135
- <span class="cstat-no" title="statement not covered" >export function makeTime (timeOrDuration, referenceTime) {</span>
134
+ &nbsp;
135
+ export <span class="fstat-no" title="function not covered" >function makeTime (timeOrDuration, referenceTime) {</span>
136
136
  <span class="cstat-no" title="statement not covered" > return moment.isDuration(timeOrDuration) ? referenceTime.clone().add(timeOrDuration) : timeOrDuration</span>
137
137
  <span class="cstat-no" title="statement not covered" >}</span>
138
138
  &nbsp;</pre></td></tr></table></pre>
@@ -142,7 +142,7 @@
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at 2025-02-18T09:52:45.605Z
145
+ at 2025-07-24T10:00:20.476Z
146
146
  </div>
147
147
  <script src="../../prettify.js"></script>
148
148
  <script>