unleash-server 7.5.1 → 7.6.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 (466) hide show
  1. package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -1
  2. package/dist/lib/addons/feature-event-formatter-md-events.js +16 -1
  3. package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -1
  4. package/dist/lib/addons/slack-app-definition.d.ts.map +1 -1
  5. package/dist/lib/addons/slack-app-definition.js +4 -1
  6. package/dist/lib/addons/slack-app-definition.js.map +1 -1
  7. package/dist/lib/app.d.ts.map +1 -1
  8. package/dist/lib/app.js +11 -25
  9. package/dist/lib/app.js.map +1 -1
  10. package/dist/lib/create-config.d.ts.map +1 -1
  11. package/dist/lib/create-config.js +3 -0
  12. package/dist/lib/create-config.js.map +1 -1
  13. package/dist/lib/db/api-token-store.d.ts +4 -1
  14. package/dist/lib/db/api-token-store.d.ts.map +1 -1
  15. package/dist/lib/db/api-token-store.js +17 -3
  16. package/dist/lib/db/api-token-store.js.map +1 -1
  17. package/dist/lib/error/bad-gateway-error.d.ts +7 -0
  18. package/dist/lib/error/bad-gateway-error.d.ts.map +1 -0
  19. package/dist/lib/error/bad-gateway-error.js +9 -0
  20. package/dist/lib/error/bad-gateway-error.js.map +1 -0
  21. package/dist/lib/error/gateway-timeout-error.d.ts +7 -0
  22. package/dist/lib/error/gateway-timeout-error.d.ts.map +1 -0
  23. package/dist/lib/error/gateway-timeout-error.js +9 -0
  24. package/dist/lib/error/gateway-timeout-error.js.map +1 -0
  25. package/dist/lib/error/index.d.ts +3 -1
  26. package/dist/lib/error/index.d.ts.map +1 -1
  27. package/dist/lib/error/index.js +3 -1
  28. package/dist/lib/error/index.js.map +1 -1
  29. package/dist/lib/error/unleash-error.d.ts +1 -1
  30. package/dist/lib/error/unleash-error.d.ts.map +1 -1
  31. package/dist/lib/error/unleash-error.js +2 -0
  32. package/dist/lib/error/unleash-error.js.map +1 -1
  33. package/dist/lib/events/index.d.ts +4 -1
  34. package/dist/lib/events/index.d.ts.map +1 -1
  35. package/dist/lib/events/index.js +6 -0
  36. package/dist/lib/events/index.js.map +1 -1
  37. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.d.ts.map +1 -1
  38. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.js +5 -0
  39. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.js.map +1 -1
  40. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.d.ts +2 -0
  41. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.d.ts.map +1 -0
  42. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.js +53 -0
  43. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.js.map +1 -0
  44. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.d.ts.map +1 -1
  45. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.js +5 -0
  46. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.js.map +1 -1
  47. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.d.ts +2 -0
  48. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.d.ts.map +1 -0
  49. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.js +59 -0
  50. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.js.map +1 -0
  51. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts +9 -3
  52. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts.map +1 -1
  53. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js +165 -92
  54. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js.map +1 -1
  55. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js +475 -1
  56. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js.map +1 -1
  57. package/dist/lib/features/client-feature-toggles/delta/delta-cache.d.ts.map +1 -1
  58. package/dist/lib/features/client-feature-toggles/delta/delta-cache.js +3 -0
  59. package/dist/lib/features/client-feature-toggles/delta/delta-cache.js.map +1 -1
  60. package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js +15 -0
  61. package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js.map +1 -1
  62. package/dist/lib/features/client-feature-toggles/delta/visible-revision.d.ts +3 -0
  63. package/dist/lib/features/client-feature-toggles/delta/visible-revision.d.ts.map +1 -0
  64. package/dist/lib/features/client-feature-toggles/delta/visible-revision.js +16 -0
  65. package/dist/lib/features/client-feature-toggles/delta/visible-revision.js.map +1 -0
  66. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.d.ts +2 -0
  67. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.d.ts.map +1 -0
  68. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.js +25 -0
  69. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.js.map +1 -0
  70. package/dist/lib/features/context/context.d.ts +0 -1
  71. package/dist/lib/features/context/context.d.ts.map +1 -1
  72. package/dist/lib/features/context/context.js +7 -15
  73. package/dist/lib/features/context/context.js.map +1 -1
  74. package/dist/lib/features/edgetokens/edge-token-store.d.ts +2 -0
  75. package/dist/lib/features/edgetokens/edge-token-store.d.ts.map +1 -1
  76. package/dist/lib/features/edgetokens/edge-token-store.js +20 -0
  77. package/dist/lib/features/edgetokens/edge-token-store.js.map +1 -1
  78. package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts +2 -0
  79. package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts.map +1 -1
  80. package/dist/lib/features/edgetokens/fake-edge-token-store.js +6 -0
  81. package/dist/lib/features/edgetokens/fake-edge-token-store.js.map +1 -1
  82. package/dist/lib/features/events/event-store.d.ts +2 -4
  83. package/dist/lib/features/events/event-store.d.ts.map +1 -1
  84. package/dist/lib/features/events/event-store.js +1 -4
  85. package/dist/lib/features/events/event-store.js.map +1 -1
  86. package/dist/lib/features/feature-search/feature-search-controller.d.ts.map +1 -1
  87. package/dist/lib/features/feature-search/feature-search-controller.js +2 -1
  88. package/dist/lib/features/feature-search/feature-search-controller.js.map +1 -1
  89. package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
  90. package/dist/lib/features/feature-search/feature-search-service.js +5 -0
  91. package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
  92. package/dist/lib/features/feature-search/feature-search-store.d.ts.map +1 -1
  93. package/dist/lib/features/feature-search/feature-search-store.js +17 -1
  94. package/dist/lib/features/feature-search/feature-search-store.js.map +1 -1
  95. package/dist/lib/features/feature-search/feature.search.e2e.test.js +56 -1
  96. package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
  97. package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts +1 -2
  98. package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts.map +1 -1
  99. package/dist/lib/features/feature-toggle/configuration-revision-service.js +2 -10
  100. package/dist/lib/features/feature-toggle/configuration-revision-service.js.map +1 -1
  101. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
  102. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +3 -2
  103. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
  104. package/dist/lib/features/feature-toggle/types/feature-toggle-strategies-store-type.d.ts +1 -0
  105. package/dist/lib/features/feature-toggle/types/feature-toggle-strategies-store-type.d.ts.map +1 -1
  106. package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
  107. package/dist/lib/features/frontend-api/frontend-api-service.js +8 -0
  108. package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
  109. package/dist/lib/features/frontend-api/frontend-api.e2e.test.js +43 -0
  110. package/dist/lib/features/frontend-api/frontend-api.e2e.test.js.map +1 -1
  111. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.d.ts +3 -0
  112. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.d.ts.map +1 -0
  113. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.js +1071 -0
  114. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.js.map +1 -0
  115. package/dist/lib/features/index.d.ts +1 -0
  116. package/dist/lib/features/index.d.ts.map +1 -1
  117. package/dist/lib/features/index.js +1 -0
  118. package/dist/lib/features/index.js.map +1 -1
  119. package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
  120. package/dist/lib/features/instance-stats/instance-stats-service.js +1 -3
  121. package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
  122. package/dist/lib/features/metrics/impact/impact-metrics.e2e.test.js +12 -12
  123. package/dist/lib/features/metrics/impact/impact-metrics.e2e.test.js.map +1 -1
  124. package/dist/lib/features/metrics/impact/metrics-translator.d.ts +5 -2
  125. package/dist/lib/features/metrics/impact/metrics-translator.d.ts.map +1 -1
  126. package/dist/lib/features/metrics/impact/metrics-translator.js +86 -102
  127. package/dist/lib/features/metrics/impact/metrics-translator.js.map +1 -1
  128. package/dist/lib/features/metrics/impact/metrics-translator.test.js +70 -112
  129. package/dist/lib/features/metrics/impact/metrics-translator.test.js.map +1 -1
  130. package/dist/lib/features/project/createProjectService.d.ts.map +1 -1
  131. package/dist/lib/features/project/createProjectService.js +6 -0
  132. package/dist/lib/features/project/createProjectService.js.map +1 -1
  133. package/dist/lib/features/project/project-service.d.ts +2 -1
  134. package/dist/lib/features/project/project-service.d.ts.map +1 -1
  135. package/dist/lib/features/project/project-service.js +3 -1
  136. package/dist/lib/features/project/project-service.js.map +1 -1
  137. package/dist/lib/features/project-environments/project-environments.e2e.test.js +37 -0
  138. package/dist/lib/features/project-environments/project-environments.e2e.test.js.map +1 -1
  139. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts.map +1 -1
  140. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js +2 -5
  141. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js.map +1 -1
  142. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js +2 -2
  143. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js.map +1 -1
  144. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts +2 -1
  145. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts.map +1 -1
  146. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js +20 -3
  147. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js.map +1 -1
  148. package/dist/lib/features/release-plans/release-plan-milestone-strategy.d.ts +2 -0
  149. package/dist/lib/features/release-plans/release-plan-milestone-strategy.d.ts.map +1 -1
  150. package/dist/lib/features/release-plans/release-plan-store.d.ts.map +1 -1
  151. package/dist/lib/features/release-plans/release-plan-store.js +2 -0
  152. package/dist/lib/features/release-plans/release-plan-store.js.map +1 -1
  153. package/dist/lib/features/release-plans/release-plan-template-store.d.ts.map +1 -1
  154. package/dist/lib/features/release-plans/release-plan-template-store.js +4 -3
  155. package/dist/lib/features/release-plans/release-plan-template-store.js.map +1 -1
  156. package/dist/lib/features/release-plans/release-plan-template-store.test.d.ts +2 -0
  157. package/dist/lib/features/release-plans/release-plan-template-store.test.d.ts.map +1 -0
  158. package/dist/lib/features/release-plans/release-plan-template-store.test.js +47 -0
  159. package/dist/lib/features/release-plans/release-plan-template-store.test.js.map +1 -0
  160. package/dist/lib/metric-events.d.ts +3 -2
  161. package/dist/lib/metric-events.d.ts.map +1 -1
  162. package/dist/lib/metric-events.js +2 -1
  163. package/dist/lib/metric-events.js.map +1 -1
  164. package/dist/lib/middleware/api-token-middleware.d.ts.map +1 -1
  165. package/dist/lib/middleware/api-token-middleware.js +1 -5
  166. package/dist/lib/middleware/api-token-middleware.js.map +1 -1
  167. package/dist/lib/middleware/api-token-middleware.test.js +35 -25
  168. package/dist/lib/middleware/api-token-middleware.test.js.map +1 -1
  169. package/dist/lib/middleware/backend-token-middleware.d.ts +5 -0
  170. package/dist/lib/middleware/backend-token-middleware.d.ts.map +1 -0
  171. package/dist/lib/middleware/backend-token-middleware.js +61 -0
  172. package/dist/lib/middleware/backend-token-middleware.js.map +1 -0
  173. package/dist/lib/middleware/backend-token-middleware.test.d.ts +2 -0
  174. package/dist/lib/middleware/backend-token-middleware.test.d.ts.map +1 -0
  175. package/dist/lib/middleware/backend-token-middleware.test.js +73 -0
  176. package/dist/lib/middleware/backend-token-middleware.test.js.map +1 -0
  177. package/dist/lib/middleware/conditional-middleware.d.ts +20 -0
  178. package/dist/lib/middleware/conditional-middleware.d.ts.map +1 -1
  179. package/dist/lib/middleware/conditional-middleware.js +26 -0
  180. package/dist/lib/middleware/conditional-middleware.js.map +1 -1
  181. package/dist/lib/middleware/conditional-middleware.test.d.ts +2 -0
  182. package/dist/lib/middleware/conditional-middleware.test.d.ts.map +1 -0
  183. package/dist/lib/middleware/conditional-middleware.test.js +31 -0
  184. package/dist/lib/middleware/conditional-middleware.test.js.map +1 -0
  185. package/dist/lib/middleware/frontend-token-middleware.d.ts +5 -0
  186. package/dist/lib/middleware/frontend-token-middleware.d.ts.map +1 -0
  187. package/dist/lib/middleware/frontend-token-middleware.js +61 -0
  188. package/dist/lib/middleware/frontend-token-middleware.js.map +1 -0
  189. package/dist/lib/middleware/user-token-client-api-logger-middleware.js +1 -1
  190. package/dist/lib/middleware/user-token-client-api-logger-middleware.js.map +1 -1
  191. package/dist/lib/openapi/spec/event-schema.d.ts +1 -1
  192. package/dist/lib/openapi/spec/event-search-response-schema.d.ts +1 -1
  193. package/dist/lib/openapi/spec/events-schema.d.ts +1 -1
  194. package/dist/lib/openapi/spec/export-result-schema.d.ts +1018 -100
  195. package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
  196. package/dist/lib/openapi/spec/export-result-schema.js +4 -2
  197. package/dist/lib/openapi/spec/export-result-schema.js.map +1 -1
  198. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.d.ts +168 -0
  199. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.d.ts.map +1 -0
  200. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.js +66 -0
  201. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.js.map +1 -0
  202. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +265 -7
  203. package/dist/lib/openapi/spec/feature-environment-schema.d.ts.map +1 -1
  204. package/dist/lib/openapi/spec/feature-environment-schema.js +13 -0
  205. package/dist/lib/openapi/spec/feature-environment-schema.js.map +1 -1
  206. package/dist/lib/openapi/spec/feature-events-schema.d.ts +1 -1
  207. package/dist/lib/openapi/spec/feature-schema.d.ts +475 -16
  208. package/dist/lib/openapi/spec/feature-schema.d.ts.map +1 -1
  209. package/dist/lib/openapi/spec/feature-schema.js +4 -2
  210. package/dist/lib/openapi/spec/feature-schema.js.map +1 -1
  211. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +688 -14
  212. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts.map +1 -1
  213. package/dist/lib/openapi/spec/feature-search-environment-schema.js +8 -0
  214. package/dist/lib/openapi/spec/feature-search-environment-schema.js.map +1 -1
  215. package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts +10 -1
  216. package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts.map +1 -1
  217. package/dist/lib/openapi/spec/feature-search-query-parameters.js +10 -0
  218. package/dist/lib/openapi/spec/feature-search-query-parameters.js.map +1 -1
  219. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +8097 -155
  220. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts.map +1 -1
  221. package/dist/lib/openapi/spec/feature-search-response-schema.js +22 -0
  222. package/dist/lib/openapi/spec/feature-search-response-schema.js.map +1 -1
  223. package/dist/lib/openapi/spec/health-overview-schema.d.ts +1336 -210
  224. package/dist/lib/openapi/spec/health-overview-schema.d.ts.map +1 -1
  225. package/dist/lib/openapi/spec/health-overview-schema.js +8 -0
  226. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  227. package/dist/lib/openapi/spec/health-report-schema.d.ts +1336 -210
  228. package/dist/lib/openapi/spec/health-report-schema.d.ts.map +1 -1
  229. package/dist/lib/openapi/spec/import-toggles-schema.d.ts +2 -2
  230. package/dist/lib/openapi/spec/import-toggles-schema.d.ts.map +1 -1
  231. package/dist/lib/openapi/spec/import-toggles-schema.js +4 -2
  232. package/dist/lib/openapi/spec/import-toggles-schema.js.map +1 -1
  233. package/dist/lib/openapi/spec/index.d.ts +4 -2
  234. package/dist/lib/openapi/spec/index.d.ts.map +1 -1
  235. package/dist/lib/openapi/spec/index.js +4 -2
  236. package/dist/lib/openapi/spec/index.js.map +1 -1
  237. package/dist/lib/openapi/spec/integration-event-schema.d.ts +1 -1
  238. package/dist/lib/openapi/spec/integration-events-schema.d.ts +2 -2
  239. package/dist/lib/openapi/spec/metric-query-schema.d.ts +6 -0
  240. package/dist/lib/openapi/spec/metric-query-schema.d.ts.map +1 -1
  241. package/dist/lib/openapi/spec/metric-query-schema.js +6 -0
  242. package/dist/lib/openapi/spec/metric-query-schema.js.map +1 -1
  243. package/dist/lib/openapi/spec/profile-schema.d.ts +475 -16
  244. package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
  245. package/dist/lib/openapi/spec/project-overview-schema.d.ts +1336 -210
  246. package/dist/lib/openapi/spec/project-overview-schema.d.ts.map +1 -1
  247. package/dist/lib/openapi/spec/project-overview-schema.js +8 -0
  248. package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
  249. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +1 -1
  250. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +1 -1
  251. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js +1 -1
  252. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js.map +1 -1
  253. package/dist/lib/openapi/spec/{safeguard-schema.d.ts → release-plan-safeguard-schema.d.ts} +16 -4
  254. package/dist/lib/openapi/spec/release-plan-safeguard-schema.d.ts.map +1 -0
  255. package/dist/lib/openapi/spec/{safeguard-schema.js → release-plan-safeguard-schema.js} +3 -3
  256. package/dist/lib/openapi/spec/release-plan-safeguard-schema.js.map +1 -0
  257. package/dist/lib/openapi/spec/release-plan-schema.d.ts +23 -5
  258. package/dist/lib/openapi/spec/release-plan-schema.d.ts.map +1 -1
  259. package/dist/lib/openapi/spec/release-plan-schema.js +3 -3
  260. package/dist/lib/openapi/spec/release-plan-schema.js.map +1 -1
  261. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +2 -2
  262. package/dist/lib/openapi/spec/release-plan-templates-schema.d.ts +2897 -0
  263. package/dist/lib/openapi/spec/release-plan-templates-schema.d.ts.map +1 -0
  264. package/dist/lib/openapi/spec/release-plan-templates-schema.js +29 -0
  265. package/dist/lib/openapi/spec/release-plan-templates-schema.js.map +1 -0
  266. package/dist/lib/openapi/spec/release-plans-schema.d.ts +45 -9
  267. package/dist/lib/openapi/spec/release-plans-schema.d.ts.map +1 -1
  268. package/dist/lib/openapi/spec/release-plans-schema.js +2 -2
  269. package/dist/lib/openapi/spec/release-plans-schema.js.map +1 -1
  270. package/dist/lib/openapi/spec/search-features-schema.d.ts +13694 -5078
  271. package/dist/lib/openapi/spec/search-features-schema.d.ts.map +1 -1
  272. package/dist/lib/routes/admin-api/api-token.js +1 -1
  273. package/dist/lib/routes/admin-api/api-token.js.map +1 -1
  274. package/dist/lib/routes/admin-api/project/api-token.js +1 -1
  275. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  276. package/dist/lib/routes/logout.js +1 -1
  277. package/dist/lib/routes/logout.js.map +1 -1
  278. package/dist/lib/routes/logout.test.js +4 -4
  279. package/dist/lib/routes/logout.test.js.map +1 -1
  280. package/dist/lib/schema/api-token-schema.d.ts.map +1 -1
  281. package/dist/lib/schema/api-token-schema.js +1 -0
  282. package/dist/lib/schema/api-token-schema.js.map +1 -1
  283. package/dist/lib/server-impl.d.ts +5 -5
  284. package/dist/lib/server-impl.d.ts.map +1 -1
  285. package/dist/lib/server-impl.js +3 -3
  286. package/dist/lib/server-impl.js.map +1 -1
  287. package/dist/lib/services/api-token-service.d.ts +2 -2
  288. package/dist/lib/services/api-token-service.d.ts.map +1 -1
  289. package/dist/lib/services/api-token-service.js +5 -3
  290. package/dist/lib/services/api-token-service.js.map +1 -1
  291. package/dist/lib/services/api-token-service.test.js +5 -4
  292. package/dist/lib/services/api-token-service.test.js.map +1 -1
  293. package/dist/lib/services/edge-service.d.ts +1 -0
  294. package/dist/lib/services/edge-service.d.ts.map +1 -1
  295. package/dist/lib/services/edge-service.js +5 -2
  296. package/dist/lib/services/edge-service.js.map +1 -1
  297. package/dist/lib/services/user-service.d.ts.map +1 -1
  298. package/dist/lib/services/user-service.js +0 -4
  299. package/dist/lib/services/user-service.js.map +1 -1
  300. package/dist/lib/types/experimental.d.ts +1 -1
  301. package/dist/lib/types/experimental.d.ts.map +1 -1
  302. package/dist/lib/types/experimental.js +7 -8
  303. package/dist/lib/types/experimental.js.map +1 -1
  304. package/dist/lib/types/model.d.ts +2 -1
  305. package/dist/lib/types/model.d.ts.map +1 -1
  306. package/dist/lib/types/model.js.map +1 -1
  307. package/dist/lib/types/option.d.ts +2 -0
  308. package/dist/lib/types/option.d.ts.map +1 -1
  309. package/dist/lib/types/stores/api-token-store.d.ts +2 -1
  310. package/dist/lib/types/stores/api-token-store.d.ts.map +1 -1
  311. package/dist/lib/types/stores/edge-store.d.ts +2 -0
  312. package/dist/lib/types/stores/edge-store.d.ts.map +1 -1
  313. package/dist/lib/types/stores/event-store.d.ts +1 -1
  314. package/dist/lib/types/stores/event-store.d.ts.map +1 -1
  315. package/dist/lib/util/clone-db-config.d.ts +3 -0
  316. package/dist/lib/util/clone-db-config.d.ts.map +1 -0
  317. package/dist/lib/util/clone-db-config.js +18 -0
  318. package/dist/lib/util/clone-db-config.js.map +1 -0
  319. package/dist/lib/util/clone-db-config.test.d.ts +2 -0
  320. package/dist/lib/util/clone-db-config.test.d.ts.map +1 -0
  321. package/dist/lib/util/clone-db-config.test.js +40 -0
  322. package/dist/lib/util/clone-db-config.test.js.map +1 -0
  323. package/dist/lib/util/db-lock.d.ts.map +1 -1
  324. package/dist/lib/util/db-lock.js +2 -3
  325. package/dist/lib/util/db-lock.js.map +1 -1
  326. package/dist/lib/util/sortStrategies.d.ts +1 -1
  327. package/dist/lib/util/sortStrategies.d.ts.map +1 -1
  328. package/dist/lib/util/sortStrategies.js +6 -2
  329. package/dist/lib/util/sortStrategies.js.map +1 -1
  330. package/dist/lib/util/sortStrategies.test.js +21 -0
  331. package/dist/lib/util/sortStrategies.test.js.map +1 -1
  332. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.d.ts +3 -0
  333. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.d.ts.map +1 -0
  334. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.js +15 -0
  335. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.js.map +1 -0
  336. package/dist/migrations/20260310134100-split-safeguards-table.d.ts +3 -0
  337. package/dist/migrations/20260310134100-split-safeguards-table.d.ts.map +1 -0
  338. package/dist/migrations/20260310134100-split-safeguards-table.js +31 -0
  339. package/dist/migrations/20260310134100-split-safeguards-table.js.map +1 -0
  340. package/dist/migrations/20260311073041-migrate-safeguards-data.d.ts +3 -0
  341. package/dist/migrations/20260311073041-migrate-safeguards-data.d.ts.map +1 -0
  342. package/dist/migrations/20260311073041-migrate-safeguards-data.js +42 -0
  343. package/dist/migrations/20260311073041-migrate-safeguards-data.js.map +1 -0
  344. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.d.ts +3 -0
  345. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.d.ts.map +1 -0
  346. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.js +31 -0
  347. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.js.map +1 -0
  348. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.d.ts +3 -0
  349. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.d.ts.map +1 -0
  350. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.js +8 -0
  351. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.js.map +1 -0
  352. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.d.ts +3 -0
  353. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.d.ts.map +1 -0
  354. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.js +54 -0
  355. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.js.map +1 -0
  356. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.d.ts +3 -0
  357. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.d.ts.map +1 -0
  358. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.js +21 -0
  359. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.js.map +1 -0
  360. package/dist/migrations/20260318100000-safeguards-drop-project-column.d.ts +3 -0
  361. package/dist/migrations/20260318100000-safeguards-drop-project-column.d.ts.map +1 -0
  362. package/dist/migrations/20260318100000-safeguards-drop-project-column.js +14 -0
  363. package/dist/migrations/20260318100000-safeguards-drop-project-column.js.map +1 -0
  364. package/dist/migrations/20260406132537-user-access-requests.d.ts +3 -0
  365. package/dist/migrations/20260406132537-user-access-requests.d.ts.map +1 -0
  366. package/dist/migrations/20260406132537-user-access-requests.js +16 -0
  367. package/dist/migrations/20260406132537-user-access-requests.js.map +1 -0
  368. package/dist/migrations/20260406161629-user-access-requests-unique-email.d.ts +3 -0
  369. package/dist/migrations/20260406161629-user-access-requests-unique-email.d.ts.map +1 -0
  370. package/dist/migrations/20260406161629-user-access-requests-unique-email.js +14 -0
  371. package/dist/migrations/20260406161629-user-access-requests-unique-email.js.map +1 -0
  372. package/dist/migrator.d.ts.map +1 -1
  373. package/dist/migrator.js +4 -3
  374. package/dist/migrator.js.map +1 -1
  375. package/dist/server-dev.js +4 -7
  376. package/dist/server-dev.js.map +1 -1
  377. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +5 -5
  378. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  379. package/dist/test/e2e/api/admin/api-token.e2e.test.js +3 -2
  380. package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
  381. package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js +106 -38
  382. package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js.map +1 -1
  383. package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js +1 -7
  384. package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js.map +1 -1
  385. package/dist/test/e2e/api/admin/project/api-token.e2e.test.js +2 -1
  386. package/dist/test/e2e/api/admin/project/api-token.e2e.test.js.map +1 -1
  387. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +5 -5
  388. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
  389. package/dist/test/e2e/api/admin/project-context.e2e.test.js +1 -7
  390. package/dist/test/e2e/api/admin/project-context.e2e.test.js.map +1 -1
  391. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +34 -1
  392. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  393. package/dist/test/e2e/services/api-token-service.e2e.test.js +21 -6
  394. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  395. package/dist/test/e2e/services/edge-service.e2e.test.js +4 -3
  396. package/dist/test/e2e/services/edge-service.e2e.test.js.map +1 -1
  397. package/dist/test/e2e/stores/api-token-store.e2e.test.js +15 -14
  398. package/dist/test/e2e/stores/api-token-store.e2e.test.js.map +1 -1
  399. package/dist/test/e2e/stores/event-store.e2e.test.js +8 -9
  400. package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
  401. package/dist/test/fixtures/fake-api-token-store.d.ts +2 -1
  402. package/dist/test/fixtures/fake-api-token-store.d.ts.map +1 -1
  403. package/dist/test/fixtures/fake-api-token-store.js +4 -1
  404. package/dist/test/fixtures/fake-api-token-store.js.map +1 -1
  405. package/dist/test/fixtures/fake-event-store.d.ts +1 -1
  406. package/dist/test/fixtures/fake-event-store.d.ts.map +1 -1
  407. package/dist/test/fixtures/fake-event-store.js +1 -1
  408. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  409. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts +2 -2
  410. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts.map +1 -1
  411. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js +3 -2
  412. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js.map +1 -1
  413. package/frontend/build/index.html +1 -1
  414. package/frontend/build/static/AdvancedPlayground-BTPrG6RW.js +3 -0
  415. package/frontend/build/static/BackendConnections-CRh8Vxoe.js +1 -0
  416. package/frontend/build/static/{CreateProject-DV-Ad8Sn.js → CreateProject-DEMalH1j.js} +1 -1
  417. package/frontend/build/static/EnterpriseEdge-Cp-pGMa0.js +6 -0
  418. package/frontend/build/static/FeatureMetricsChart-DQOE71LA.js +2 -0
  419. package/frontend/build/static/FeatureStaleDialog-B6BfnDiQ.js +689 -0
  420. package/frontend/build/static/{FeatureViewLazyExport-Bsw7-knb.js → FeatureViewLazyExport-BkNTNFqK.js} +4 -7
  421. package/frontend/build/static/FlagMetricsChart-zYDF9bet.js +2 -0
  422. package/frontend/build/static/FrontendNetworkTrafficUsage-CbxdFXH7.js +1 -0
  423. package/frontend/build/static/GridLayoutWrapper-Cq6Bzm36.js +3 -0
  424. package/frontend/build/static/ImpactMetricsPage-CFYXYXPb.js +1 -0
  425. package/frontend/build/static/LazyAdminExport-ByTh4iFa.js +38 -0
  426. package/frontend/build/static/LazyProjectExport-K12Xy3w9.js +46 -0
  427. package/frontend/build/static/{LifecycleChartComponent-cxR-TN3V.js → LifecycleChartComponent-DHvlFNd2.js} +3 -3
  428. package/frontend/build/static/LineChartComponent-BlhKm3cw.js +1 -0
  429. package/frontend/build/static/MarkCompletedDialogue-apmlFjVY.js +1 -0
  430. package/frontend/build/static/{NetworkOverview-DxaPXUzZ.js → NetworkOverview-BiLOuQ4c.js} +1 -1
  431. package/frontend/build/static/{NetworkPrometheusAPIWarning-ltyTlXFF.js → NetworkPrometheusAPIWarning-CYo3j2Tj.js} +1 -1
  432. package/frontend/build/static/{NetworkTraffic-Dhw4yIBs.js → NetworkTraffic-DONL5oIx.js} +1 -1
  433. package/frontend/build/static/NetworkTrafficUsage-DjQiYq0S.js +1 -0
  434. package/frontend/build/static/{PercentageDonut-JGNh2FVZ.js → PercentageDonut-CA9hYg3v.js} +1 -1
  435. package/frontend/build/static/{ReactJSONEditor-GHl7KvdS.js → ReactJSONEditor-9cJL1vJY.js} +31 -31
  436. package/frontend/build/static/{RoleCell-CjVCxBgl.js → RoleCell-ZzU5Oqy8.js} +1 -1
  437. package/frontend/build/static/Safeguard-DY1N4aPz.js +1 -0
  438. package/frontend/build/static/aggregateFeatureMetrics-D6bHft_C.js +1 -0
  439. package/frontend/build/static/{formatTickValue-BZb4ZIL9.js → formatTickValue-BcLsqREh.js} +2 -2
  440. package/frontend/build/static/{index-DcWBU_a4.js → index-B87DWXbl.js} +1 -1
  441. package/frontend/build/static/index-CoLhlfXP.js +565 -0
  442. package/frontend/build/static/loginBackground-CQx0IRYc.png +0 -0
  443. package/frontend/build/static/{networkTrafficUsageHighlightPlugin-BbfAyDiQ.js → networkTrafficUsageHighlightPlugin-CqEM-cK_.js} +1 -1
  444. package/frontend/build/static/passwordSuccess-fcvTEYOw.png +0 -0
  445. package/frontend/build/static/useApiTokens-ClWvohC9.js +1 -0
  446. package/frontend/package.json +50 -42
  447. package/package.json +11 -10
  448. package/dist/lib/openapi/spec/safeguard-schema.d.ts.map +0 -1
  449. package/dist/lib/openapi/spec/safeguard-schema.js.map +0 -1
  450. package/frontend/build/static/AdvancedPlayground-CF0hkpiE.js +0 -3
  451. package/frontend/build/static/BackendConnections-DhZczar-.js +0 -1
  452. package/frontend/build/static/EnterpriseEdge-D1To2ugP.js +0 -3
  453. package/frontend/build/static/FeatureMetricsChart-D8sRgx5P.js +0 -2
  454. package/frontend/build/static/FeatureStaleDialog-DOkhgvaj.js +0 -7
  455. package/frontend/build/static/FlagMetricsChart-CF_kEyQa.js +0 -2
  456. package/frontend/build/static/FrontendNetworkTrafficUsage-C8zJSvoc.js +0 -1
  457. package/frontend/build/static/GridLayoutWrapper-DpJcUbQB.js +0 -3
  458. package/frontend/build/static/ImpactMetricsPage-KLVv-tP4.js +0 -1
  459. package/frontend/build/static/LazyAdminExport-CWQiknO-.js +0 -38
  460. package/frontend/build/static/LazyProjectExport-DsMn4Yxm.js +0 -728
  461. package/frontend/build/static/LineChartComponent-_yZEp3dd.js +0 -1
  462. package/frontend/build/static/MarkCompletedDialogue-DFtLyDN0.js +0 -1
  463. package/frontend/build/static/NetworkTrafficUsage-deKWRhIS.js +0 -1
  464. package/frontend/build/static/aggregateFeatureMetrics-YEdZNNoV.js +0 -1
  465. package/frontend/build/static/index-DMSjiFEm.js +0 -583
  466. package/frontend/build/static/useApiTokens-DBB3NvXL.js +0 -1
@@ -1,5 +1,7 @@
1
- import { filterEventsByQuery } from './client-feature-toggle-delta.js';
1
+ import { EventEmitter } from 'events';
2
+ import { ClientFeatureToggleDelta, filterEventsByQuery, } from './client-feature-toggle-delta.js';
2
3
  import { DeltaCache } from './delta-cache.js';
4
+ import { FEATURE_PROJECT_CHANGE } from '../../../events/index.js';
3
5
  describe('filterEventsByQuery', () => {
4
6
  const mockEvents = [
5
7
  {
@@ -146,4 +148,476 @@ describe('DeltaCache hydration ordering', () => {
146
148
  ]);
147
149
  });
148
150
  });
151
+ describe('ClientFeatureToggleDelta bootstrap behavior', () => {
152
+ test('returns the same wildcard hydration revision for identical environment state across pods', async () => {
153
+ const createDelta = (globalRevisionId) => new ClientFeatureToggleDelta({
154
+ getAll: async ({ environment, }) => environment === 'production'
155
+ ? [
156
+ {
157
+ name: 'first',
158
+ project: 'default',
159
+ enabled: true,
160
+ },
161
+ ]
162
+ : [],
163
+ }, {
164
+ getAllForClientIds: async () => [],
165
+ }, {
166
+ getDeltaRevisionState: async () => ({
167
+ projectRevisions: new Map([['default', 85815]]),
168
+ globalSegmentRevision: 0,
169
+ }),
170
+ getMaxRevisionId: async () => globalRevisionId,
171
+ }, {
172
+ on: () => undefined,
173
+ }, {}, {
174
+ eventBus: new EventEmitter(),
175
+ getLogger: () => ({
176
+ error: () => undefined,
177
+ info: () => undefined,
178
+ }),
179
+ });
180
+ const stalePodDelta = createDelta(85815);
181
+ const freshPodDelta = createDelta(85923);
182
+ const stalePodResult = await stalePodDelta.getDelta(undefined, {
183
+ environment: 'production',
184
+ project: ['*'],
185
+ });
186
+ const freshPodResult = await freshPodDelta.getDelta(undefined, {
187
+ environment: 'production',
188
+ project: ['*'],
189
+ });
190
+ expect(stalePodResult).toBeDefined();
191
+ expect(freshPodResult).toBeDefined();
192
+ expect(stalePodResult?.events[0]?.eventId).toBe(freshPodResult?.events[0]?.eventId);
193
+ });
194
+ test('returns an empty hydration event on initial request for an empty environment', async () => {
195
+ const delta = new ClientFeatureToggleDelta({
196
+ getAll: async () => [],
197
+ }, {
198
+ getAllForClientIds: async () => [],
199
+ }, {
200
+ getDeltaRevisionState: async () => ({
201
+ projectRevisions: new Map(),
202
+ globalSegmentRevision: 0,
203
+ }),
204
+ getMaxRevisionId: async () => 0,
205
+ }, {
206
+ on: () => undefined,
207
+ }, {}, {
208
+ eventBus: new EventEmitter(),
209
+ getLogger: () => ({
210
+ error: () => undefined,
211
+ info: () => undefined,
212
+ }),
213
+ });
214
+ const result = await delta.getDelta(undefined, {
215
+ environment: 'production',
216
+ });
217
+ expect(result).toEqual({
218
+ events: [
219
+ {
220
+ eventId: 0,
221
+ type: 'hydration',
222
+ features: [],
223
+ segments: [],
224
+ },
225
+ ],
226
+ });
227
+ });
228
+ test('returns no delta when client explicitly requests revision 0 for an empty environment', async () => {
229
+ const delta = new ClientFeatureToggleDelta({
230
+ getAll: async () => [],
231
+ }, {
232
+ getAllForClientIds: async () => [],
233
+ }, {
234
+ getDeltaRevisionState: async () => ({
235
+ projectRevisions: new Map(),
236
+ globalSegmentRevision: 0,
237
+ }),
238
+ getMaxRevisionId: async () => 0,
239
+ }, {
240
+ on: () => undefined,
241
+ }, {}, {
242
+ eventBus: new EventEmitter(),
243
+ getLogger: () => ({
244
+ error: () => undefined,
245
+ info: () => undefined,
246
+ }),
247
+ });
248
+ const result = await delta.getDelta(0, {
249
+ environment: 'production',
250
+ });
251
+ expect(result).toBeUndefined();
252
+ });
253
+ test('does not emit a no-op delta for an unrelated environment change', async () => {
254
+ let currentRevisionId = 1;
255
+ const delta = new ClientFeatureToggleDelta({
256
+ getAll: async ({ environment, toggleNames = [] }) => {
257
+ const developmentFeature = {
258
+ name: 'first',
259
+ project: 'default',
260
+ enabled: false,
261
+ };
262
+ if (environment !== 'development') {
263
+ return [];
264
+ }
265
+ if (toggleNames.length === 0) {
266
+ return [developmentFeature];
267
+ }
268
+ // @ts-expect-error - toggle name not defined
269
+ return toggleNames.includes('first')
270
+ ? [developmentFeature]
271
+ : [];
272
+ },
273
+ }, {
274
+ getAllForClientIds: async () => [],
275
+ }, {
276
+ getDeltaRevisionState: async () => ({
277
+ projectRevisions: new Map([['default', 1]]),
278
+ globalSegmentRevision: 0,
279
+ }),
280
+ getRevisionRange: async () => [
281
+ {
282
+ id: 2,
283
+ type: 'feature-updated',
284
+ featureName: 'first',
285
+ project: 'default',
286
+ environment: 'production',
287
+ },
288
+ ],
289
+ getMaxRevisionId: async () => currentRevisionId,
290
+ }, {
291
+ on: () => undefined,
292
+ }, {
293
+ isEnabled: (name) => name === 'deltaApi',
294
+ }, {
295
+ eventBus: new EventEmitter(),
296
+ getLogger: () => ({
297
+ error: () => undefined,
298
+ info: () => undefined,
299
+ }),
300
+ });
301
+ await delta.getDelta(undefined, {
302
+ environment: 'development',
303
+ project: ['default'],
304
+ });
305
+ currentRevisionId = 2;
306
+ await delta.onUpdateRevisionEvent();
307
+ const result = await delta.getDelta(1, {
308
+ environment: 'development',
309
+ project: ['default'],
310
+ });
311
+ expect(result).toBeUndefined();
312
+ });
313
+ test('applies global events without environment to all initialized environments', async () => {
314
+ let currentRevisionId = 1;
315
+ const delta = new ClientFeatureToggleDelta({
316
+ getAll: async ({ environment, toggleNames = [] }) => {
317
+ const featuresByEnvironment = {
318
+ development: {
319
+ name: 'first',
320
+ project: 'default',
321
+ enabled: false,
322
+ },
323
+ production: {
324
+ name: 'first',
325
+ project: 'default',
326
+ enabled: true,
327
+ },
328
+ };
329
+ const feature = featuresByEnvironment[environment];
330
+ if (!feature) {
331
+ return [];
332
+ }
333
+ if (toggleNames.length === 0) {
334
+ return [feature];
335
+ }
336
+ // @ts-expect-error - toggle name not defined
337
+ return toggleNames.includes('first') ? [feature] : [];
338
+ },
339
+ }, {
340
+ getAllForClientIds: async () => [],
341
+ }, {
342
+ getDeltaRevisionState: async () => ({
343
+ projectRevisions: new Map([['default', 1]]),
344
+ globalSegmentRevision: 0,
345
+ }),
346
+ getRevisionRange: async () => [
347
+ {
348
+ id: 2,
349
+ type: 'feature-updated',
350
+ featureName: 'first',
351
+ project: 'default',
352
+ environment: null,
353
+ },
354
+ ],
355
+ getMaxRevisionId: async () => currentRevisionId,
356
+ }, {
357
+ on: () => undefined,
358
+ }, {
359
+ isEnabled: (name) => name === 'deltaApi',
360
+ }, {
361
+ eventBus: new EventEmitter(),
362
+ getLogger: () => ({
363
+ error: () => undefined,
364
+ info: () => undefined,
365
+ }),
366
+ });
367
+ await delta.getDelta(undefined, {
368
+ environment: 'development',
369
+ project: ['default'],
370
+ });
371
+ await delta.getDelta(undefined, {
372
+ environment: 'production',
373
+ project: ['default'],
374
+ });
375
+ currentRevisionId = 2;
376
+ await delta.onUpdateRevisionEvent();
377
+ const developmentResult = await delta.getDelta(1, {
378
+ environment: 'development',
379
+ project: ['default'],
380
+ });
381
+ const productionResult = await delta.getDelta(1, {
382
+ environment: 'production',
383
+ project: ['default'],
384
+ });
385
+ expect(developmentResult).toEqual({
386
+ events: [
387
+ {
388
+ eventId: 2,
389
+ type: 'feature-updated',
390
+ feature: {
391
+ name: 'first',
392
+ project: 'default',
393
+ enabled: false,
394
+ },
395
+ },
396
+ ],
397
+ });
398
+ expect(productionResult).toEqual({
399
+ events: [
400
+ {
401
+ eventId: 2,
402
+ type: 'feature-updated',
403
+ feature: {
404
+ name: 'first',
405
+ project: 'default',
406
+ enabled: true,
407
+ },
408
+ },
409
+ ],
410
+ });
411
+ });
412
+ test('feature project move emits feature-removed for old project and feature-updated for new project', async () => {
413
+ let currentRevisionId = 1;
414
+ const delta = new ClientFeatureToggleDelta({
415
+ getAll: async ({ environment, toggleNames = [] }) => {
416
+ const feature = {
417
+ name: 'moved-feature',
418
+ project: 'new-project',
419
+ enabled: true,
420
+ };
421
+ if (environment !== 'development')
422
+ return [];
423
+ if (toggleNames.length === 0)
424
+ return [feature];
425
+ // @ts-expect-error - toggle name not defined
426
+ return toggleNames.includes('moved-feature')
427
+ ? [feature]
428
+ : [];
429
+ },
430
+ }, {
431
+ getAllForClientIds: async () => [],
432
+ }, {
433
+ getDeltaRevisionState: async () => ({
434
+ projectRevisions: new Map([['old-project', 1]]),
435
+ globalSegmentRevision: 0,
436
+ }),
437
+ getRevisionRange: async () => [
438
+ {
439
+ id: 2,
440
+ type: FEATURE_PROJECT_CHANGE,
441
+ featureName: 'moved-feature',
442
+ project: 'new-project',
443
+ environment: null,
444
+ data: {
445
+ oldProject: 'old-project',
446
+ newProject: 'new-project',
447
+ },
448
+ },
449
+ ],
450
+ getMaxRevisionId: async () => currentRevisionId,
451
+ }, {
452
+ on: () => undefined,
453
+ }, {
454
+ isEnabled: (name) => name === 'deltaApi',
455
+ }, {
456
+ eventBus: new EventEmitter(),
457
+ getLogger: () => ({
458
+ error: () => undefined,
459
+ info: () => undefined,
460
+ }),
461
+ });
462
+ await delta.getDelta(undefined, {
463
+ environment: 'development',
464
+ project: ['*'],
465
+ });
466
+ currentRevisionId = 2;
467
+ await delta.onUpdateRevisionEvent();
468
+ const oldProjectResult = await delta.getDelta(1, {
469
+ environment: 'development',
470
+ project: ['old-project'],
471
+ });
472
+ const newProjectResult = await delta.getDelta(1, {
473
+ environment: 'development',
474
+ project: ['new-project'],
475
+ });
476
+ const bothProjectsResult = await delta.getDelta(1, {
477
+ environment: 'development',
478
+ project: ['old-project', 'new-project'],
479
+ });
480
+ expect(oldProjectResult).toEqual({
481
+ events: [
482
+ {
483
+ eventId: 2,
484
+ type: 'feature-removed',
485
+ featureName: 'moved-feature',
486
+ project: 'old-project',
487
+ },
488
+ ],
489
+ });
490
+ expect(newProjectResult).toEqual({
491
+ events: [
492
+ {
493
+ eventId: 2,
494
+ type: 'feature-updated',
495
+ feature: {
496
+ name: 'moved-feature',
497
+ project: 'new-project',
498
+ enabled: true,
499
+ },
500
+ },
501
+ ],
502
+ });
503
+ expect(bothProjectsResult).toEqual({
504
+ events: [
505
+ {
506
+ eventId: 2,
507
+ type: 'feature-removed',
508
+ featureName: 'moved-feature',
509
+ project: 'old-project',
510
+ },
511
+ {
512
+ eventId: 2,
513
+ type: 'feature-updated',
514
+ feature: {
515
+ name: 'moved-feature',
516
+ project: 'new-project',
517
+ enabled: true,
518
+ },
519
+ },
520
+ ],
521
+ });
522
+ });
523
+ test('bulk events pick the max revision id for the envelope', async () => {
524
+ let currentRevisionId = 1;
525
+ const delta = new ClientFeatureToggleDelta({
526
+ getAll: async ({ environment, toggleNames = [] }) => {
527
+ const featuresByEnvironment = {
528
+ development: {
529
+ name: 'first',
530
+ project: 'default',
531
+ enabled: false,
532
+ },
533
+ production: {
534
+ name: 'first',
535
+ project: 'default',
536
+ enabled: true,
537
+ },
538
+ };
539
+ const feature = featuresByEnvironment[environment];
540
+ if (!feature) {
541
+ return [];
542
+ }
543
+ if (toggleNames.length === 0) {
544
+ return [feature];
545
+ }
546
+ // @ts-expect-error - toggle name not defined
547
+ return toggleNames.includes('first') ? [feature] : [];
548
+ },
549
+ }, {
550
+ getAllForClientIds: async () => [],
551
+ }, {
552
+ getDeltaRevisionState: async () => ({
553
+ projectRevisions: new Map([['default', 1]]),
554
+ globalSegmentRevision: 0,
555
+ }),
556
+ getRevisionRange: async () => [
557
+ {
558
+ id: 2,
559
+ type: 'feature-updated',
560
+ featureName: 'first',
561
+ project: 'default',
562
+ environment: null,
563
+ },
564
+ ],
565
+ getMaxRevisionId: async () => currentRevisionId,
566
+ }, {
567
+ on: () => undefined,
568
+ }, {
569
+ isEnabled: (name) => name === 'deltaApi',
570
+ }, {
571
+ eventBus: new EventEmitter(),
572
+ getLogger: () => ({
573
+ error: () => undefined,
574
+ info: () => undefined,
575
+ }),
576
+ });
577
+ await delta.getDelta(undefined, {
578
+ environment: 'development',
579
+ project: ['default'],
580
+ });
581
+ await delta.getDelta(undefined, {
582
+ environment: 'production',
583
+ project: ['default'],
584
+ });
585
+ currentRevisionId = 2;
586
+ await delta.onUpdateRevisionEvent();
587
+ const developmentResult = await delta.getDelta(1, {
588
+ environment: 'development',
589
+ project: ['default'],
590
+ });
591
+ const productionResult = await delta.getDelta(1, {
592
+ environment: 'production',
593
+ project: ['default'],
594
+ });
595
+ expect(developmentResult).toEqual({
596
+ events: [
597
+ {
598
+ eventId: 2,
599
+ type: 'feature-updated',
600
+ feature: {
601
+ name: 'first',
602
+ project: 'default',
603
+ enabled: false,
604
+ },
605
+ },
606
+ ],
607
+ });
608
+ expect(productionResult).toEqual({
609
+ events: [
610
+ {
611
+ eventId: 2,
612
+ type: 'feature-updated',
613
+ feature: {
614
+ name: 'first',
615
+ project: 'default',
616
+ enabled: true,
617
+ },
618
+ },
619
+ ],
620
+ });
621
+ });
622
+ });
149
623
  //# sourceMappingURL=client-feature-toggle-delta.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-feature-toggle-delta.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-feature-toggle-delta.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delta-cache.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/delta-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAEH,KAAK,mBAAmB,EAC3B,MAAM,wCAAwC,CAAC;AAEhD,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAsB;gBAEhC,cAAc,EAAE,mBAAmB,EAAE,SAAS,GAAE,MAAW;IAOvE,OAAO,CAAC,yBAAyB;IAc1B,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IASrC,SAAS,IAAI,UAAU,EAAE;IAIzB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI9C,iBAAiB,IAAI,mBAAmB;IAI/C,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,kBAAkB;CAY7B"}
1
+ {"version":3,"file":"delta-cache.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/delta-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAEH,KAAK,mBAAmB,EAC3B,MAAM,wCAAwC,CAAC;AAEhD,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAsB;gBAEhC,cAAc,EAAE,mBAAmB,EAAE,SAAS,GAAE,MAAW;IAOvE,OAAO,CAAC,yBAAyB;IAiB1B,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IASrC,SAAS,IAAI,UAAU,EAAE;IAIzB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI9C,iBAAiB,IAAI,mBAAmB;IAI/C,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,kBAAkB;CAY7B"}
@@ -8,6 +8,9 @@ export class DeltaCache {
8
8
  }
9
9
  addBaseEventFromHydration(hydrationEvent) {
10
10
  const lastFeature = hydrationEvent.features[hydrationEvent.features.length - 1];
11
+ if (!lastFeature) {
12
+ return;
13
+ }
11
14
  this.addEvents([
12
15
  {
13
16
  eventId: hydrationEvent.eventId,
@@ -1 +1 @@
1
- {"version":3,"file":"delta-cache.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/delta-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delta-cache.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/delta-cache.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,21 @@
1
1
  import { DeltaCache } from './delta-cache.js';
2
2
  import { DELTA_EVENT_TYPES, } from './client-feature-toggle-delta-types.js';
3
3
  describe('RevisionCache', () => {
4
+ it('should not create a synthetic base event when hydration has no features', () => {
5
+ const deltaCache = new DeltaCache({
6
+ eventId: 0,
7
+ features: [],
8
+ type: 'hydration',
9
+ segments: [],
10
+ }, 2);
11
+ expect(deltaCache.getEvents()).toEqual([]);
12
+ expect(deltaCache.getHydrationEvent()).toEqual({
13
+ eventId: 0,
14
+ features: [],
15
+ type: 'hydration',
16
+ segments: [],
17
+ });
18
+ });
4
19
  it('should always update the hydration event and remove event when over limit', () => {
5
20
  const baseEvent = {
6
21
  eventId: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"delta-cache.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/delta-cache.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delta-cache.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/delta-cache.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { EnvironmentVisibleRevisionState } from './client-feature-toggle-delta.js';
2
+ export declare const getVisibleRevision: (revisionState: EnvironmentVisibleRevisionState | undefined, projects?: string[]) => number;
3
+ //# sourceMappingURL=visible-revision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visible-revision.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/visible-revision.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAExF,eAAO,MAAM,kBAAkB,GAC3B,eAAe,+BAA+B,GAAG,SAAS,EAC1D,WAAU,MAAM,EAAU,KAC3B,MAmBF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ALL_PROJECTS } from '../../../util/index.js';
2
+ export const getVisibleRevision = (revisionState, projects = ['*']) => {
3
+ if (!revisionState) {
4
+ return 0;
5
+ }
6
+ const projectList = projects.length > 0 && !projects.includes(ALL_PROJECTS)
7
+ ? projects
8
+ : Array.from(revisionState.projectRevisions.keys());
9
+ // assume segment revision as max because segment changes are always visible
10
+ let visibleRevision = revisionState.globalSegmentRevision ?? 0;
11
+ for (const project of projectList) {
12
+ visibleRevision = Math.max(visibleRevision, revisionState.projectRevisions.get(project) ?? 0);
13
+ }
14
+ return visibleRevision;
15
+ };
16
+ //# sourceMappingURL=visible-revision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visible-revision.js","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/visible-revision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,aAA0D,EAC1D,WAAqB,CAAC,GAAG,CAAC,EACpB,EAAE;IACR,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,WAAW,GACb,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,4EAA4E;IAC5E,IAAI,eAAe,GAAG,aAAa,CAAC,qBAAqB,IAAI,CAAC,CAAC;IAC/D,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAChC,eAAe,GAAG,IAAI,CAAC,GAAG,CACtB,eAAe,EACf,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CACnD,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=visible-revision.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visible-revision.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/client-feature-toggles/delta/visible-revision.test.ts"],"names":[],"mappings":""}