@kalisio/kdk 2.5.1 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/core/api/hooks/hooks.authorisations.js +1 -2
  2. package/core/api/services/authorisations/authorisations.service.js +1 -3
  3. package/core/api/services/index.js +5 -1
  4. package/core/api/services/users/users.hooks.js +4 -3
  5. package/core/client/utils/index.js +1 -0
  6. package/coverage/core/api/application.js.html +1 -1
  7. package/coverage/core/api/authentication.js.html +1 -1
  8. package/coverage/core/api/db.js.html +1 -1
  9. package/coverage/core/api/hooks/hooks.authentication.js.html +1 -1
  10. package/coverage/core/api/hooks/hooks.authorisations.js.html +44 -50
  11. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  12. package/coverage/core/api/hooks/hooks.logger.js.html +1 -1
  13. package/coverage/core/api/hooks/hooks.model.js.html +8 -20
  14. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  15. package/coverage/core/api/hooks/hooks.push.js.html +23 -23
  16. package/coverage/core/api/hooks/hooks.query.js.html +9 -9
  17. package/coverage/core/api/hooks/hooks.schemas.js.html +1 -1
  18. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  19. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  20. package/coverage/core/api/hooks/hooks.users.js.html +4 -4
  21. package/coverage/core/api/hooks/index.html +24 -24
  22. package/coverage/core/api/hooks/index.js.html +1 -1
  23. package/coverage/core/api/index.html +5 -5
  24. package/coverage/core/api/index.js.html +1 -1
  25. package/coverage/core/api/marshall.js.html +9 -9
  26. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  27. package/coverage/core/api/models/index.html +1 -1
  28. package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
  29. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  30. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  31. package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
  32. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  33. package/coverage/core/api/services/account/account.service.js.html +1 -1
  34. package/coverage/core/api/services/account/index.html +1 -1
  35. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  36. package/coverage/core/api/services/authorisations/authorisations.service.js.html +50 -44
  37. package/coverage/core/api/services/authorisations/index.html +18 -18
  38. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  39. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  40. package/coverage/core/api/services/databases/index.html +1 -1
  41. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  42. package/coverage/core/api/services/groups/index.html +1 -1
  43. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  44. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  45. package/coverage/core/api/services/import-export/index.html +1 -1
  46. package/coverage/core/api/services/index.html +1 -1
  47. package/coverage/core/api/services/index.js.html +1 -1
  48. package/coverage/core/api/services/mailer/index.html +1 -1
  49. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  50. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  51. package/coverage/core/api/services/messages/index.html +5 -5
  52. package/coverage/core/api/services/messages/messages.hooks.js.html +8 -11
  53. package/coverage/core/api/services/organisations/index.html +1 -1
  54. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  55. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  56. package/coverage/core/api/services/push/index.html +1 -1
  57. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  58. package/coverage/core/api/services/push/push.service.js.html +1 -1
  59. package/coverage/core/api/services/storage/index.html +1 -1
  60. package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
  61. package/coverage/core/api/services/storage/storage.service.js.html +1 -1
  62. package/coverage/core/api/services/tags/index.html +1 -1
  63. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  64. package/coverage/core/api/services/users/index.html +1 -1
  65. package/coverage/core/api/services/users/users.hooks.js.html +1 -1
  66. package/coverage/core/api/services/users/users.service.js.html +1 -1
  67. package/coverage/core/api/utils.js.html +1 -1
  68. package/coverage/core/common/errors.js.html +1 -1
  69. package/coverage/core/common/index.html +1 -1
  70. package/coverage/core/common/index.js.html +1 -1
  71. package/coverage/core/common/permissions.js.html +1 -1
  72. package/coverage/core/common/schema.js.html +1 -1
  73. package/coverage/core/common/utils.js.html +1 -1
  74. package/coverage/core/common/utils.offline.js.html +1 -1
  75. package/coverage/index.html +41 -56
  76. package/coverage/lcov-report/core/api/application.js.html +1 -1
  77. package/coverage/lcov-report/core/api/authentication.js.html +1 -1
  78. package/coverage/lcov-report/core/api/db.js.html +1 -1
  79. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +1 -1
  80. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +44 -50
  81. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  82. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +1 -1
  83. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +8 -20
  84. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  85. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +23 -23
  86. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +9 -9
  87. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +1 -1
  88. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  89. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  90. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +4 -4
  91. package/coverage/lcov-report/core/api/hooks/index.html +24 -24
  92. package/coverage/lcov-report/core/api/hooks/index.js.html +1 -1
  93. package/coverage/lcov-report/core/api/index.html +5 -5
  94. package/coverage/lcov-report/core/api/index.js.html +1 -1
  95. package/coverage/lcov-report/core/api/marshall.js.html +9 -9
  96. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  97. package/coverage/lcov-report/core/api/models/index.html +1 -1
  98. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
  99. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  100. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  101. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
  102. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  103. package/coverage/lcov-report/core/api/services/account/account.service.js.html +1 -1
  104. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  105. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  106. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +50 -44
  107. package/coverage/lcov-report/core/api/services/authorisations/index.html +18 -18
  108. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  109. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  110. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  111. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  112. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  113. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  114. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  115. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  116. package/coverage/lcov-report/core/api/services/index.html +1 -1
  117. package/coverage/lcov-report/core/api/services/index.js.html +1 -1
  118. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  119. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  120. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  121. package/coverage/lcov-report/core/api/services/messages/index.html +5 -5
  122. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +8 -11
  123. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  124. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  125. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  126. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  127. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  128. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  129. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  130. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
  131. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +1 -1
  132. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  133. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  134. package/coverage/lcov-report/core/api/services/users/index.html +1 -1
  135. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
  136. package/coverage/lcov-report/core/api/services/users/users.service.js.html +1 -1
  137. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  138. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  139. package/coverage/lcov-report/core/common/index.html +1 -1
  140. package/coverage/lcov-report/core/common/index.js.html +1 -1
  141. package/coverage/lcov-report/core/common/permissions.js.html +1 -1
  142. package/coverage/lcov-report/core/common/schema.js.html +1 -1
  143. package/coverage/lcov-report/core/common/utils.js.html +1 -1
  144. package/coverage/lcov-report/core/common/utils.offline.js.html +1 -1
  145. package/coverage/lcov-report/index.html +41 -56
  146. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +6 -96
  147. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
  148. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +43 -19
  149. package/coverage/lcov-report/map/api/hooks/index.html +7 -7
  150. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  151. package/coverage/lcov-report/map/api/index.html +1 -1
  152. package/coverage/lcov-report/map/api/index.js.html +1 -1
  153. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  154. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  155. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +7 -49
  156. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  157. package/coverage/lcov-report/map/api/models/index.html +7 -22
  158. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
  159. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  160. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  161. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  162. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +9 -24
  163. package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
  164. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  165. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  166. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
  167. package/coverage/lcov-report/map/api/services/features/features.service.js.html +1 -1
  168. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  169. package/coverage/lcov-report/map/api/services/index.html +5 -5
  170. package/coverage/lcov-report/map/api/services/index.js.html +18 -126
  171. package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
  172. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
  173. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  174. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  175. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  176. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  177. package/coverage/lcov-report/map/common/index.html +5 -5
  178. package/coverage/lcov-report/map/common/index.js.html +1 -1
  179. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  180. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  181. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  182. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  183. package/coverage/lcov-report/map/common/permissions.js.html +4 -10
  184. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  185. package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
  186. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +3 -3
  187. package/coverage/lcov-report/map/common/wcs-utils.js.html +9 -9
  188. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  189. package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
  190. package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
  191. package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
  192. package/coverage/lcov.info +349 -505
  193. package/coverage/map/api/hooks/hooks.catalog.js.html +6 -96
  194. package/coverage/map/api/hooks/hooks.features.js.html +1 -1
  195. package/coverage/map/api/hooks/hooks.query.js.html +43 -19
  196. package/coverage/map/api/hooks/index.html +7 -7
  197. package/coverage/map/api/hooks/index.js.html +1 -1
  198. package/coverage/map/api/index.html +1 -1
  199. package/coverage/map/api/index.js.html +1 -1
  200. package/coverage/map/api/marshall.js.html +1 -1
  201. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  202. package/coverage/map/api/models/catalog.model.mongodb.js.html +7 -49
  203. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  204. package/coverage/map/api/models/index.html +7 -22
  205. package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
  206. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  207. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  208. package/coverage/map/api/services/alerts/index.html +1 -1
  209. package/coverage/map/api/services/catalog/catalog.hooks.js.html +9 -24
  210. package/coverage/map/api/services/catalog/index.html +5 -5
  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 +1 -1
  214. package/coverage/map/api/services/features/features.service.js.html +1 -1
  215. package/coverage/map/api/services/features/index.html +1 -1
  216. package/coverage/map/api/services/index.html +5 -5
  217. package/coverage/map/api/services/index.js.html +18 -126
  218. package/coverage/map/api/services/projects/index.html +1 -1
  219. package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
  220. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  221. package/coverage/map/common/errors.js.html +1 -1
  222. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  223. package/coverage/map/common/grid.js.html +1 -1
  224. package/coverage/map/common/index.html +5 -5
  225. package/coverage/map/common/index.js.html +1 -1
  226. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  227. package/coverage/map/common/moment-utils.js.html +1 -1
  228. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  229. package/coverage/map/common/opendap-utils.js.html +1 -1
  230. package/coverage/map/common/permissions.js.html +4 -10
  231. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  232. package/coverage/map/common/tms-utils.js.html +6 -6
  233. package/coverage/map/common/wcs-grid-source.js.html +3 -3
  234. package/coverage/map/common/wcs-utils.js.html +9 -9
  235. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  236. package/coverage/map/common/wfs-utils.js.html +11 -11
  237. package/coverage/map/common/wms-utils.js.html +8 -8
  238. package/coverage/map/common/wmts-utils.js.html +7 -7
  239. package/coverage/tmp/coverage-122123-1739872365211-0.json +1 -0
  240. package/coverage/tmp/coverage-122135-1739872365196-0.json +1 -0
  241. package/coverage/tmp/coverage-122146-1739872365184-0.json +1 -0
  242. package/coverage/tmp/coverage-122158-1739872365169-0.json +1 -0
  243. package/coverage/tmp/coverage-122165-1739872365141-0.json +1 -0
  244. package/map/api/hooks/hooks.query.js +7 -4
  245. package/map/client/components/stickies/KAttribution.vue +8 -7
  246. package/map/client/i18n/map_fr.json +1 -1
  247. package/map/client/leaflet/utils/utils.geojson.js +5 -4
  248. package/package.json +1 -1
  249. package/test/api/core/index.test.js +49 -60
  250. package/test/api/core/test-log-2025-05-26.log +22 -0
  251. package/test/api/map/test-log-2025-05-26.log +12 -0
  252. package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +0 -112
  253. package/coverage/lcov-report/map/api/services/styles/index.html +0 -116
  254. package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +0 -196
  255. package/coverage/map/api/models/styles.model.mongodb.js.html +0 -112
  256. package/coverage/map/api/services/styles/index.html +0 -116
  257. package/coverage/map/api/services/styles/styles.hooks.js.html +0 -196
  258. package/coverage/tmp/coverage-323534-1747828879483-0.json +0 -1
  259. package/coverage/tmp/coverage-323546-1747828879453-0.json +0 -1
  260. package/coverage/tmp/coverage-323557-1747828879439-0.json +0 -1
  261. package/coverage/tmp/coverage-323569-1747828879416-0.json +0 -1
  262. package/coverage/tmp/coverage-323576-1747828879390-0.json +0 -1
  263. package/test/api/core/test-log-2025-02-05.log +0 -23
  264. package/test/api/core/test-log-2025-05-21.log +0 -15
@@ -284,8 +284,7 @@ export function updateAbilities (options = {}) {
284
284
  if (options.fetchSubject) {
285
285
  subject = await app.getService('users').get(subject._id.toString())
286
286
  }
287
- const abilities = await authorisationService.updateAbilities(subject)
288
- debug('Abilities updated on subject', subject, abilities.rules)
287
+ await authorisationService.updateAbilities(subject)
289
288
  return hook
290
289
  }
291
290
  }
@@ -42,7 +42,6 @@ export default {
42
42
  }, {
43
43
  user: params.user
44
44
  })
45
- await this.updateAbilities(subject)
46
45
  debug('Authorisation ' + data.permissions + ' set for subject ' + subject._id + ' on resource ' + params.resource._id + ' with scope ' + scopeName)
47
46
  return subject
48
47
  }))
@@ -75,7 +74,6 @@ export default {
75
74
  }, {
76
75
  user: params.user
77
76
  })
78
- await this.updateAbilities(subject)
79
77
  debug('Authorisation unset for subject ' + subject._id + ' on resource ' + id + ' with scope ' + scopeName)
80
78
  return subject
81
79
  }
@@ -119,7 +117,7 @@ export default {
119
117
  const abilities = await defineAbilities(subject, this.app)
120
118
 
121
119
  if (cacheKey) {
122
- debug('Updating user abilities of subject ' + (subject ? subject._id : ANONYMOUS_USER) + ' with cache key ' + cacheKey)
120
+ debug('Updating abilities of subject ' + (subject ? subject._id : ANONYMOUS_USER) + ' with cache key ' + cacheKey)
123
121
  this.cache.set(cacheKey, abilities)
124
122
  }
125
123
 
@@ -18,7 +18,11 @@ export function getServiceNameAndContext (servicePath) {
18
18
  // Then without context if any
19
19
  const lastSlash = name.lastIndexOf('/')
20
20
  const contextId = (lastSlash >= 0 ? name.substring(0, lastSlash) : '')
21
- if (contextId && ObjectID.isValid(contextId)) {
21
+ // Check if a string is a valid MongoDB Object ID.
22
+ // We don't use ObjectID.isValid as it returns true for any string that contains 12 characters: https://jira.mongodb.org/browse/NODE-4912.
23
+ // Regular expression that checks for hex value
24
+ const checkForHexRegExp = /^[0-9a-fA-F]{24}$/
25
+ if (contextId && (contextId.length === 24) && checkForHexRegExp.test(contextId)) {
22
26
  name = name.replace(contextId + '/', '')
23
27
  return { name, contextId }
24
28
  } else {
@@ -56,9 +56,10 @@ export default {
56
56
  ],
57
57
  find: [],
58
58
  get: [],
59
- create: [updateAbilities()],
60
- update: [],
61
- patch: [sendNewSubscriptionEmail],
59
+ create: [updateAbilities({ subjectAsItem: true })],
60
+ update: [updateAbilities({ subjectAsItem: true })],
61
+ // Fetch user in this case as we might only have partial data and miss permission properties
62
+ patch: [updateAbilities({ subjectAsItem: true, fetchSubject: true }), sendNewSubscriptionEmail],
62
63
  remove: []
63
64
  },
64
65
 
@@ -188,6 +188,7 @@ export function dotify (object) {
188
188
  const checkForHexRegExp = /^[0-9a-fA-F]{24}$/
189
189
 
190
190
  // Check if a string is a valid MongoDB Object ID
191
+ // We don't use ObjectID.isValid as it returns true for any string that contains 12 characters: https://jira.mongodb.org/browse/NODE-4912.
191
192
  export function isObjectID (id) {
192
193
  return (id.length === 24 && checkForHexRegExp.test(id))
193
194
  }
@@ -1855,7 +1855,7 @@ export function kdk (config = {}) {
1855
1855
  <div class='footer quiet pad2 space-top1 center small'>
1856
1856
  Code coverage generated by
1857
1857
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1858
- at 2025-05-21T12:01:19.803Z
1858
+ at 2025-02-18T09:52:45.605Z
1859
1859
  </div>
1860
1860
  <script src="../../prettify.js"></script>
1861
1861
  <script>
@@ -859,7 +859,7 @@ export default function auth (app) {
859
859
  <div class='footer quiet pad2 space-top1 center small'>
860
860
  Code coverage generated by
861
861
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
862
- at 2025-05-21T12:01:19.803Z
862
+ at 2025-02-18T09:52:45.605Z
863
863
  </div>
864
864
  <script src="../../prettify.js"></script>
865
865
  <script>
@@ -778,7 +778,7 @@ export class MongoDatabase extends Database {
778
778
  <div class='footer quiet pad2 space-top1 center small'>
779
779
  Code coverage generated by
780
780
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
781
- at 2025-05-21T12:01:19.803Z
781
+ at 2025-02-18T09:52:45.605Z
782
782
  </div>
783
783
  <script src="../../prettify.js"></script>
784
784
  <script>
@@ -124,7 +124,7 @@ export function discardAuthenticationProviders (hook) {
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at 2025-05-21T12:01:19.803Z
127
+ at 2025-02-18T09:52:45.605Z
128
128
  </div>
129
129
  <script src="../../../prettify.js"></script>
130
130
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.75% </span>
26
+ <span class="strong">80.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>235/291</span>
28
+ <span class='fraction'>232/289</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.75% </span>
47
+ <span class="strong">80.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>235/291</span>
49
+ <span class='fraction'>232/289</span>
50
50
  </div>
51
51
 
52
52
 
@@ -353,9 +353,7 @@
353
353
  <a name='L288'></a><a href='#L288'>288</a>
354
354
  <a name='L289'></a><a href='#L289'>289</a>
355
355
  <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
356
+ <a name='L291'></a><a href='#L291'>291</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
359
357
  <span class="cline-any cline-yes">1x</span>
360
358
  <span class="cline-any cline-yes">1x</span>
361
359
  <span class="cline-any cline-yes">1x</span>
@@ -502,57 +500,55 @@
502
500
  <span class="cline-any cline-yes">4x</span>
503
501
  <span class="cline-any cline-yes">1x</span>
504
502
  <span class="cline-any cline-yes">1x</span>
505
- <span class="cline-any cline-yes">105x</span>
503
+ <span class="cline-any cline-yes">106x</span>
506
504
  <span class="cline-any cline-no">&nbsp;</span>
507
505
  <span class="cline-any cline-no">&nbsp;</span>
508
- <span class="cline-any cline-yes">105x</span>
509
- <span class="cline-any cline-yes">105x</span>
510
- <span class="cline-any cline-yes">105x</span>
511
- <span class="cline-any cline-yes">105x</span>
512
- <span class="cline-any cline-yes">105x</span>
513
- <span class="cline-any cline-yes">105x</span>
514
- <span class="cline-any cline-yes">105x</span>
515
- <span class="cline-any cline-yes">105x</span>
516
- <span class="cline-any cline-yes">105x</span>
517
- <span class="cline-any cline-yes">105x</span>
518
- <span class="cline-any cline-yes">105x</span>
519
- <span class="cline-any cline-yes">105x</span>
506
+ <span class="cline-any cline-yes">106x</span>
507
+ <span class="cline-any cline-yes">106x</span>
508
+ <span class="cline-any cline-yes">106x</span>
509
+ <span class="cline-any cline-yes">106x</span>
510
+ <span class="cline-any cline-yes">106x</span>
511
+ <span class="cline-any cline-yes">106x</span>
512
+ <span class="cline-any cline-yes">106x</span>
513
+ <span class="cline-any cline-yes">106x</span>
514
+ <span class="cline-any cline-yes">106x</span>
515
+ <span class="cline-any cline-yes">106x</span>
516
+ <span class="cline-any cline-yes">106x</span>
517
+ <span class="cline-any cline-yes">106x</span>
520
518
  <span class="cline-any cline-yes">10x</span>
521
519
  <span class="cline-any cline-yes">10x</span>
522
520
  <span class="cline-any cline-yes">10x</span>
523
- <span class="cline-any cline-yes">105x</span>
524
- <span class="cline-any cline-yes">105x</span>
521
+ <span class="cline-any cline-yes">106x</span>
522
+ <span class="cline-any cline-yes">106x</span>
525
523
  <span class="cline-any cline-yes">5x</span>
526
524
  <span class="cline-any cline-yes">5x</span>
527
525
  <span class="cline-any cline-yes">5x</span>
528
- <span class="cline-any cline-yes">105x</span>
529
- <span class="cline-any cline-yes">105x</span>
526
+ <span class="cline-any cline-yes">106x</span>
527
+ <span class="cline-any cline-yes">106x</span>
530
528
  <span class="cline-any cline-no">&nbsp;</span>
531
529
  <span class="cline-any cline-no">&nbsp;</span>
532
530
  <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-yes">105x</span>
534
- <span class="cline-any cline-yes">105x</span>
531
+ <span class="cline-any cline-yes">106x</span>
532
+ <span class="cline-any cline-yes">106x</span>
535
533
  <span class="cline-any cline-yes">6x</span>
536
534
  <span class="cline-any cline-yes">6x</span>
537
535
  <span class="cline-any cline-yes">6x</span>
538
536
  <span class="cline-any cline-yes">6x</span>
539
537
  <span class="cline-any cline-yes">6x</span>
540
- <span class="cline-any cline-yes">105x</span>
541
- <span class="cline-any cline-yes">105x</span>
542
- <span class="cline-any cline-yes">105x</span>
538
+ <span class="cline-any cline-yes">106x</span>
539
+ <span class="cline-any cline-yes">106x</span>
540
+ <span class="cline-any cline-yes">106x</span>
543
541
  <span class="cline-any cline-yes">4x</span>
544
542
  <span class="cline-any cline-yes">4x</span>
545
543
  <span class="cline-any cline-yes">4x</span>
546
544
  <span class="cline-any cline-yes">4x</span>
547
545
  <span class="cline-any cline-yes">4x</span>
548
- <span class="cline-any cline-yes">1x</span>
549
- <span class="cline-any cline-yes">1x</span>
550
- <span class="cline-any cline-yes">1x</span>
546
+ <span class="cline-any cline-yes">2x</span>
547
+ <span class="cline-any cline-yes">2x</span>
548
+ <span class="cline-any cline-yes">2x</span>
551
549
  <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-yes">1x</span>
553
- <span class="cline-any cline-yes">1x</span>
554
- <span class="cline-any cline-yes">1x</span>
555
- <span class="cline-any cline-yes">1x</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
551
+ <span class="cline-any cline-yes">2x</span>
556
552
  <span class="cline-any cline-yes">4x</span>
557
553
  <span class="cline-any cline-yes">4x</span>
558
554
  <span class="cline-any cline-yes">4x</span>
@@ -620,13 +616,13 @@
620
616
  <span class="cline-any cline-yes">2x</span>
621
617
  <span class="cline-any cline-yes">2x</span>
622
618
  <span class="cline-any cline-yes">2x</span>
623
- <span class="cline-any cline-yes">105x</span>
624
- <span class="cline-any cline-yes">101x</span>
625
- <span class="cline-any cline-yes">101x</span>
619
+ <span class="cline-any cline-yes">106x</span>
626
620
  <span class="cline-any cline-yes">102x</span>
627
621
  <span class="cline-any cline-yes">102x</span>
628
- <span class="cline-any cline-yes">102x</span>
629
- <span class="cline-any cline-yes">105x</span>
622
+ <span class="cline-any cline-yes">103x</span>
623
+ <span class="cline-any cline-yes">103x</span>
624
+ <span class="cline-any cline-yes">103x</span>
625
+ <span class="cline-any cline-yes">106x</span>
630
626
  <span class="cline-any cline-yes">1x</span>
631
627
  <span class="cline-any cline-yes">1x</span>
632
628
  <span class="cline-any cline-yes">1x</span>
@@ -834,16 +830,14 @@ export async function authorise (hook) {
834
830
  if (checkAuthorisation) {
835
831
  // Build ability for user
836
832
  const authorisationService = hook.app.getService('authorisations')
833
+ // If no user we allow for a stateless token with permissions inside
837
834
  let subject = hook.params.user
838
- const payload = _.get(hook.params, 'authentication.payload')
839
- if (payload) {
840
- // If no user we allow for a stateless token with permissions inside, e.g.
841
- // token targeting API gateway (sub = keyId) or app used through iframe (appId = keyId)
842
- if (!subject <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; (payload.sub || payload.appId))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
835
+ if (!subject) {
836
+ const payload = _.get(hook.params, 'authentication.payload')
837
+ // Token targeting API gateway (sub = keyId) or app used through iframe (appId = keyId)
838
+ if (payload <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; (payload.sub || payload.appId))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
843
839
  <span class="cstat-no" title="statement not covered" > subject = Object.assign({ _id: (payload.sub || payload.appId) }, payload)</span>
844
- } else if (subject) { // Otherwise we allow to "extend" user abilities by providing additional information in the token
845
- subject = Object.assign(subject, _.omit(payload, ['aud', 'iss', 'exp', 'sub', 'iat', 'jti', 'nbf']))
846
- }
840
+ <span class="cstat-no" title="statement not covered" > }</span>
847
841
  }
848
842
  const abilities = await authorisationService.getAbilities(subject)
849
843
  hook.params.abilities = abilities
@@ -946,7 +940,7 @@ export function updateAbilities (options = {}) {
946
940
  <div class='footer quiet pad2 space-top1 center small'>
947
941
  Code coverage generated by
948
942
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
949
- at 2025-05-21T12:01:19.803Z
943
+ at 2025-02-18T09:52:45.605Z
950
944
  </div>
951
945
  <script src="../../../prettify.js"></script>
952
946
  <script>
@@ -214,7 +214,7 @@ export function removeGroupAuthorisations (hook) {
214
214
  <div class='footer quiet pad2 space-top1 center small'>
215
215
  Code coverage generated by
216
216
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
217
- at 2025-02-05T08:47:28.411Z
217
+ at 2025-01-28T16:38:17.914Z
218
218
  </div>
219
219
  <script src="../../../prettify.js"></script>
220
220
  <script>
@@ -148,7 +148,7 @@ export function log (hook) {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at 2025-05-21T12:01:19.803Z
151
+ at 2025-02-18T09:52:45.605Z
152
152
  </div>
153
153
  <script src="../../../prettify.js"></script>
154
154
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">76.53% </span>
26
+ <span class="strong">77.24% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>225/294</span>
28
+ <span class='fraction'>224/290</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">58.73% </span>
33
+ <span class="strong">59.67% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>37/63</span>
35
+ <span class='fraction'>37/62</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.53% </span>
47
+ <span class="strong">77.24% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>225/294</span>
49
+ <span class='fraction'>224/290</span>
50
50
  </div>
51
51
 
52
52
 
@@ -353,11 +353,7 @@
353
353
  <a name='L288'></a><a href='#L288'>288</a>
354
354
  <a name='L289'></a><a href='#L289'>289</a>
355
355
  <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
356
+ <a name='L291'></a><a href='#L291'>291</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
361
357
  <span class="cline-any cline-yes">1x</span>
362
358
  <span class="cline-any cline-yes">1x</span>
363
359
  <span class="cline-any cline-yes">1x</span>
@@ -593,10 +589,6 @@
593
589
  <span class="cline-any cline-yes">1x</span>
594
590
  <span class="cline-any cline-yes">4x</span>
595
591
  <span class="cline-any cline-yes">4x</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
599
- <span class="cline-any cline-yes">4x</span>
600
592
  <span class="cline-any cline-yes">4x</span>
601
593
  <span class="cline-any cline-yes">4x</span>
602
594
  <span class="cline-any cline-yes">4x</span>
@@ -886,10 +878,6 @@ export <span class="fstat-no" title="function not covered" >async function disti
886
878
  // Check for already existing object according to given service/id field
887
879
  export function checkUnique (options = {}) {
888
880
  return async (hook) =&gt; {
889
- if (hook.app) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
890
- <span class="cstat-no" title="statement not covered" > const serviceConfig = hook.app.get(hook.service.name)</span>
891
- <span class="cstat-no" title="statement not covered" > if (serviceConfig &amp;&amp; serviceConfig.checkUnique) options = serviceConfig.checkUnique</span>
892
- <span class="cstat-no" title="statement not covered" > }</span>
893
881
  const service = (options.service <span class="branch-0 cbranch-no" title="branch not covered" >? hook.app.getService(options.service) </span>: hook.service)
894
882
  const field = options.field <span class="branch-0 cbranch-no" title="branch not covered" >|| 'name'</span>
895
883
  const id = _.get(hook, `data.${field}`)
@@ -952,7 +940,7 @@ export function preventChanges (ifThrow, fieldNames) {
952
940
  <div class='footer quiet pad2 space-top1 center small'>
953
941
  Code coverage generated by
954
942
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
955
- at 2025-05-21T12:01:19.803Z
943
+ at 2025-02-18T09:52:45.605Z
956
944
  </div>
957
945
  <script src="../../../prettify.js"></script>
958
946
  <script>
@@ -526,7 +526,7 @@ export function removeOrganisationResources (resourceScope) {
526
526
  <div class='footer quiet pad2 space-top1 center small'>
527
527
  Code coverage generated by
528
528
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
529
- at 2025-02-05T08:47:28.411Z
529
+ at 2025-01-28T16:38:17.914Z
530
530
  </div>
531
531
  <script src="../../../prettify.js"></script>
532
532
  <script>
@@ -136,22 +136,22 @@
136
136
  <span class="cline-any cline-yes">2x</span>
137
137
  <span class="cline-any cline-yes">1x</span>
138
138
  <span class="cline-any cline-yes">1x</span>
139
- <span class="cline-any cline-yes">13x</span>
139
+ <span class="cline-any cline-yes">15x</span>
140
140
  <span class="cline-any cline-no">&nbsp;</span>
141
141
  <span class="cline-any cline-no">&nbsp;</span>
142
- <span class="cline-any cline-yes">13x</span>
143
- <span class="cline-any cline-yes">13x</span>
144
- <span class="cline-any cline-yes">13x</span>
145
- <span class="cline-any cline-yes">13x</span>
146
- <span class="cline-any cline-yes">13x</span>
142
+ <span class="cline-any cline-yes">15x</span>
143
+ <span class="cline-any cline-yes">15x</span>
144
+ <span class="cline-any cline-yes">15x</span>
145
+ <span class="cline-any cline-yes">15x</span>
146
+ <span class="cline-any cline-yes">15x</span>
147
147
  <span class="cline-any cline-yes">4x</span>
148
148
  <span class="cline-any cline-yes">4x</span>
149
- <span class="cline-any cline-yes">13x</span>
149
+ <span class="cline-any cline-yes">15x</span>
150
150
  <span class="cline-any cline-yes">2x</span>
151
151
  <span class="cline-any cline-yes">2x</span>
152
152
  <span class="cline-any cline-no">&nbsp;</span>
153
153
  <span class="cline-any cline-yes">2x</span>
154
- <span class="cline-any cline-yes">13x</span>
154
+ <span class="cline-any cline-yes">15x</span>
155
155
  <span class="cline-any cline-no">&nbsp;</span>
156
156
  <span class="cline-any cline-no">&nbsp;</span>
157
157
  <span class="cline-any cline-no">&nbsp;</span>
@@ -162,27 +162,27 @@
162
162
  <span class="cline-any cline-yes">2x</span>
163
163
  <span class="cline-any cline-yes">2x</span>
164
164
  <span class="cline-any cline-yes">2x</span>
165
- <span class="cline-any cline-yes">13x</span>
166
- <span class="cline-any cline-yes">13x</span>
167
- <span class="cline-any cline-yes">13x</span>
168
- <span class="cline-any cline-yes">13x</span>
169
- <span class="cline-any cline-yes">13x</span>
170
- <span class="cline-any cline-yes">13x</span>
171
- <span class="cline-any cline-yes">13x</span>
172
- <span class="cline-any cline-yes">13x</span>
173
- <span class="cline-any cline-yes">13x</span>
174
- <span class="cline-any cline-yes">13x</span>
175
- <span class="cline-any cline-yes">13x</span>
176
- <span class="cline-any cline-yes">13x</span>
165
+ <span class="cline-any cline-yes">15x</span>
166
+ <span class="cline-any cline-yes">15x</span>
167
+ <span class="cline-any cline-yes">15x</span>
168
+ <span class="cline-any cline-yes">15x</span>
169
+ <span class="cline-any cline-yes">15x</span>
170
+ <span class="cline-any cline-yes">15x</span>
171
+ <span class="cline-any cline-yes">15x</span>
172
+ <span class="cline-any cline-yes">15x</span>
173
+ <span class="cline-any cline-yes">15x</span>
174
+ <span class="cline-any cline-yes">15x</span>
175
+ <span class="cline-any cline-yes">15x</span>
176
+ <span class="cline-any cline-yes">15x</span>
177
177
  <span class="cline-any cline-yes">2x</span>
178
178
  <span class="cline-any cline-yes">2x</span>
179
179
  <span class="cline-any cline-yes">2x</span>
180
180
  <span class="cline-any cline-yes">2x</span>
181
- <span class="cline-any cline-yes">13x</span>
181
+ <span class="cline-any cline-yes">15x</span>
182
182
  <span class="cline-any cline-no">&nbsp;</span>
183
183
  <span class="cline-any cline-no">&nbsp;</span>
184
184
  <span class="cline-any cline-no">&nbsp;</span>
185
- <span class="cline-any cline-yes">13x</span>
185
+ <span class="cline-any cline-yes">15x</span>
186
186
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import emails from 'email-templates'
187
187
  import path from 'path'
188
188
  import makeDebug from 'debug'
@@ -250,7 +250,7 @@ export async function sendNewSubscriptionEmail (hook) {
250
250
  <div class='footer quiet pad2 space-top1 center small'>
251
251
  Code coverage generated by
252
252
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
253
- at 2025-05-21T12:01:19.803Z
253
+ at 2025-02-18T09:52:45.605Z
254
254
  </div>
255
255
  <script src="../../../prettify.js"></script>
256
256
  <script>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">51.16% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>22/43</span>
35
+ <span class='fraction'>21/42</span>
36
36
  </div>
37
37
 
38
38
 
@@ -340,12 +340,12 @@
340
340
  <span class="cline-any cline-no">&nbsp;</span>
341
341
  <span class="cline-any cline-yes">1x</span>
342
342
  <span class="cline-any cline-yes">1x</span>
343
- <span class="cline-any cline-yes">4x</span>
344
- <span class="cline-any cline-yes">4x</span>
345
- <span class="cline-any cline-yes">3x</span>
346
- <span class="cline-any cline-yes">3x</span>
347
- <span class="cline-any cline-yes">3x</span>
348
- <span class="cline-any cline-yes">4x</span>
343
+ <span class="cline-any cline-yes">1x</span>
344
+ <span class="cline-any cline-yes">1x</span>
345
+ <span class="cline-any cline-yes">1x</span>
346
+ <span class="cline-any cline-yes">1x</span>
347
+ <span class="cline-any cline-yes">1x</span>
348
+ <span class="cline-any cline-yes">1x</span>
349
349
  <span class="cline-any cline-yes">1x</span>
350
350
  <span class="cline-any cline-yes">1x</span>
351
351
  <span class="cline-any cline-no">&nbsp;</span>
@@ -847,7 +847,7 @@ export function diacriticSearch (options = {}) {
847
847
  <div class='footer quiet pad2 space-top1 center small'>
848
848
  Code coverage generated by
849
849
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
850
- at 2025-05-21T12:01:19.803Z
850
+ at 2025-02-18T09:52:45.605Z
851
851
  </div>
852
852
  <script src="../../../prettify.js"></script>
853
853
  <script>
@@ -283,7 +283,7 @@ export function validateData (schema) {
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at 2025-05-21T12:01:19.803Z
286
+ at 2025-02-18T09:52:45.605Z
287
287
  </div>
288
288
  <script src="../../../prettify.js"></script>
289
289
  <script>
@@ -304,7 +304,7 @@ export function countLimit (options) {
304
304
  <div class='footer quiet pad2 space-top1 center small'>
305
305
  Code coverage generated by
306
306
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
307
- at 2025-05-21T12:01:19.803Z
307
+ at 2025-02-18T09:52:45.605Z
308
308
  </div>
309
309
  <script src="../../../prettify.js"></script>
310
310
  <script>
@@ -178,7 +178,7 @@ export <span class="fstat-no" title="function not covered" >function removeAttac
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
181
- at 2025-05-21T12:01:19.803Z
181
+ at 2025-02-18T09:52:45.605Z
182
182
  </div>
183
183
  <script src="../../../prettify.js"></script>
184
184
  <script>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.88% </span>
33
+ <span class="strong">64.86% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>23/36</span>
35
+ <span class='fraction'>24/37</span>
36
36
  </div>
37
37
 
38
38
 
@@ -357,7 +357,7 @@
357
357
  <span class="cline-any cline-yes">1x</span>
358
358
  <span class="cline-any cline-yes">1x</span>
359
359
  <span class="cline-any cline-yes">1x</span>
360
- <span class="cline-any cline-yes">1x</span>
360
+ <span class="cline-any cline-yes">2x</span>
361
361
  <span class="cline-any cline-yes">1x</span>
362
362
  <span class="cline-any cline-yes">1x</span>
363
363
  <span class="cline-any cline-yes">1x</span>
@@ -580,7 +580,7 @@ export function removeVerification (hook) {
580
580
  <div class='footer quiet pad2 space-top1 center small'>
581
581
  Code coverage generated by
582
582
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
583
- at 2025-05-21T12:01:19.803Z
583
+ at 2025-02-18T09:52:45.605Z
584
584
  </div>
585
585
  <script src="../../../prettify.js"></script>
586
586
  <script>