@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">89.18% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/37</span>
28
+ <span class='fraction'>33/37</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">55.55% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/1</span>
35
+ <span class='fraction'>5/9</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>1/1</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">89.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/37</span>
49
+ <span class='fraction'>33/37</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>
@@ -100,80 +100,80 @@
100
100
  <a name='L35'></a><a href='#L35'>35</a>
101
101
  <a name='L36'></a><a href='#L36'>36</a>
102
102
  <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><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-no">&nbsp;</span>
125
- <span class="cline-any cline-no">&nbsp;</span>
126
- <span class="cline-any cline-no">&nbsp;</span>
127
- <span class="cline-any cline-no">&nbsp;</span>
128
- <span class="cline-any cline-no">&nbsp;</span>
129
- <span class="cline-any cline-no">&nbsp;</span>
130
- <span class="cline-any cline-no">&nbsp;</span>
131
- <span class="cline-any cline-no">&nbsp;</span>
132
- <span class="cline-any cline-no">&nbsp;</span>
133
- <span class="cline-any cline-no">&nbsp;</span>
134
- <span class="cline-any cline-no">&nbsp;</span>
135
- <span class="cline-any cline-no">&nbsp;</span>
136
- <span class="cline-any cline-no">&nbsp;</span>
137
- <span class="cline-any cline-no">&nbsp;</span>
138
- <span class="cline-any cline-no">&nbsp;</span>
139
- <span class="cline-any cline-no">&nbsp;</span>
140
- <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" >export default function (app, options) {</span></span></span>
141
- <span class="cstat-no" title="statement not covered" > const db = options.db || app.db</span>
142
- <span class="cstat-no" title="statement not covered" > options.Model = db.collection(options.collection)</span>
143
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex({ geometry: '2dsphere' })</span>
144
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex({ layer: 1 })</span>
145
- <span class="cstat-no" title="statement not covered" > let baseIndex</span>
146
- <span class="cstat-no" title="statement not covered" > if (options.featureId) {</span>
147
- <span class="cstat-no" title="statement not covered" > // Support compound index</span>
148
- <span class="cstat-no" title="statement not covered" > const featureId = (Array.isArray(options.featureId) ? options.featureId : [options.featureId])</span>
149
- <span class="cstat-no" title="statement not covered" > baseIndex = featureId.reduce((result, id) =&gt; Object.assign(result, { ['properties.' + id]: 1 }), {})</span>
150
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex(baseIndex)</span>
151
- <span class="cstat-no" title="statement not covered" > // Create index notably used for time-based geometry aggregation if variables are defined</span>
152
- <span class="cstat-no" title="statement not covered" > const index = Object.assign({ geometry: '2dsphere' }, baseIndex, { time: 1 })</span>
153
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex(index)</span>
154
- <span class="cstat-no" title="statement not covered" > // Ascending/Descending sort seems to require a different index in aggregation hint</span>
155
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex(Object.assign(index, { time: -1 }))</span>
156
- <span class="cstat-no" title="statement not covered" > }</span>
157
- <span class="cstat-no" title="statement not covered" > // Create index notably used for timeseries aggregation if variables are defined</span>
158
- <span class="cstat-no" title="statement not covered" > if (options.variables) {</span>
159
- <span class="cstat-no" title="statement not covered" > options.variables.forEach(variable =&gt; {</span>
160
- <span class="cstat-no" title="statement not covered" > const index = Object.assign({}, baseIndex, {</span>
161
- <span class="cstat-no" title="statement not covered" > ['properties.' + (variable.name ? variable.name : variable)]: 1, time: 1</span>
162
- <span class="cstat-no" title="statement not covered" > })</span>
163
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex(index)</span>
164
- <span class="cstat-no" title="statement not covered" > // Ascending/Descending sort seems to require a different index in aggregation hint</span>
165
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex(Object.assign(index, { time: -1 }))</span>
166
- <span class="cstat-no" title="statement not covered" > })</span>
167
- <span class="cstat-no" title="statement not covered" > }</span>
168
- <span class="cstat-no" title="statement not covered" > try {</span>
169
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex({ 'properties.$**': 1 })</span>
170
- <span class="cstat-no" title="statement not covered" > } catch (_) {</span>
103
+ <a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
104
+ <span class="cline-any cline-yes">5x</span>
105
+ <span class="cline-any cline-yes">5x</span>
106
+ <span class="cline-any cline-yes">5x</span>
107
+ <span class="cline-any cline-yes">5x</span>
108
+ <span class="cline-any cline-yes">5x</span>
109
+ <span class="cline-any cline-yes">5x</span>
110
+ <span class="cline-any cline-yes">5x</span>
111
+ <span class="cline-any cline-yes">5x</span>
112
+ <span class="cline-any cline-yes">5x</span>
113
+ <span class="cline-any cline-yes">5x</span>
114
+ <span class="cline-any cline-yes">5x</span>
115
+ <span class="cline-any cline-yes">5x</span>
116
+ <span class="cline-any cline-yes">5x</span>
117
+ <span class="cline-any cline-yes">5x</span>
118
+ <span class="cline-any cline-yes">5x</span>
119
+ <span class="cline-any cline-yes">5x</span>
120
+ <span class="cline-any cline-yes">5x</span>
121
+ <span class="cline-any cline-yes">5x</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-yes">1x</span>
125
+ <span class="cline-any cline-yes">1x</span>
126
+ <span class="cline-any cline-yes">1x</span>
127
+ <span class="cline-any cline-yes">1x</span>
128
+ <span class="cline-any cline-yes">1x</span>
129
+ <span class="cline-any cline-yes">1x</span>
130
+ <span class="cline-any cline-yes">1x</span>
131
+ <span class="cline-any cline-yes">5x</span>
132
+ <span class="cline-any cline-yes">5x</span>
133
+ <span class="cline-any cline-yes">5x</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
135
+ <span class="cline-any cline-no">&nbsp;</span>
136
+ <span class="cline-any cline-yes">5x</span>
137
+ <span class="cline-any cline-no">&nbsp;</span>
138
+ <span class="cline-any cline-no">&nbsp;</span>
139
+ <span class="cline-any cline-yes">5x</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export default function (app, options) {
141
+ const db = options.db || app.db
142
+ options.Model = db.collection(options.collection)
143
+ options.Model.createIndex({ geometry: '2dsphere' })
144
+ options.Model.createIndex({ layer: 1 })
145
+ let baseIndex
146
+ if (options.featureId) {
147
+ // Support compound index
148
+ const featureId = (Array.isArray(options.featureId) <span class="branch-0 cbranch-no" title="branch not covered" >? options.featureId </span>: [options.featureId])
149
+ baseIndex = featureId.reduce((result, id) =&gt; Object.assign(result, { ['properties.' + id]: 1 }), {})
150
+ options.Model.createIndex(baseIndex)
151
+ // Create index notably used for time-based geometry aggregation if variables are defined
152
+ const index = Object.assign({ geometry: '2dsphere' }, baseIndex, { time: 1 })
153
+ options.Model.createIndex(index)
154
+ // Ascending/Descending sort seems to require a different index in aggregation hint
155
+ options.Model.createIndex(Object.assign(index, { time: -1 }))
156
+ }
157
+ // Create index notably used for timeseries aggregation if variables are defined
158
+ if (options.variables) {
159
+ options.variables.forEach(variable =&gt; {
160
+ const index = Object.assign({}, baseIndex, {
161
+ ['properties.' + (variable.name <span class="branch-0 cbranch-no" title="branch not covered" >? variable.name </span>: variable)]: 1, time: 1
162
+ })
163
+ options.Model.createIndex(index)
164
+ // Ascending/Descending sort seems to require a different index in aggregation hint
165
+ options.Model.createIndex(Object.assign(index, { time: -1 }))
166
+ })
167
+ }
168
+ try {
169
+ options.Model.createIndex({ 'properties.$**': 1 })
170
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (_) {</span>
171
171
  <span class="cstat-no" title="statement not covered" > // Fail silently as it might not be supported under v4</span>
172
172
  <span class="cstat-no" title="statement not covered" > }</span>
173
- <span class="cstat-no" title="statement not covered" > if (options.expireAfter || options.ttl) {</span>
173
+ if (options.expireAfter || options.ttl) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
174
174
  <span class="cstat-no" title="statement not covered" > options.Model.createIndex({ time: 1 }, { expireAfterSeconds: options.expireAfter || options.ttl })</span>
175
175
  <span class="cstat-no" title="statement not covered" > }</span>
176
- <span class="cstat-no" title="statement not covered" >}</span>
176
+ }
177
177
  &nbsp;</pre></td></tr></table></pre>
178
178
 
179
179
  <div class='push'></div><!-- for sticky footer -->
@@ -181,7 +181,7 @@
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2025-02-18T09:52:45.605Z
184
+ at 2025-07-24T10:00:20.476Z
185
185
  </div>
186
186
  <script src="../../../prettify.js"></script>
187
187
  <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">83.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/66</span>
28
+ <span class='fraction'>74/89</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">82.6% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/4</span>
35
+ <span class='fraction'>19/23</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/4</span>
42
+ <span class='fraction'>5/5</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">83.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/66</span>
49
+ <span class='fraction'>74/89</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,63 +79,78 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file low" data-value="alerts.model.mongodb.js"><a href="alerts.model.mongodb.js.html">alerts.model.mongodb.js</a></td>
83
- <td data-value="0" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
82
+ <td class="file high" data-value="alerts.model.mongodb.js"><a href="alerts.model.mongodb.js.html">alerts.model.mongodb.js</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
- <td data-value="0" class="pct low">0%</td>
87
- <td data-value="7" class="abs low">0/7</td>
88
- <td data-value="0" class="pct low">0%</td>
89
- <td data-value="1" class="abs low">0/1</td>
90
- <td data-value="0" class="pct low">0%</td>
91
- <td data-value="1" class="abs low">0/1</td>
92
- <td data-value="0" class="pct low">0%</td>
93
- <td data-value="7" class="abs low">0/7</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="7" class="abs high">7/7</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="2" class="abs high">2/2</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="1" class="abs high">1/1</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="7" class="abs high">7/7</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file low" data-value="catalog.model.mongodb.js"><a href="catalog.model.mongodb.js.html">catalog.model.mongodb.js</a></td>
98
- <td data-value="0" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
97
+ <td class="file medium" data-value="catalog.model.mongodb.js"><a href="catalog.model.mongodb.js.html">catalog.model.mongodb.js</a></td>
98
+ <td data-value="60.71" class="pic medium">
99
+ <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
100
100
  </td>
101
- <td data-value="0" class="pct low">0%</td>
102
- <td data-value="14" class="abs low">0/14</td>
103
- <td data-value="0" class="pct low">0%</td>
104
- <td data-value="1" class="abs low">0/1</td>
105
- <td data-value="0" class="pct low">0%</td>
106
- <td data-value="1" class="abs low">0/1</td>
107
- <td data-value="0" class="pct low">0%</td>
108
- <td data-value="14" class="abs low">0/14</td>
101
+ <td data-value="60.71" class="pct medium">60.71%</td>
102
+ <td data-value="28" class="abs medium">17/28</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="8" class="abs high">8/8</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="1" class="abs high">1/1</td>
107
+ <td data-value="60.71" class="pct medium">60.71%</td>
108
+ <td data-value="28" class="abs medium">17/28</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file low" data-value="features.model.mongodb.js"><a href="features.model.mongodb.js.html">features.model.mongodb.js</a></td>
113
- <td data-value="0" class="pic low">
114
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
112
+ <td class="file high" data-value="features.model.mongodb.js"><a href="features.model.mongodb.js.html">features.model.mongodb.js</a></td>
113
+ <td data-value="89.18" class="pic high">
114
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
115
115
  </td>
116
- <td data-value="0" class="pct low">0%</td>
117
- <td data-value="37" class="abs low">0/37</td>
118
- <td data-value="0" class="pct low">0%</td>
119
- <td data-value="1" class="abs low">0/1</td>
120
- <td data-value="0" class="pct low">0%</td>
121
- <td data-value="1" class="abs low">0/1</td>
122
- <td data-value="0" class="pct low">0%</td>
123
- <td data-value="37" class="abs low">0/37</td>
116
+ <td data-value="89.18" class="pct high">89.18%</td>
117
+ <td data-value="37" class="abs high">33/37</td>
118
+ <td data-value="55.55" class="pct medium">55.55%</td>
119
+ <td data-value="9" class="abs medium">5/9</td>
120
+ <td data-value="100" class="pct high">100%</td>
121
+ <td data-value="1" class="abs high">1/1</td>
122
+ <td data-value="89.18" class="pct high">89.18%</td>
123
+ <td data-value="37" class="abs high">33/37</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
127
- <td class="file low" data-value="projects.model.mongodb.js"><a href="projects.model.mongodb.js.html">projects.model.mongodb.js</a></td>
128
- <td data-value="0" class="pic low">
129
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
127
+ <td class="file high" data-value="projects.model.mongodb.js"><a href="projects.model.mongodb.js.html">projects.model.mongodb.js</a></td>
128
+ <td data-value="100" class="pic high">
129
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
130
  </td>
131
- <td data-value="0" class="pct low">0%</td>
132
- <td data-value="8" class="abs low">0/8</td>
133
- <td data-value="0" class="pct low">0%</td>
134
- <td data-value="1" class="abs low">0/1</td>
135
- <td data-value="0" class="pct low">0%</td>
136
- <td data-value="1" class="abs low">0/1</td>
137
- <td data-value="0" class="pct low">0%</td>
138
- <td data-value="8" class="abs low">0/8</td>
131
+ <td data-value="100" class="pct high">100%</td>
132
+ <td data-value="8" class="abs high">8/8</td>
133
+ <td data-value="100" class="pct high">100%</td>
134
+ <td data-value="2" class="abs high">2/2</td>
135
+ <td data-value="100" class="pct high">100%</td>
136
+ <td data-value="1" class="abs high">1/1</td>
137
+ <td data-value="100" class="pct high">100%</td>
138
+ <td data-value="8" class="abs high">8/8</td>
139
+ </tr>
140
+
141
+ <tr>
142
+ <td class="file high" data-value="styles.model.mongodb.js"><a href="styles.model.mongodb.js.html">styles.model.mongodb.js</a></td>
143
+ <td data-value="100" class="pic high">
144
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
145
+ </td>
146
+ <td data-value="100" class="pct high">100%</td>
147
+ <td data-value="9" class="abs high">9/9</td>
148
+ <td data-value="100" class="pct high">100%</td>
149
+ <td data-value="2" class="abs high">2/2</td>
150
+ <td data-value="100" class="pct high">100%</td>
151
+ <td data-value="1" class="abs high">1/1</td>
152
+ <td data-value="100" class="pct high">100%</td>
153
+ <td data-value="9" class="abs high">9/9</td>
139
154
  </tr>
140
155
 
141
156
  </tbody>
@@ -146,7 +161,7 @@
146
161
  <div class='footer quiet pad2 space-top1 center small'>
147
162
  Code coverage generated by
148
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2025-02-18T09:52:45.605Z
164
+ at 2025-07-24T10:00:20.476Z
150
165
  </div>
151
166
  <script src="../../../prettify.js"></script>
152
167
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/8</span>
28
+ <span class='fraction'>8/8</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">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>1/1</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/8</span>
49
+ <span class='fraction'>8/8</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>
@@ -71,22 +71,22 @@
71
71
  <a name='L6'></a><a href='#L6'>6</a>
72
72
  <a name='L7'></a><a href='#L7'>7</a>
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
75
- <span class="cline-any cline-no">&nbsp;</span>
76
- <span class="cline-any cline-no">&nbsp;</span>
77
- <span class="cline-any cline-no">&nbsp;</span>
78
- <span class="cline-any cline-no">&nbsp;</span>
79
- <span class="cline-any cline-no">&nbsp;</span>
80
- <span class="cline-any cline-no">&nbsp;</span>
81
- <span class="cline-any cline-no">&nbsp;</span>
82
- <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" >export default function (app, options) {</span></span></span>
83
- <span class="cstat-no" title="statement not covered" > const db = options.db || app.db</span>
84
- <span class="cstat-no" title="statement not covered" > options.Model = db.collection('projects')</span>
85
- <span class="cstat-no" title="statement not covered" > // Collation provided in query ensure sorting to be case insensitive w.r.t. user's language</span>
86
- <span class="cstat-no" title="statement not covered" > // We built indices with collation to cover the most used languages, it requires different naming...</span>
87
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex({ name: 1 }, { name: 'name-en', collation: { locale: 'en', strength: 1 } })</span>
88
- <span class="cstat-no" title="statement not covered" > options.Model.createIndex({ name: 1 }, { name: 'name-fr', collation: { locale: 'fr', strength: 1 } })</span>
89
- <span class="cstat-no" title="statement not covered" >}</span>
74
+ <a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
75
+ <span class="cline-any cline-yes">1x</span>
76
+ <span class="cline-any cline-yes">1x</span>
77
+ <span class="cline-any cline-yes">1x</span>
78
+ <span class="cline-any cline-yes">1x</span>
79
+ <span class="cline-any cline-yes">1x</span>
80
+ <span class="cline-any cline-yes">1x</span>
81
+ <span class="cline-any cline-yes">1x</span>
82
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export default function (app, options) {
83
+ const db = options.db || app.db
84
+ options.Model = db.collection('projects')
85
+ // Collation provided in query ensure sorting to be case insensitive w.r.t. user's language
86
+ // We built indices with collation to cover the most used languages, it requires different naming...
87
+ options.Model.createIndex({ name: 1 }, { name: 'name-en', collation: { locale: 'en', strength: 1 } })
88
+ options.Model.createIndex({ name: 1 }, { name: 'name-fr', collation: { locale: 'fr', strength: 1 } })
89
+ }
90
90
  &nbsp;</pre></td></tr></table></pre>
91
91
 
92
92
  <div class='push'></div><!-- for sticky footer -->
@@ -94,7 +94,7 @@
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
- at 2025-02-18T09:52:45.605Z
97
+ at 2025-07-24T10:00:20.476Z
98
98
  </div>
99
99
  <script src="../../../prettify.js"></script>
100
100
  <script>
@@ -0,0 +1,112 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for map/api/models/styles.model.mongodb.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">map/api/models</a> styles.model.mongodb.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>9/9</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>2/2</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>9/9</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
76
+ <span class="cline-any cline-yes">4x</span>
77
+ <span class="cline-any cline-yes">4x</span>
78
+ <span class="cline-any cline-yes">4x</span>
79
+ <span class="cline-any cline-yes">4x</span>
80
+ <span class="cline-any cline-yes">4x</span>
81
+ <span class="cline-any cline-yes">4x</span>
82
+ <span class="cline-any cline-yes">4x</span>
83
+ <span class="cline-any cline-yes">4x</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export default function (app, options) {
85
+ const db = options.db || app.db
86
+ options.Model = db.collection('styles')
87
+ // Collation provided in query ensure sorting to be case insensitive w.r.t. user's language
88
+ // We built indices with collation to cover the most used languages, it requires different naming...
89
+ options.Model.createIndex({ name: 1 }, { name: 'name-en', collation: { locale: 'en', strength: 1 } })
90
+ options.Model.createIndex({ name: 1 }, { name: 'name-fr', collation: { locale: 'fr', strength: 1 } })
91
+ options.Model.createIndex({ name: 'text' })
92
+ }
93
+ &nbsp;</pre></td></tr></table></pre>
94
+
95
+ <div class='push'></div><!-- for sticky footer -->
96
+ </div><!-- /wrapper -->
97
+ <div class='footer quiet pad2 space-top1 center small'>
98
+ Code coverage generated by
99
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
+ at 2025-07-24T10:00:20.476Z
101
+ </div>
102
+ <script src="../../../prettify.js"></script>
103
+ <script>
104
+ window.onload = function () {
105
+ prettyPrint();
106
+ };
107
+ </script>
108
+ <script src="../../../sorter.js"></script>
109
+ <script src="../../../block-navigation.js"></script>
110
+ </body>
111
+ </html>
112
+