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,7 +1,7 @@
1
- import{jv as w,jw as p,jx as K,jy as V,jz as D,jA as v,jB as Y,jC as Z,jD as Q,jE as ee,jF as re,dF as W,jp as O,b as te,bq as ae,r as ie,j as ne,jo as oe,jG as se,dC as le,dD as ue,dE as de,jH as fe,jr as ve,js as he,dH as ye}from"./index-DMSjiFEm.js";/*!
1
+ import{l8 as w,l9 as p,la as K,lb as V,lc as W,ld as v,le as Y,lf as Z,lg as Q,lh as ee,li as re,dv as D,l2 as O,b as te,bp as ae,r as ie,j as ne,l1 as oe,lj as le,ds as se,dt as ue,du as de,lk as fe,l4 as ve,l5 as he,dx as ye}from"./index-CoLhlfXP.js";/*!
2
2
  * chartjs-plugin-datalabels v2.2.0
3
3
  * https://chartjs-plugin-datalabels.netlify.app
4
4
  * (c) 2017-2022 chartjs-plugin-datalabels contributors
5
5
  * Released under the MIT license
6
- */var $=function(){if(typeof window<"u"){if(window.devicePixelRatio)return window.devicePixelRatio;var e=window.screen;if(e)return(e.deviceXDPI||1)/(e.logicalXDPI||1)}return 1}(),g={toTextLines:function(e){var a=[],r;for(e=[].concat(e);e.length;)r=e.pop(),typeof r=="string"?a.unshift.apply(a,r.split(`
7
- `)):Array.isArray(r)?e.push.apply(e,r):p(e)||a.unshift(""+r);return a},textSize:function(e,a,r){var t=[].concat(a),i=t.length,n=e.font,o=0,s;for(e.font=r.string,s=0;s<i;++s)o=Math.max(e.measureText(t[s]).width,o);return e.font=n,{height:i*r.lineHeight,width:o}},bound:function(e,a,r){return Math.max(e,Math.min(a,r))},arrayDiff:function(e,a){var r=e.slice(),t=[],i,n,o,s;for(i=0,o=a.length;i<o;++i)s=a[i],n=r.indexOf(s),n===-1?t.push([s,1]):r.splice(n,1);for(i=0,o=r.length;i<o;++i)t.push([r[i],-1]);return t},rasterize:function(e){return Math.round(e*$)/$}};function I(e,a){var r=a.x,t=a.y;if(r===null)return{x:0,y:-1};if(t===null)return{x:1,y:0};var i=e.x-r,n=e.y-t,o=Math.sqrt(i*i+n*n);return{x:o?i/o:0,y:o?n/o:-1}}function ce(e,a,r,t,i){switch(i){case"center":r=t=0;break;case"bottom":r=0,t=1;break;case"right":r=1,t=0;break;case"left":r=-1,t=0;break;case"top":r=0,t=-1;break;case"start":r=-r,t=-t;break;case"end":break;default:i*=Math.PI/180,r=Math.cos(i),t=Math.sin(i);break}return{x:e,y:a,vx:r,vy:t}}var xe=0,N=1,L=2,F=4,H=8;function M(e,a,r){var t=xe;return e<r.left?t|=N:e>r.right&&(t|=L),a<r.top?t|=H:a>r.bottom&&(t|=F),t}function be(e,a){for(var r=e.x0,t=e.y0,i=e.x1,n=e.y1,o=M(r,t,a),s=M(i,n,a),l,u,d;!(!(o|s)||o&s);)l=o||s,l&H?(u=r+(i-r)*(a.top-t)/(n-t),d=a.top):l&F?(u=r+(i-r)*(a.bottom-t)/(n-t),d=a.bottom):l&L?(d=t+(n-t)*(a.right-r)/(i-r),u=a.right):l&N&&(d=t+(n-t)*(a.left-r)/(i-r),u=a.left),l===o?(r=u,t=d,o=M(r,t,a)):(i=u,n=d,s=M(i,n,a));return{x0:r,x1:i,y0:t,y1:n}}function S(e,a){var r=a.anchor,t=e,i,n;return a.clamp&&(t=be(t,a.area)),r==="start"?(i=t.x0,n=t.y0):r==="end"?(i=t.x1,n=t.y1):(i=(t.x0+t.x1)/2,n=(t.y0+t.y1)/2),ce(i,n,e.vx,e.vy,a.align)}var j={arc:function(e,a){var r=(e.startAngle+e.endAngle)/2,t=Math.cos(r),i=Math.sin(r),n=e.innerRadius,o=e.outerRadius;return S({x0:e.x+t*n,y0:e.y+i*n,x1:e.x+t*o,y1:e.y+i*o,vx:t,vy:i},a)},point:function(e,a){var r=I(e,a.origin),t=r.x*e.options.radius,i=r.y*e.options.radius;return S({x0:e.x-t,y0:e.y-i,x1:e.x+t,y1:e.y+i,vx:r.x,vy:r.y},a)},bar:function(e,a){var r=I(e,a.origin),t=e.x,i=e.y,n=0,o=0;return e.horizontal?(t=Math.min(e.x,e.base),n=Math.abs(e.base-e.x)):(i=Math.min(e.y,e.base),o=Math.abs(e.base-e.y)),S({x0:t,y0:i+o,x1:t+n,y1:i,vx:r.x,vy:r.y},a)},fallback:function(e,a){var r=I(e,a.origin);return S({x0:e.x,y0:e.y,x1:e.x+(e.width||0),y1:e.y+(e.height||0),vx:r.x,vy:r.y},a)}},c=g.rasterize;function _e(e){var a=e.borderWidth||0,r=e.padding,t=e.size.height,i=e.size.width,n=-i/2,o=-t/2;return{frame:{x:n-r.left-a,y:o-r.top-a,w:i+r.width+a*2,h:t+r.height+a*2},text:{x:n,y:o,w:i,h:t}}}function pe(e,a){var r=a.chart.getDatasetMeta(a.datasetIndex).vScale;if(!r)return null;if(r.xCenter!==void 0&&r.yCenter!==void 0)return{x:r.xCenter,y:r.yCenter};var t=r.getBasePixel();return e.horizontal?{x:t,y:null}:{x:null,y:t}}function ge(e){return e instanceof re?j.arc:e instanceof W?j.point:e instanceof O?j.bar:j.fallback}function me(e,a,r,t,i,n){var o=Math.PI/2;if(n){var s=Math.min(n,i/2,t/2),l=a+s,u=r+s,d=a+t-s,f=r+i-s;e.moveTo(a,u),l<d&&u<f?(e.arc(l,u,s,-Math.PI,-o),e.arc(d,u,s,-o,0),e.arc(d,f,s,0,o),e.arc(l,f,s,o,Math.PI)):l<d?(e.moveTo(l,r),e.arc(d,u,s,-o,o),e.arc(l,u,s,o,Math.PI+o)):u<f?(e.arc(l,u,s,-Math.PI,0),e.arc(l,f,s,0,Math.PI)):e.arc(l,u,s,-Math.PI,Math.PI),e.closePath(),e.moveTo(a,r)}else e.rect(a,r,t,i)}function we(e,a,r){var t=r.backgroundColor,i=r.borderColor,n=r.borderWidth;!t&&(!i||!n)||(e.beginPath(),me(e,c(a.x)+n/2,c(a.y)+n/2,c(a.w)-n,c(a.h)-n,r.borderRadius),e.closePath(),t&&(e.fillStyle=t,e.fill()),i&&n&&(e.strokeStyle=i,e.lineWidth=n,e.lineJoin="miter",e.stroke()))}function ke(e,a,r){var t=r.lineHeight,i=e.w,n=e.x,o=e.y+t/2;return a==="center"?n+=i/2:(a==="end"||a==="right")&&(n+=i),{h:t,w:i,x:n,y:o}}function Me(e,a,r){var t=e.shadowBlur,i=r.stroked,n=c(r.x),o=c(r.y),s=c(r.w);i&&e.strokeText(a,n,o,s),r.filled&&(t&&i&&(e.shadowBlur=0),e.fillText(a,n,o,s),t&&i&&(e.shadowBlur=t))}function Se(e,a,r,t){var i=t.textAlign,n=t.color,o=!!n,s=t.font,l=a.length,u=t.textStrokeColor,d=t.textStrokeWidth,f=u&&d,y;if(!(!l||!o&&!f))for(r=ke(r,i,s),e.font=s.string,e.textAlign=i,e.textBaseline="middle",e.shadowBlur=t.textShadowBlur,e.shadowColor=t.textShadowColor,o&&(e.fillStyle=n),f&&(e.lineJoin="round",e.lineWidth=d,e.strokeStyle=u),y=0,l=a.length;y<l;++y)Me(e,a[y],{stroked:f,filled:o,w:r.w,x:r.x,y:r.y+r.h*y})}var G=function(e,a,r,t){var i=this;i._config=e,i._index=t,i._model=null,i._rects=null,i._ctx=a,i._el=r};w(G.prototype,{_modelize:function(e,a,r,t){var i=this,n=i._index,o=Z(v([r.font,{}],t,n)),s=v([r.color,Q.color],t,n);return{align:v([r.align,"center"],t,n),anchor:v([r.anchor,"center"],t,n),area:t.chart.chartArea,backgroundColor:v([r.backgroundColor,null],t,n),borderColor:v([r.borderColor,null],t,n),borderRadius:v([r.borderRadius,0],t,n),borderWidth:v([r.borderWidth,0],t,n),clamp:v([r.clamp,!1],t,n),clip:v([r.clip,!1],t,n),color:s,display:e,font:o,lines:a,offset:v([r.offset,4],t,n),opacity:v([r.opacity,1],t,n),origin:pe(i._el,t),padding:ee(v([r.padding,4],t,n)),positioner:ge(i._el),rotation:v([r.rotation,0],t,n)*(Math.PI/180),size:g.textSize(i._ctx,a,o),textAlign:v([r.textAlign,"start"],t,n),textShadowBlur:v([r.textShadowBlur,0],t,n),textShadowColor:v([r.textShadowColor,s],t,n),textStrokeColor:v([r.textStrokeColor,s],t,n),textStrokeWidth:v([r.textStrokeWidth,0],t,n)}},update:function(e){var a=this,r=null,t=null,i=a._index,n=a._config,o,s,l,u=v([n.display,!0],e,i);u&&(o=e.dataset.data[i],s=Y(D(n.formatter,[o,e]),o),l=p(s)?[]:g.toTextLines(s),l.length&&(r=a._modelize(u,l,n,e),t=_e(r))),a._model=r,a._rects=t},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(e,a){var r=this,t=e.ctx,i=r._model,n=r._rects,o;this.visible()&&(t.save(),i.clip&&(o=i.area,t.beginPath(),t.rect(o.left,o.top,o.right-o.left,o.bottom-o.top),t.clip()),t.globalAlpha=g.bound(0,i.opacity,1),t.translate(c(a.x),c(a.y)),t.rotate(i.rotation),we(t,n.frame,i),Se(t,i.lines,n.text,i),t.restore())}});var je=Number.MIN_SAFE_INTEGER||-9007199254740991,Ce=Number.MAX_SAFE_INTEGER||9007199254740991;function _(e,a,r){var t=Math.cos(r),i=Math.sin(r),n=a.x,o=a.y;return{x:n+t*(e.x-n)-i*(e.y-o),y:o+i*(e.x-n)+t*(e.y-o)}}function B(e,a){var r=Ce,t=je,i=a.origin,n,o,s,l,u;for(n=0;n<e.length;++n)o=e[n],s=o.x-i.x,l=o.y-i.y,u=a.vx*s+a.vy*l,r=Math.min(r,u),t=Math.max(t,u);return{min:r,max:t}}function C(e,a){var r=a.x-e.x,t=a.y-e.y,i=Math.sqrt(r*r+t*t);return{vx:(a.x-e.x)/i,vy:(a.y-e.y)/i,origin:e,ln:i}}var U=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};w(U.prototype,{center:function(){var e=this._rect;return{x:e.x+e.w/2,y:e.y+e.h/2}},update:function(e,a,r){this._rotation=r,this._rect={x:a.x+e.x,y:a.y+e.y,w:a.w,h:a.h}},contains:function(e){var a=this,r=1,t=a._rect;return e=_(e,a.center(),-a._rotation),!(e.x<t.x-r||e.y<t.y-r||e.x>t.x+t.w+r*2||e.y>t.y+t.h+r*2)},intersects:function(e){var a=this._points(),r=e._points(),t=[C(a[0],a[1]),C(a[0],a[3])],i,n,o;for(this._rotation!==e._rotation&&t.push(C(r[0],r[1]),C(r[0],r[3])),i=0;i<t.length;++i)if(n=B(a,t[i]),o=B(r,t[i]),n.max<o.min||o.max<n.min)return!1;return!0},_points:function(){var e=this,a=e._rect,r=e._rotation,t=e.center();return[_({x:a.x,y:a.y},t,r),_({x:a.x+a.w,y:a.y},t,r),_({x:a.x+a.w,y:a.y+a.h},t,r),_({x:a.x,y:a.y+a.h},t,r)]}});function X(e,a,r){var t=a.positioner(e,a),i=t.vx,n=t.vy;if(!i&&!n)return{x:t.x,y:t.y};var o=r.w,s=r.h,l=a.rotation,u=Math.abs(o/2*Math.cos(l))+Math.abs(s/2*Math.sin(l)),d=Math.abs(o/2*Math.sin(l))+Math.abs(s/2*Math.cos(l)),f=1/Math.max(Math.abs(i),Math.abs(n));return u*=i*f,d*=n*f,u+=a.offset*i,d+=a.offset*n,{x:t.x+u,y:t.y+d}}function Ee(e,a){var r,t,i,n;for(r=e.length-1;r>=0;--r)for(i=e[r].$layout,t=r-1;t>=0&&i._visible;--t)n=e[t].$layout,n._visible&&i._box.intersects(n._box)&&a(i,n);return e}function Pe(e){var a,r,t,i,n,o,s;for(a=0,r=e.length;a<r;++a)t=e[a],i=t.$layout,i._visible&&(s=new Proxy(t._el,{get:(l,u)=>l.getProps([u],!0)[u]}),n=t.geometry(),o=X(s,t.model(),n),i._box.update(o,n,t.rotation()));return Ee(e,function(l,u){var d=l._hidable,f=u._hidable;d&&f||f?u._visible=!1:d&&(l._visible=!1)})}var m={prepare:function(e){var a=[],r,t,i,n,o;for(r=0,i=e.length;r<i;++r)for(t=0,n=e[r].length;t<n;++t)o=e[r][t],a.push(o),o.$layout={_box:new U,_hidable:!1,_visible:!0,_set:r,_idx:o._index};return a.sort(function(s,l){var u=s.$layout,d=l.$layout;return u._idx===d._idx?d._set-u._set:d._idx-u._idx}),this.update(a),a},update:function(e){var a=!1,r,t,i,n,o;for(r=0,t=e.length;r<t;++r)i=e[r],n=i.model(),o=i.$layout,o._hidable=n&&n.display==="auto",o._visible=i.visible(),a|=o._hidable;a&&Pe(e)},lookup:function(e,a){var r,t;for(r=e.length-1;r>=0;--r)if(t=e[r].$layout,t&&t._visible&&t._box.contains(a))return e[r];return null},draw:function(e,a){var r,t,i,n,o,s;for(r=0,t=a.length;r<t;++r)i=a[r],n=i.$layout,n._visible&&(o=i.geometry(),s=X(i._el,i.model(),o),n._box.update(s,o,i.rotation()),i.draw(e,s))}},Ie=function(e){if(p(e))return null;var a=e,r,t,i;if(K(e))if(!p(e.label))a=e.label;else if(!p(e.r))a=e.r;else for(a="",r=Object.keys(e),i=0,t=r.length;i<t;++i)a+=(i!==0?", ":"")+r[i]+": "+e[r[i]];return""+a},Ae={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:Ie,labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},h="$datalabels",q="$default";function ze(e,a){var r=e.datalabels,t={},i=[],n,o;return r===!1?null:(r===!0&&(r={}),a=w({},[a,r]),n=a.labels||{},o=Object.keys(n),delete a.labels,o.length?o.forEach(function(s){n[s]&&i.push(w({},[a,n[s],{_key:s}]))}):i.push(a),t=i.reduce(function(s,l){return V(l.listeners||{},function(u,d){s[d]=s[d]||{},s[d][l._key||q]=u}),delete l.listeners,s},{}),{labels:i,listeners:t})}function A(e,a,r,t){if(a){var i=r.$context,n=r.$groups,o;a[n._set]&&(o=a[n._set][n._key],o&&D(o,[i,t])===!0&&(e[h]._dirty=!0,r.update(i)))}}function Re(e,a,r,t,i){var n,o;!r&&!t||(r?t?r!==t&&(o=n=!0):o=!0:n=!0,o&&A(e,a.leave,r,i),n&&A(e,a.enter,t,i))}function Te(e,a){var r=e[h],t=r._listeners,i,n;if(!(!t.enter&&!t.leave)){if(a.type==="mousemove")n=m.lookup(r._labels,a);else if(a.type!=="mouseout")return;i=r._hovered,r._hovered=n,Re(e,t,i,n,a)}}function $e(e,a){var r=e[h],t=r._listeners.click,i=t&&m.lookup(r._labels,a);i&&A(e,t,i,a)}var Be={id:"datalabels",defaults:Ae,beforeInit:function(e){e[h]={_actives:[]}},beforeUpdate:function(e){var a=e[h];a._listened=!1,a._listeners={},a._datasets=[],a._labels=[]},afterDatasetUpdate:function(e,a,r){var t=a.index,i=e[h],n=i._datasets[t]=[],o=e.isDatasetVisible(t),s=e.data.datasets[t],l=ze(s,r),u=a.meta.data||[],d=e.ctx,f,y,z,R,E,T,b,x;for(d.save(),f=0,z=u.length;f<z;++f)if(b=u[f],b[h]=[],o&&b&&e.getDataVisibility(f)&&!b.skip)for(y=0,R=l.labels.length;y<R;++y)E=l.labels[y],T=E._key,x=new G(E,d,b,f),x.$groups={_set:t,_key:T||q},x.$context={active:!1,chart:e,dataIndex:f,dataset:s,datasetIndex:t},x.update(x.$context),b[h].push(x),n.push(x);d.restore(),w(i._listeners,l.listeners,{merger:function(k,P,J){P[k]=P[k]||{},P[k][a.index]=J[k],i._listened=!0}})},afterUpdate:function(e){e[h]._labels=m.prepare(e[h]._datasets)},afterDatasetsDraw:function(e){m.draw(e,e[h]._labels)},beforeEvent:function(e,a){if(e[h]._listened){var r=a.event;switch(r.type){case"mousemove":case"mouseout":Te(e,r);break;case"click":$e(e,r);break}}},afterEvent:function(e){var a=e[h],r=a._actives,t=a._actives=e.getActiveElements(),i=g.arrayDiff(r,t),n,o,s,l,u,d,f;for(n=0,o=i.length;n<o;++n)if(u=i[n],u[1])for(f=u[0].element[h]||[],s=0,l=f.length;s<l;++s)d=f[s],d.$context.active=u[1]===1,d.update(d.$context);(a._dirty||i.length)&&(m.update(a._labels),e.render()),delete a._dirty}};const De=e=>({plugins:{legend:{position:"right",maxWidth:150,align:"start",labels:{color:e.palette.text.secondary,usePointStyle:!0,padding:21,boxHeight:8,font:{size:10}}},datalabels:{color:e.palette.text.primary,font:{weight:"bold",size:10},anchor:"end",align:"top",offset:-6}},responsive:!0,maintainAspectRatio:!1,color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,grid:{color:e.palette.divider,borderColor:e.palette.divider,drawBorder:!1},ticks:{stepSize:1,color:e.palette.text.disabled,font:{size:10}}},x:{grid:{display:!1},ticks:{color:e.palette.text.primary,font:{size:10}}}}});function We(e){return se.all(e.filter(a=>a))}const Ne=({data:e,ariaLabel:a,ariaDescription:r,overrideOptions:t})=>{const i=te(),{locationSettings:n}=ae(),o=ie.useMemo(()=>We([De(i)]),[i,n,t]);return ne.jsx(oe,{options:o,data:e,"aria-label":a,"aria-description":r,plugins:[Be]})};le.register(ue,de,W,O,fe,ve,he,ye);export{De as createOptions,Ne as default};
6
+ */var j=function(){if(typeof window<"u"){if(window.devicePixelRatio)return window.devicePixelRatio;var e=window.screen;if(e)return(e.deviceXDPI||1)/(e.logicalXDPI||1)}return 1}(),g={toTextLines:function(e){var a=[],r;for(e=[].concat(e);e.length;)r=e.pop(),typeof r=="string"?a.unshift.apply(a,r.split(`
7
+ `)):Array.isArray(r)?e.push.apply(e,r):p(e)||a.unshift(""+r);return a},textSize:function(e,a,r){var t=[].concat(a),i=t.length,n=e.font,o=0,l;for(e.font=r.string,l=0;l<i;++l)o=Math.max(e.measureText(t[l]).width,o);return e.font=n,{height:i*r.lineHeight,width:o}},bound:function(e,a,r){return Math.max(e,Math.min(a,r))},arrayDiff:function(e,a){var r=e.slice(),t=[],i,n,o,l;for(i=0,o=a.length;i<o;++i)l=a[i],n=r.indexOf(l),n===-1?t.push([l,1]):r.splice(n,1);for(i=0,o=r.length;i<o;++i)t.push([r[i],-1]);return t},rasterize:function(e){return Math.round(e*j)/j}};function A(e,a){var r=a.x,t=a.y;if(r===null)return{x:0,y:-1};if(t===null)return{x:1,y:0};var i=e.x-r,n=e.y-t,o=Math.sqrt(i*i+n*n);return{x:o?i/o:0,y:o?n/o:-1}}function ce(e,a,r,t,i){switch(i){case"center":r=t=0;break;case"bottom":r=0,t=1;break;case"right":r=1,t=0;break;case"left":r=-1,t=0;break;case"top":r=0,t=-1;break;case"start":r=-r,t=-t;break;case"end":break;default:i*=Math.PI/180,r=Math.cos(i),t=Math.sin(i);break}return{x:e,y:a,vx:r,vy:t}}var xe=0,N=1,L=2,F=4,H=8;function M(e,a,r){var t=xe;return e<r.left?t|=N:e>r.right&&(t|=L),a<r.top?t|=H:a>r.bottom&&(t|=F),t}function be(e,a){for(var r=e.x0,t=e.y0,i=e.x1,n=e.y1,o=M(r,t,a),l=M(i,n,a),s,u,d;!(!(o|l)||o&l);)s=o||l,s&H?(u=r+(i-r)*(a.top-t)/(n-t),d=a.top):s&F?(u=r+(i-r)*(a.bottom-t)/(n-t),d=a.bottom):s&L?(d=t+(n-t)*(a.right-r)/(i-r),u=a.right):s&N&&(d=t+(n-t)*(a.left-r)/(i-r),u=a.left),s===o?(r=u,t=d,o=M(r,t,a)):(i=u,n=d,l=M(i,n,a));return{x0:r,x1:i,y0:t,y1:n}}function S(e,a){var r=a.anchor,t=e,i,n;return a.clamp&&(t=be(t,a.area)),r==="start"?(i=t.x0,n=t.y0):r==="end"?(i=t.x1,n=t.y1):(i=(t.x0+t.x1)/2,n=(t.y0+t.y1)/2),ce(i,n,e.vx,e.vy,a.align)}var C={arc:function(e,a){var r=(e.startAngle+e.endAngle)/2,t=Math.cos(r),i=Math.sin(r),n=e.innerRadius,o=e.outerRadius;return S({x0:e.x+t*n,y0:e.y+i*n,x1:e.x+t*o,y1:e.y+i*o,vx:t,vy:i},a)},point:function(e,a){var r=A(e,a.origin),t=r.x*e.options.radius,i=r.y*e.options.radius;return S({x0:e.x-t,y0:e.y-i,x1:e.x+t,y1:e.y+i,vx:r.x,vy:r.y},a)},bar:function(e,a){var r=A(e,a.origin),t=e.x,i=e.y,n=0,o=0;return e.horizontal?(t=Math.min(e.x,e.base),n=Math.abs(e.base-e.x)):(i=Math.min(e.y,e.base),o=Math.abs(e.base-e.y)),S({x0:t,y0:i+o,x1:t+n,y1:i,vx:r.x,vy:r.y},a)},fallback:function(e,a){var r=A(e,a.origin);return S({x0:e.x,y0:e.y,x1:e.x+(e.width||0),y1:e.y+(e.height||0),vx:r.x,vy:r.y},a)}},c=g.rasterize;function _e(e){var a=e.borderWidth||0,r=e.padding,t=e.size.height,i=e.size.width,n=-i/2,o=-t/2;return{frame:{x:n-r.left-a,y:o-r.top-a,w:i+r.width+a*2,h:t+r.height+a*2},text:{x:n,y:o,w:i,h:t}}}function pe(e,a){var r=a.chart.getDatasetMeta(a.datasetIndex).vScale;if(!r)return null;if(r.xCenter!==void 0&&r.yCenter!==void 0)return{x:r.xCenter,y:r.yCenter};var t=r.getBasePixel();return e.horizontal?{x:t,y:null}:{x:null,y:t}}function ge(e){return e instanceof re?C.arc:e instanceof D?C.point:e instanceof O?C.bar:C.fallback}function me(e,a,r,t,i,n){var o=Math.PI/2;if(n){var l=Math.min(n,i/2,t/2),s=a+l,u=r+l,d=a+t-l,f=r+i-l;e.moveTo(a,u),s<d&&u<f?(e.arc(s,u,l,-Math.PI,-o),e.arc(d,u,l,-o,0),e.arc(d,f,l,0,o),e.arc(s,f,l,o,Math.PI)):s<d?(e.moveTo(s,r),e.arc(d,u,l,-o,o),e.arc(s,u,l,o,Math.PI+o)):u<f?(e.arc(s,u,l,-Math.PI,0),e.arc(s,f,l,0,Math.PI)):e.arc(s,u,l,-Math.PI,Math.PI),e.closePath(),e.moveTo(a,r)}else e.rect(a,r,t,i)}function we(e,a,r){var t=r.backgroundColor,i=r.borderColor,n=r.borderWidth;!t&&(!i||!n)||(e.beginPath(),me(e,c(a.x)+n/2,c(a.y)+n/2,c(a.w)-n,c(a.h)-n,r.borderRadius),e.closePath(),t&&(e.fillStyle=t,e.fill()),i&&n&&(e.strokeStyle=i,e.lineWidth=n,e.lineJoin="miter",e.stroke()))}function ke(e,a,r){var t=r.lineHeight,i=e.w,n=e.x,o=e.y+t/2;return a==="center"?n+=i/2:(a==="end"||a==="right")&&(n+=i),{h:t,w:i,x:n,y:o}}function Me(e,a,r){var t=e.shadowBlur,i=r.stroked,n=c(r.x),o=c(r.y),l=c(r.w);i&&e.strokeText(a,n,o,l),r.filled&&(t&&i&&(e.shadowBlur=0),e.fillText(a,n,o,l),t&&i&&(e.shadowBlur=t))}function Se(e,a,r,t){var i=t.textAlign,n=t.color,o=!!n,l=t.font,s=a.length,u=t.textStrokeColor,d=t.textStrokeWidth,f=u&&d,y;if(!(!s||!o&&!f))for(r=ke(r,i,l),e.font=l.string,e.textAlign=i,e.textBaseline="middle",e.shadowBlur=t.textShadowBlur,e.shadowColor=t.textShadowColor,o&&(e.fillStyle=n),f&&(e.lineJoin="round",e.lineWidth=d,e.strokeStyle=u),y=0,s=a.length;y<s;++y)Me(e,a[y],{stroked:f,filled:o,w:r.w,x:r.x,y:r.y+r.h*y})}var G=function(e,a,r,t){var i=this;i._config=e,i._index=t,i._model=null,i._rects=null,i._ctx=a,i._el=r};w(G.prototype,{_modelize:function(e,a,r,t){var i=this,n=i._index,o=Z(v([r.font,{}],t,n)),l=v([r.color,Q.color],t,n);return{align:v([r.align,"center"],t,n),anchor:v([r.anchor,"center"],t,n),area:t.chart.chartArea,backgroundColor:v([r.backgroundColor,null],t,n),borderColor:v([r.borderColor,null],t,n),borderRadius:v([r.borderRadius,0],t,n),borderWidth:v([r.borderWidth,0],t,n),clamp:v([r.clamp,!1],t,n),clip:v([r.clip,!1],t,n),color:l,display:e,font:o,lines:a,offset:v([r.offset,4],t,n),opacity:v([r.opacity,1],t,n),origin:pe(i._el,t),padding:ee(v([r.padding,4],t,n)),positioner:ge(i._el),rotation:v([r.rotation,0],t,n)*(Math.PI/180),size:g.textSize(i._ctx,a,o),textAlign:v([r.textAlign,"start"],t,n),textShadowBlur:v([r.textShadowBlur,0],t,n),textShadowColor:v([r.textShadowColor,l],t,n),textStrokeColor:v([r.textStrokeColor,l],t,n),textStrokeWidth:v([r.textStrokeWidth,0],t,n)}},update:function(e){var a=this,r=null,t=null,i=a._index,n=a._config,o,l,s,u=v([n.display,!0],e,i);u&&(o=e.dataset.data[i],l=Y(W(n.formatter,[o,e]),o),s=p(l)?[]:g.toTextLines(l),s.length&&(r=a._modelize(u,s,n,e),t=_e(r))),a._model=r,a._rects=t},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(e,a){var r=this,t=e.ctx,i=r._model,n=r._rects,o;this.visible()&&(t.save(),i.clip&&(o=i.area,t.beginPath(),t.rect(o.left,o.top,o.right-o.left,o.bottom-o.top),t.clip()),t.globalAlpha=g.bound(0,i.opacity,1),t.translate(c(a.x),c(a.y)),t.rotate(i.rotation),we(t,n.frame,i),Se(t,i.lines,n.text,i),t.restore())}});var Ce=Number.MIN_SAFE_INTEGER||-9007199254740991,Ee=Number.MAX_SAFE_INTEGER||9007199254740991;function _(e,a,r){var t=Math.cos(r),i=Math.sin(r),n=a.x,o=a.y;return{x:n+t*(e.x-n)-i*(e.y-o),y:o+i*(e.x-n)+t*(e.y-o)}}function B(e,a){var r=Ee,t=Ce,i=a.origin,n,o,l,s,u;for(n=0;n<e.length;++n)o=e[n],l=o.x-i.x,s=o.y-i.y,u=a.vx*l+a.vy*s,r=Math.min(r,u),t=Math.max(t,u);return{min:r,max:t}}function E(e,a){var r=a.x-e.x,t=a.y-e.y,i=Math.sqrt(r*r+t*t);return{vx:(a.x-e.x)/i,vy:(a.y-e.y)/i,origin:e,ln:i}}var U=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};w(U.prototype,{center:function(){var e=this._rect;return{x:e.x+e.w/2,y:e.y+e.h/2}},update:function(e,a,r){this._rotation=r,this._rect={x:a.x+e.x,y:a.y+e.y,w:a.w,h:a.h}},contains:function(e){var a=this,r=1,t=a._rect;return e=_(e,a.center(),-a._rotation),!(e.x<t.x-r||e.y<t.y-r||e.x>t.x+t.w+r*2||e.y>t.y+t.h+r*2)},intersects:function(e){var a=this._points(),r=e._points(),t=[E(a[0],a[1]),E(a[0],a[3])],i,n,o;for(this._rotation!==e._rotation&&t.push(E(r[0],r[1]),E(r[0],r[3])),i=0;i<t.length;++i)if(n=B(a,t[i]),o=B(r,t[i]),n.max<o.min||o.max<n.min)return!1;return!0},_points:function(){var e=this,a=e._rect,r=e._rotation,t=e.center();return[_({x:a.x,y:a.y},t,r),_({x:a.x+a.w,y:a.y},t,r),_({x:a.x+a.w,y:a.y+a.h},t,r),_({x:a.x,y:a.y+a.h},t,r)]}});function X(e,a,r){var t=a.positioner(e,a),i=t.vx,n=t.vy;if(!i&&!n)return{x:t.x,y:t.y};var o=r.w,l=r.h,s=a.rotation,u=Math.abs(o/2*Math.cos(s))+Math.abs(l/2*Math.sin(s)),d=Math.abs(o/2*Math.sin(s))+Math.abs(l/2*Math.cos(s)),f=1/Math.max(Math.abs(i),Math.abs(n));return u*=i*f,d*=n*f,u+=a.offset*i,d+=a.offset*n,{x:t.x+u,y:t.y+d}}function Pe(e,a){var r,t,i,n;for(r=e.length-1;r>=0;--r)for(i=e[r].$layout,t=r-1;t>=0&&i._visible;--t)n=e[t].$layout,n._visible&&i._box.intersects(n._box)&&a(i,n);return e}function Ie(e){var a,r,t,i,n,o,l;for(a=0,r=e.length;a<r;++a)t=e[a],i=t.$layout,i._visible&&(l=new Proxy(t._el,{get:(s,u)=>s.getProps([u],!0)[u]}),n=t.geometry(),o=X(l,t.model(),n),i._box.update(o,n,t.rotation()));return Pe(e,function(s,u){var d=s._hidable,f=u._hidable;d&&f||f?u._visible=!1:d&&(s._visible=!1)})}var m={prepare:function(e){var a=[],r,t,i,n,o;for(r=0,i=e.length;r<i;++r)for(t=0,n=e[r].length;t<n;++t)o=e[r][t],a.push(o),o.$layout={_box:new U,_hidable:!1,_visible:!0,_set:r,_idx:o._index};return a.sort(function(l,s){var u=l.$layout,d=s.$layout;return u._idx===d._idx?d._set-u._set:d._idx-u._idx}),this.update(a),a},update:function(e){var a=!1,r,t,i,n,o;for(r=0,t=e.length;r<t;++r)i=e[r],n=i.model(),o=i.$layout,o._hidable=n&&n.display==="auto",o._visible=i.visible(),a|=o._hidable;a&&Ie(e)},lookup:function(e,a){var r,t;for(r=e.length-1;r>=0;--r)if(t=e[r].$layout,t&&t._visible&&t._box.contains(a))return e[r];return null},draw:function(e,a){var r,t,i,n,o,l;for(r=0,t=a.length;r<t;++r)i=a[r],n=i.$layout,n._visible&&(o=i.geometry(),l=X(i._el,i.model(),o),n._box.update(l,o,i.rotation()),i.draw(e,l))}},Ae=function(e){if(p(e))return null;var a=e,r,t,i;if(K(e))if(!p(e.label))a=e.label;else if(!p(e.r))a=e.r;else for(a="",r=Object.keys(e),i=0,t=r.length;i<t;++i)a+=(i!==0?", ":"")+r[i]+": "+e[r[i]];return""+a},Re={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:Ae,labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},h="$datalabels",q="$default";function ze(e,a){var r=e.datalabels,t={},i=[],n,o;return r===!1?null:(r===!0&&(r={}),a=w({},[a,r]),n=a.labels||{},o=Object.keys(n),delete a.labels,o.length?o.forEach(function(l){n[l]&&i.push(w({},[a,n[l],{_key:l}]))}):i.push(a),t=i.reduce(function(l,s){return V(s.listeners||{},function(u,d){l[d]=l[d]||{},l[d][s._key||q]=u}),delete s.listeners,l},{}),{labels:i,listeners:t})}function R(e,a,r,t){if(a){var i=r.$context,n=r.$groups,o;a[n._set]&&(o=a[n._set][n._key],o&&W(o,[i,t])===!0&&(e[h]._dirty=!0,r.update(i)))}}function Te(e,a,r,t,i){var n,o;!r&&!t||(r?t?r!==t&&(o=n=!0):o=!0:n=!0,o&&R(e,a.leave,r,i),n&&R(e,a.enter,t,i))}function $e(e,a){var r=e[h],t=r._listeners,i,n;if(!(!t.enter&&!t.leave)){if(a.type==="mousemove")n=m.lookup(r._labels,a);else if(a.type!=="mouseout")return;i=r._hovered,r._hovered=n,Te(e,t,i,n,a)}}function je(e,a){var r=e[h],t=r._listeners.click,i=t&&m.lookup(r._labels,a);i&&R(e,t,i,a)}var Be={id:"datalabels",defaults:Re,beforeInit:function(e){e[h]={_actives:[]}},beforeUpdate:function(e){var a=e[h];a._listened=!1,a._listeners={},a._datasets=[],a._labels=[]},afterDatasetUpdate:function(e,a,r){var t=a.index,i=e[h],n=i._datasets[t]=[],o=e.isDatasetVisible(t),l=e.data.datasets[t],s=ze(l,r),u=a.meta.data||[],d=e.ctx,f,y,z,T,P,$,b,x;for(d.save(),f=0,z=u.length;f<z;++f)if(b=u[f],b[h]=[],o&&b&&e.getDataVisibility(f)&&!b.skip)for(y=0,T=s.labels.length;y<T;++y)P=s.labels[y],$=P._key,x=new G(P,d,b,f),x.$groups={_set:t,_key:$||q},x.$context={active:!1,chart:e,dataIndex:f,dataset:l,datasetIndex:t},x.update(x.$context),b[h].push(x),n.push(x);d.restore(),w(i._listeners,s.listeners,{merger:function(k,I,J){I[k]=I[k]||{},I[k][a.index]=J[k],i._listened=!0}})},afterUpdate:function(e){e[h]._labels=m.prepare(e[h]._datasets)},afterDatasetsDraw:function(e){m.draw(e,e[h]._labels)},beforeEvent:function(e,a){if(e[h]._listened){var r=a.event;switch(r.type){case"mousemove":case"mouseout":$e(e,r);break;case"click":je(e,r);break}}},afterEvent:function(e){var a=e[h],r=a._actives,t=a._actives=e.getActiveElements(),i=g.arrayDiff(r,t),n,o,l,s,u,d,f;for(n=0,o=i.length;n<o;++n)if(u=i[n],u[1])for(f=u[0].element[h]||[],l=0,s=f.length;l<s;++l)d=f[l],d.$context.active=u[1]===1,d.update(d.$context);(a._dirty||i.length)&&(m.update(a._labels),e.render()),delete a._dirty}};const We=e=>({plugins:{legend:{position:"right",maxWidth:150,align:"start",labels:{color:e.palette.text.secondary,usePointStyle:!0,padding:21,boxHeight:8,font:{size:10}}},datalabels:{color:e.palette.text.primary,font:{weight:"bold",size:10},anchor:"end",align:"top",offset:-6}},responsive:!0,maintainAspectRatio:!1,color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,grid:{color:e.palette.divider,borderColor:e.palette.divider,drawBorder:!1},ticks:{stepSize:1,color:e.palette.text.disabled,font:{size:10}}},x:{grid:{display:!1},ticks:{color:e.palette.text.primary,font:{size:10}}}}});function De(e){return le.all(e.filter(a=>a))}const Ne=({data:e,ariaLabel:a,ariaDescription:r,overrideOptions:t})=>{const i=te(),{locationSettings:n}=ae(),o=ie.useMemo(()=>De([We(i)]),[i,n,t]);return ne.jsx(oe,{options:o,data:e,"aria-label":a,"aria-description":r,plugins:[Be]})};se.register(ue,de,D,O,fe,ve,he,ye);export{We as createOptions,Ne as default};
@@ -0,0 +1 @@
1
+ import{ll as g,lm as y,b,bp as m,r as c,j as i,dr as C,ln as S,C as j,lo as h,lp as L,lq as w,lj as f,s as k,ds as A,dt as T,du as v,dv as E,dw as _,lk as D,l4 as F,l5 as M,dx as R}from"./index-CoLhlfXP.js";const W={position:"bottom",labels:{boxWidth:12,padding:30,generateLabels:t=>{var r;const l=t.data.datasets,{labels:{usePointStyle:e,pointStyle:o,textAlign:d,color:a}}=((r=t==null?void 0:t.legend)==null?void 0:r.options)||{labels:{}};return t._getSortedDatasetMetas().map(n=>{const s=n.controller.getStyle(e?0:void 0);return{text:l[n.index].label,fillStyle:s.borderColor,fontColor:a,hidden:!n.visible,lineWidth:0,borderRadius:6,strokeStyle:s.borderColor,pointStyle:o||s.pointStyle,textAlign:d||s.textAlign,datasetIndex:n.index}})}}},q=(t,l,e,o)=>({responsive:!0,...o?{animation:{duration:0}}:{},plugins:{legend:{...W,display:!o},tooltip:{enabled:!1,position:"nearest",external:y(e)}},locale:l.locale,interaction:{intersect:!1,axis:"xy",mode:"nearest"},elements:{point:{radius:0,hitRadius:15}},color:t.palette.text.secondary,scales:{y:{beginAtZero:!0,type:"linear",grid:{color:t.palette.divider,borderColor:t.palette.divider},ticks:{color:t.palette.text.secondary,display:!o,precision:0}},x:{adapters:{date:{locale:g(l.locale)}},type:"time",time:{unit:"week",tooltipFormat:"P"},grid:{color:"transparent",borderColor:"transparent"},ticks:{color:t.palette.text.secondary,display:!o,source:"data",maxRotation:90,minRotation:23.5}}}}),B=k("div")(({theme:t})=>({position:"relative"}));function G(t){return f.all(t.filter(l=>l))}const I=({data:t,aspectRatio:l=2.5,cover:e,overrideOptions:o,TooltipComponent:d,chartRef:a})=>{const r=b(),{locationSettings:n}=m(),[s,p]=c.useState(null),u=c.useMemo(()=>G([q(r,n,p,!!e),o??{}]),[r,n,p,o,e]);return i.jsxs(B,{children:[i.jsx(C,{ref:x=>{a==null||a(x??null)},options:u,data:t,plugins:[S({width:26})],height:100,width:100*l},e?"cover":"chart"),i.jsx(j,{condition:!e,show:d?i.jsx(L,{tooltip:s,children:i.jsx(d,{tooltip:s})}):i.jsx(w,{tooltip:s}),elseShow:i.jsx(h,{children:e!==!0?e:" "})})]})};A.register(T,v,E,_,D,F,M,R);export{I as default};
@@ -0,0 +1 @@
1
+ import{cQ as H,b6 as k,b8 as L,j as e,aU as R,C as x,aS as P,aT as D,f as M,bc as _,hQ as E,aQ as Q,aR as W,h as z,r as f,Q as m,T as C,L as y,dm as F,dn as B,l as G,m as N,s as J,A as K,n as X,o as Y,l6 as Z,ao as U,B as T,fh as I,l7 as A,fi as b}from"./index-CoLhlfXP.js";const ee=t=>fetch(t).then(L("ChangeRequest")).then(s=>s.json()),te=(t,s)=>{const r=s.map(i=>`feature=${i}`).join("&"),{data:n,error:a,mutate:o}=H([],k(`api/admin/projects/${t}/change-requests/scheduled?${r}`),ee);return{changeRequests:n,loading:!a&&!n,refetch:o,error:a}},S=()=>e.jsx(m,{severity:"warning",sx:{m:t=>t.spacing(2,0)},children:"Archiving flags with dependencies will also remove those dependencies."}),ne=({ids:t,projectId:s})=>{const r=n=>`/projects/${s}/features/${n}`;return t?e.jsxs(m,{severity:"warning",sx:{m:n=>n.spacing(2,0)},children:[e.jsx(C,{fontWeight:"bold",variant:"body2",display:"inline",children:`${t.length} feature flags `}),e.jsx("span",{children:"have usage from applications. If you archive these feature flags they will not be available to Client SDKs:"}),e.jsx("ul",{children:t==null?void 0:t.map(n=>e.jsx("li",{children:e.jsx(y,{to:r(n),children:n})},n))})]}):null},$=({ids:t,projectId:s})=>{const r=n=>`/projects/${s}/features/${n}`;return t&&t.length>1?e.jsxs(m,{severity:"error",sx:{m:n=>n.spacing(2,0)},children:[e.jsx(C,{fontWeight:"bold",variant:"body2",display:"inline",children:`${t.length} feature flags `}),e.jsx("span",{children:"have child features that depend on them and are not part of the archive operation. These parent features can not be archived:"}),e.jsx("ul",{children:t==null?void 0:t.map(n=>e.jsx("li",{children:e.jsx(y,{to:r(n),children:n})},n))})]}):t&&t.length===1?e.jsxs(m,{severity:"error",sx:{m:n=>n.spacing(2,0)},children:[e.jsx(y,{to:r(t[0]),children:t[0]})," has child features that depend on it and are not part of the archive operation."]}):null},q=({changeRequests:t,projectId:s})=>t&&t.length>0?e.jsxs(m,{severity:"warning",sx:{m:r=>r.spacing(2,0)},children:[e.jsxs("p",{children:["This archive operation would conflict with"," ",t.length," scheduled change request(s). The change request(s) that would be affected by this are:"]}),e.jsx("ul",{children:t.map(({id:r,title:n})=>{const a=n?`#${r} (${n})`:`Change request #${r}`;return e.jsx("li",{children:e.jsx(y,{to:`/projects/${s}/change-requests/${r}`,target:"_blank",rel:"noopener noreferrer",title:`Change request ${r}`,children:a})},r)})})]}):t===void 0?e.jsx(m,{severity:"warning",children:e.jsx("p",{children:"This archive operation might conflict with one or more scheduled change requests. If you complete it, those change requests can no longer be applied."})}):null,se=(t,s)=>{const n=P(t)(),{isChangeRequestConfiguredForReview:a}=D(t);return n&&a(n)&&s?"Add to change request":n&&a(n)?"Add change to draft":s?"Archive flags":"Archive flag"},ae=({projectId:t,featureIds:s,onSuccess:r,onError:n})=>{const{setToastData:a,setToastApiError:o}=M(),{archiveFeatureToggle:i}=_(),{archiveFeatures:c}=E(),{isChangeRequestConfiguredForReview:h}=D(t),{addChange:d}=Q(),{refetch:u}=W(t),p=P(t),g=(s==null?void 0:s.length)>1,l=p(),v=async()=>{if(!l){console.error("No change request environment");return}await d(t,l,s.map(w=>({action:"archiveFeature",feature:w,payload:void 0}))),u(),a({type:"success",text:g?"Changes added to a draft":"Change added to a draft"})},j=async()=>{await i(t,s[0]),a({type:"success",text:"Feature flag archived"})},V=async()=>{await c(t,s),a({type:"success",text:"Feature flags archived"})};return async()=>{try{l&&h(l)?await v():g?await V():await j(),r()}catch(w){o(z(w)),n()}}},re=(t,s,r)=>{const[n,a]=f.useState(!0),[o,i]=f.useState([]),[c,h]=f.useState(!1),{verifyArchiveFeatures:d}=E();return f.useEffect(()=>{r&&d(s,t).then(u=>u.json()).then(({hasDeletedDependencies:u,parentsWithChildFeatures:p})=>{p.length===0?(a(!1),i(p)):(a(!0),i(p)),h(u)})},[JSON.stringify(t),r,s,i,a,h,d]),{disableArchive:n,offendingParents:o,hasDeletedDependencies:c}},ue=({isOpen:t,onClose:s,onConfirm:r,projectId:n,featureIds:a,featuresWithUsage:o})=>{const i=(a==null?void 0:a.length)>1,c=se(n,i),h=i?"Archive feature flags":"Archive feature flag",d=ae({projectId:n,featureIds:a,onSuccess(){r(),s()},onError(){s()}}),{changeRequests:u}=te(n,a),{disableArchive:p,offendingParents:g,hasDeletedDependencies:l}=re(a,n,t),v=g.length===0&&l;return e.jsx(R,{onClick:d,open:t,onClose:s,primaryButtonText:c,secondaryButtonText:"Cancel",title:h,disabledPrimaryButton:p,children:e.jsx(x,{condition:i,show:e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Are you sure you want to archive"," ",e.jsx("strong",{children:a==null?void 0:a.length})," feature flags?"]}),e.jsx(x,{condition:!!(o&&(o==null?void 0:o.length)>0),show:e.jsx(ne,{ids:o,projectId:n})}),e.jsx(x,{condition:g.length>0,show:e.jsx($,{ids:g,projectId:n})}),e.jsx(x,{condition:v,show:e.jsx(S,{})}),e.jsx(q,{changeRequests:u,projectId:n}),e.jsx(x,{condition:(a==null?void 0:a.length)<=5,show:e.jsx("ul",{children:a==null?void 0:a.map(j=>e.jsx("li",{children:j},j))})})]}),elseShow:e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Are you sure you want to archive"," ",i?"these feature flags":"this feature flag","?"]}),e.jsx(x,{condition:g.length>0,show:e.jsx($,{ids:g,projectId:n})}),e.jsx(x,{condition:v,show:e.jsx(S,{})}),e.jsx(q,{changeRequests:u,projectId:n})]})})})},ie=(t,s)=>`/api/admin/projects/${t}/features/${s}/parents`,ge=(t,s)=>{const r=k(ie(t,s)),{data:n,loading:a,error:o}=F(r,()=>B(r,"Parent Options"));return{parentOptions:n,loading:a,error:o}},oe=(t,s)=>`/api/admin/projects/${t}/features/${s}/parent-variants`,O=(t,s)=>{const r=k(oe(t,s)),{data:n,loading:a,error:o}=F(r,()=>B(r,"Parent Variant Options"));return{parentVariantOptions:n||[],loading:a,error:o}},ce=J(K)(({theme:t})=>({marginTop:t.spacing(2),marginBottom:t.spacing(1.5)})),le=({project:t,parent:s,onSelect:r})=>{const{parentVariantOptions:n}=O(t,s),a=e.jsx(Y,{fontSize:"small"}),o=e.jsx(X,{fontSize:"small"});return e.jsx(ce,{id:"single-variant-options",options:n,renderOption:(i,c,{selected:h})=>e.jsxs("li",{...i,children:[e.jsx(N,{icon:a,checkedIcon:o,style:{marginRight:8},checked:h}),c]}),renderInput:i=>e.jsx(G,{...i,placeholder:"Select variant"}),fullWidth:!0,onChange:(i,c)=>{r(String(c))}})},de=({projectId:t,featureId:s,isOpen:r,setIsOpen:n,onComplete:a})=>{const{markFeatureCompleted:o}=Z(),{parentVariantOptions:i}=O(t,s),[c,h]=f.useState("kept"),[d,u]=f.useState(void 0),{trackEvent:p}=U(),g=async()=>{const l=c==="kept-with-variant"?"kept":c;await o(s,t,{status:l,statusValue:d}),n(!1),a(),p("feature-lifecycle",{props:{eventType:"complete",status:l}})};return e.jsx(R,{open:r,title:"Mark completed",onClose:()=>{n(!1)},disabledPrimaryButton:c==="kept-with-variant"&&d===null,onClick:g,primaryButtonText:"Mark completed",secondaryButtonText:"Cancel",children:e.jsxs(T,{children:[e.jsxs(T,{sx:{mt:2,mb:4},children:["Marking the feature ",e.jsx("b",{children:s})," as complete does not affect any configuration, but it moves the feature flag into it’s next life cycle stage and is an indication that you have learned what you needed in order to progress with the feature. It serves as a reminder to start cleaning up the feature flag and removing it from the code."]}),e.jsx(C,{sx:{mb:2},children:e.jsx("b",{children:"What was the outcome of this feature?"})}),e.jsxs(I,{"aria-label":"selected-value",name:"selected",sx:{gap:l=>l.spacing(.5)},onChange:(l,v)=>{h(v)},children:[e.jsx(A,{value:"kept",legal:{value:"We decided to keep the feature"},control:e.jsx(b,{})},"kept"),e.jsx(A,{value:"discarded",legal:{value:"We decided to discard the feature"},control:e.jsx(b,{})},"discarded"),e.jsx(x,{condition:i.length>0,show:e.jsx(A,{value:"kept-with-variant",legal:{value:"We decided to keep the feature variant",description:"Choose to specify which feature variant will be kept"},control:e.jsx(b,{})},"kept-with-variant")}),e.jsx(x,{condition:i.length>0&&c==="kept-with-variant",show:e.jsx(le,{parent:s,project:t,onSelect:l=>{u(l)}})})]})]})})};export{ue as F,de as M,ge as a,O as u};
@@ -1 +1 @@
1
- import{cJ as h,b as x,r as u,j as t,R as m,gf as c,jO as y,jP as j,jQ as f,T as d,s as i}from"./index-DMSjiFEm.js";import{u as b,N as v}from"./NetworkPrometheusAPIWarning-ltyTlXFF.js";import{u as g}from"./unknownify-B7hmSXnj.js";const w=i("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),S=i("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap"})),p=i("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),k=i(d)(({theme:e})=>({fontWeight:e.fontWeight.bold})),A=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary})),q=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),C=e=>e[0]*1e3>Date.now()-6e5,E=e=>{var a,s;const r=(e.values||[]).filter(l=>C(l)),o=r.length?Number.parseFloat(r[r.length-1][1]):0;return{label:e.label,reqs:o,type:g((s=(a=e.metric)==null?void 0:a.endpoint)==null?void 0:s.split("/")[2])}},B=(e,n)=>{var o;const r=n.label+n.type;return e[r]={...n,reqs:n.reqs+(((o=e[r])==null?void 0:o.reqs)??0)},e},N=e=>{var o,a;const r=(((a=(o=e==null?void 0:e.data)==null?void 0:o.result)==null?void 0:a.map(s=>{var l;return{...s,label:g((l=s.metric)==null?void 0:l.appName)}}).filter(s=>s.label!=="unknown"))||[]).map(E).reduce(B,{});return Object.values(r).map(s=>({...s,reqs:s.reqs.toFixed(2)})).filter(s=>s.reqs!=="0.00")??[]},D=()=>{h("Network - Overview");const e=x(),{metrics:n}=b(),r=u.useMemo(()=>N(n),[n]);return r.length===0?t.jsxs(m,{severity:"warning",children:["No data available.",t.jsx(v,{})]}):t.jsxs(c.ArcherContainer,{strokeColor:e.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(w,{children:t.jsx(c.ArcherElement,{id:"unleash",children:t.jsxs(p,{children:[t.jsx(y,{darkmode:t.jsx(f,{}),lightmode:t.jsx(j,{})}),t.jsx(d,{sx:{marginTop:e.spacing(1)},children:"Unleash"})]})})}),t.jsx(S,{children:r.map(({label:o,reqs:a,type:s},l)=>t.jsx(c.ArcherElement,{id:`${l}`,relations:[{targetId:"unleash",targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:e.palette.secondary.border}}],children:t.jsxs(p,{children:[t.jsx(k,{children:o}),t.jsxs(A,{children:[a," req/s"]}),t.jsxs(q,{children:[s," app"]})]})}))})]})};export{D as NetworkOverview,D as default};
1
+ import{cz as g,b as u,r as x,j as t,Q as y,ky as c,lt as m,lu as f,lv as j,T as d,s as i}from"./index-CoLhlfXP.js";import{u as b,N as v}from"./NetworkPrometheusAPIWarning-CYo3j2Tj.js";import{u as h}from"./unknownify-B7hmSXnj.js";const w=i("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),S=i("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap"})),p=i("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),k=i(d)(({theme:e})=>({fontWeight:e.fontWeight.bold})),A=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary})),q=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),C=e=>e[0]*1e3>Date.now()-6e5,E=e=>{var a,s;const r=(e.values||[]).filter(l=>C(l)),o=r.length?Number.parseFloat(r[r.length-1][1]):0;return{label:e.label,reqs:o,type:h((s=(a=e.metric)==null?void 0:a.endpoint)==null?void 0:s.split("/")[2])}},B=(e,n)=>{var o;const r=n.label+n.type;return e[r]={...n,reqs:n.reqs+(((o=e[r])==null?void 0:o.reqs)??0)},e},N=e=>{var o,a;const r=(((a=(o=e==null?void 0:e.data)==null?void 0:o.result)==null?void 0:a.map(s=>{var l;return{...s,label:h((l=s.metric)==null?void 0:l.appName)}}).filter(s=>s.label!=="unknown"))||[]).map(E).reduce(B,{});return Object.values(r).map(s=>({...s,reqs:s.reqs.toFixed(2)})).filter(s=>s.reqs!=="0.00")??[]},D=()=>{g("Network - Overview");const e=u(),{metrics:n}=b(),r=x.useMemo(()=>N(n),[n]);return r.length===0?t.jsxs(y,{severity:"warning",children:["No data available.",t.jsx(v,{})]}):t.jsxs(c.ArcherContainer,{strokeColor:e.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(w,{children:t.jsx(c.ArcherElement,{id:"unleash",children:t.jsxs(p,{children:[t.jsx(m,{darkmode:t.jsx(j,{}),lightmode:t.jsx(f,{})}),t.jsx(d,{sx:{marginTop:e.spacing(1)},children:"Unleash"})]})})}),t.jsx(S,{children:r.map(({label:o,reqs:a,type:s},l)=>t.jsx(c.ArcherElement,{id:`${l}`,relations:[{targetId:"unleash",targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:e.palette.secondary.border}}],children:t.jsxs(p,{children:[t.jsx(k,{children:o}),t.jsxs(A,{children:[a," req/s"]}),t.jsxs(q,{children:[s," app"]})]})}))})]})};export{D as NetworkOverview,D as default};
@@ -1 +1 @@
1
- import{ba as a,b8 as i,b7 as c,r as u,b9 as h,j as n}from"./index-DMSjiFEm.js";const f=(e={})=>{const{uiConfig:{prometheusAPIAvailable:r}}=a(),{data:t,error:s,mutate:o}=i(r,{},c("api/admin/metrics/rps"),l,e);return u.useMemo(()=>({metrics:t,loading:!s&&!t,refetch:()=>o(),error:s}),[t,s,o])},l=e=>fetch(e).then(h("Instance Metrics")).then(r=>r.json()),p=()=>{const{uiConfig:{prometheusAPIAvailable:e}}=a();return e?null:n.jsxs("p",{children:["This view requires the ",n.jsx("strong",{children:"PROMETHEUS_API"})," environment variable to be set. Refer to our"," ",n.jsx("a",{href:"https://docs.getunleash.io/concepts/network-view#data-source",target:"_blank",rel:"noreferrer",children:"documentation"})," ","for more information."]})};export{p as N,f as u};
1
+ import{b9 as a,b7 as i,b6 as c,r as u,b8 as h,j as n}from"./index-CoLhlfXP.js";const f=(e={})=>{const{uiConfig:{prometheusAPIAvailable:r}}=a(),{data:t,error:s,mutate:o}=i(r,{},c("api/admin/metrics/rps"),l,e);return u.useMemo(()=>({metrics:t,loading:!s&&!t,refetch:()=>o(),error:s}),[t,s,o])},l=e=>fetch(e).then(h("Instance Metrics")).then(r=>r.json()),p=()=>{const{uiConfig:{prometheusAPIAvailable:e}}=a();return e?null:n.jsxs("p",{children:["This view requires the ",n.jsx("strong",{children:"PROMETHEUS_API"})," environment variable to be set. Refer to our"," ",n.jsx("a",{href:"https://docs.getunleash.io/concepts/network-view#data-source",target:"_blank",rel:"noreferrer",children:"documentation"})," ","for more information."]})};export{p as N,f as u};
@@ -1 +1 @@
1
- var h=Object.defineProperty;var k=(e,t,a)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var s=(e,t,a)=>k(e,typeof t!="symbol"?t+"":t,a);import{bq as C,b as j,r as p,cJ as w,j as o,C as v,c$ as P,dB as S,R as N,jm as u,jR as R,dC as I,dD as q,dE as A,dF as M,dG as T,jH as E,js as D,jr as L,jq as _}from"./index-DMSjiFEm.js";import{u as H,N as W}from"./NetworkPrometheusAPIWarning-ltyTlXFF.js";import{u as g}from"./unknownify-B7hmSXnj.js";const m=["circle","rect","rectRounded","rectRot","triangle"],$=(e,t)=>e.map(a=>({x:a[0],y:t(a[1])})),B=(e,t)=>({locale:t.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.action.active,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:a=>u(1e3*a[0].parsed.x,t.locale)},itemSort:(a,i)=>i.parsed.y-a.parsed.y},legend:{position:"bottom",align:"start",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0,padding:24}},title:{text:"Top 10 requests per second in the last 6 hours",position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary,padding:{bottom:32}}},scales:{y:{type:"linear",title:{display:!0,text:"Requests per second",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:"minute"},grid:{display:!0,color:e.palette.divider,borderColor:e.palette.divider},ticks:{callback:(a,i,r)=>u(r[i].value*1e3,t.locale)}}}});class F{constructor(t){s(this,"items");s(this,"picked",new Map);this.items=new R(t)}pick(t){return this.picked.has(t)||this.picked.set(t,this.items.next()),this.picked.get(t)}}const z=(e,t)=>{var a;if((a=t==null?void 0:t.data)!=null&&a.result){const i=new F([e.palette.success,e.palette.error,e.palette.primary,e.palette.warning]);return t.data.result.map((r,x)=>{var c,d;const n=g((c=r.metric)==null?void 0:c.endpoint),y=g((d=r.metric)==null?void 0:d.appName),l=i.pick(n),b=r.values||[];return{label:`${n}: ${y}`,borderColor:l.main,backgroundColor:l.main,data:$(b,f=>Number.parseFloat(f)),elements:{point:{radius:4,pointStyle:m[x%m.length]},line:{borderDash:[8,4]}}}})}return[]},Q=()=>{const{locationSettings:e}=C(),{metrics:t}=H(),a=j(),i=p.useMemo(()=>B(a,e),[a,e]);w("Network - Traffic");const r=p.useMemo(()=>({datasets:z(a,t)}),[a,t,e]);return o.jsx(v,{condition:r.datasets.length===0,show:o.jsxs(N,{severity:"warning",children:["No data available.",o.jsx(W,{})]}),elseShow:o.jsx(P,{sx:{display:"grid",gap:4},children:o.jsx("div",{style:{height:400},children:o.jsx(S,{data:r,options:i,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})})})};I.register(q,A,M,T,E,D,L,_);export{Q as NetworkTraffic,Q as default};
1
+ var f=Object.defineProperty;var h=(e,t,a)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var s=(e,t,a)=>h(e,typeof t!="symbol"?t+"":t,a);import{bp as C,b as w,r as p,cz as v,j as o,C as P,cR as S,dr as j,Q as N,k$ as u,lw as I,ds as R,dt as A,du as M,dv as T,dw as q,lk as E,l5 as L,l4 as _,l3 as D}from"./index-CoLhlfXP.js";import{u as W,N as $}from"./NetworkPrometheusAPIWarning-CYo3j2Tj.js";import{u as g}from"./unknownify-B7hmSXnj.js";const m=["circle","rect","rectRounded","rectRot","triangle"],z=(e,t)=>e.map(a=>({x:a[0],y:t(a[1])})),H=(e,t)=>({locale:t.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.action.active,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:a=>u(1e3*a[0].parsed.x,t.locale)},itemSort:(a,i)=>i.parsed.y-a.parsed.y},legend:{position:"bottom",align:"start",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0,padding:24}},title:{text:"Top 10 requests per second in the last 6 hours",position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary,padding:{bottom:32}}},scales:{y:{type:"linear",title:{display:!0,text:"Requests per second",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:"minute"},grid:{display:!0,color:e.palette.divider,borderColor:e.palette.divider},ticks:{callback:(a,i,r)=>u(r[i].value*1e3,t.locale)}}}});class B{constructor(t){s(this,"items");s(this,"picked",new Map);this.items=new I(t)}pick(t){return this.picked.has(t)||this.picked.set(t,this.items.next()),this.picked.get(t)}}const F=(e,t)=>{var a;if((a=t==null?void 0:t.data)!=null&&a.result){const i=new B([e.palette.success,e.palette.error,e.palette.primary,e.palette.warning]);return t.data.result.map((r,x)=>{var c,d;const n=g((c=r.metric)==null?void 0:c.endpoint),y=g((d=r.metric)==null?void 0:d.appName),l=i.pick(n),b=r.values||[];return{label:`${n}: ${y}`,borderColor:l.main,backgroundColor:l.main,data:z(b,k=>Number.parseFloat(k)),elements:{point:{radius:4,pointStyle:m[x%m.length]},line:{borderDash:[8,4]}}}})}return[]},K=()=>{const{locationSettings:e}=C(),{metrics:t}=W(),a=w(),i=p.useMemo(()=>H(a,e),[a,e]);v("Network - Traffic");const r=p.useMemo(()=>({datasets:F(a,t)}),[a,t,e]);return o.jsx(P,{condition:r.datasets.length===0,show:o.jsxs(N,{severity:"warning",children:["No data available.",o.jsx($,{})]}),elseShow:o.jsx(S,{sx:{display:"grid",gap:4},children:o.jsx("div",{style:{height:400},children:o.jsx(j,{data:r,options:i,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})})})};R.register(A,M,T,q,E,L,_,D);export{K as NetworkTraffic,K as default};
@@ -0,0 +1 @@
1
+ import{bp as E,j as e,K as d,cL as v,s as c,hF as f,b9 as y,b6 as B,cp as q,r as A,b8 as F,cz as I,cg as P,C as p,Q as x,L as m,l1 as _,ds as M,dt as N,du as k,l2 as z,l3 as $,l4 as H,l5 as O}from"./index-CoLhlfXP.js";import{a as W}from"./formatTickValue-BcLsqREh.js";import{u as Y,a as G,B as K,S as Q,T as J,P as V,n as X,g as Z}from"./networkTrafficUsageHighlightPlugin-CqEM-cK_.js";import{p as ee,c as l}from"./LazyAdminExport-ByTh4iFa.js";import"./RoleCell-ZzU5Oqy8.js";import"./useApiTokens-ClWvohC9.js";import"./PercentageDonut-CA9hYg3v.js";const S=c("article")(({theme:s})=>({minWidth:"200px",border:`2px solid ${s.palette.divider}`,borderRadius:s.shape.borderRadiusLarge,padding:s.spacing(3),display:"flex",flexDirection:"column",gap:s.spacing(2)})),T=c("h3")(({theme:s})=>({margin:0,fontSize:s.typography.body1.fontSize})),w=c("dl")(({theme:s})=>({display:"flex",flexDirection:"column",gap:s.spacing(2.5),padding:0,margin:0})),a=c("div")(({theme:s})=>({display:"flex",flexFlow:"row wrap",justifyContent:"space-between",gap:s.spacing(1,3),fontSize:s.typography.body2.fontSize,color:s.palette.text.secondary,"& dd":{margin:0,color:s.palette.text.primary}})),se=s=>{const r=t=>t.toLocaleString("en-US",{month:"short",year:"numeric"});if(s.grouping==="monthly"){const t=new Date,n=f(t,s.monthsBack),o=f(t,1);return`Average requests from ${r(n)} to ${r(o)}`}return`Requests used in ${r(ee(s.month))}`},te=({period:s,usageTotal:r,includedTraffic:t,purchasedTraffic:n,currentMonth:o})=>{const{locationSettings:i}=E();return e.jsxs(S,{children:[e.jsx(T,{children:"Number of requests to Unleash"}),e.jsxs(w,{children:[e.jsxs(a,{children:[e.jsx("dt",{children:se(s)}),e.jsx("dd",{children:e.jsxs(d,{color:t>0?r<=t?"success":"error":"neutral",children:[r.toLocaleString(i.locale??"en-US")," ","requests"]})})]}),t>0&&e.jsxs(a,{children:[e.jsx("dt",{children:"Included in your plan"}),e.jsxs("dd",{children:[t.toLocaleString("en-US")," requests"]})]}),n>0&&o&&e.jsxs(a,{children:[e.jsx("dt",{children:"Additional traffic purchased"}),e.jsxs("dd",{children:[n.toLocaleString("en-US")," requests"]})]}),t>0&&o&&e.jsxs(a,{children:[e.jsx("dt",{children:"Total traffic available"}),e.jsxs("dd",{children:[(t+n).toLocaleString("en-US")," ","requests"]})]})]})]})},ne=({overages:s,overageCost:r,estimatedMonthlyCost:t})=>e.jsxs(S,{children:[e.jsx(T,{children:"Accrued traffic charges"}),e.jsxs(w,{children:[e.jsxs(a,{children:[e.jsxs("dt",{children:["Request overages this month (",e.jsx(v,{href:"https://www.getunleash.io/pricing",children:"pricing"}),")"]}),e.jsxs("dd",{children:[s.toLocaleString()," requests"]})]}),e.jsxs(a,{children:[e.jsx("dt",{children:"Accrued traffic charges"}),e.jsx("dd",{children:e.jsxs(d,{color:"secondary",children:[r," USD"]})})]}),t>0&&e.jsxs(a,{children:[e.jsx("dt",{children:"Estimated charges based on current usage"}),e.jsx("dd",{children:e.jsxs(d,{color:"secondary",children:[t," USD"]})})]})]})]}),re=53,oe=259,j=1e6,ae=(s,r)=>!s||r==="pay-as-you-go"?re:oe;function ie(s,r,t){return s===void 0?ae(r,t):s}function ce(s){return s===void 0?0:s}const le=()=>{const{isEnterprise:s,uiConfig:r}=y(),t=B("/api/instance/trafficBundles"),{data:n,error:o,mutate:i}=q(t,de);return{trafficBundles:A.useMemo(()=>({includedTraffic:ie(n==null?void 0:n.includedTraffic,s(),r.billing)*j,purchasedTraffic:ce(n==null?void 0:n.purchasedTraffic)*j}),[n]),loading:!o&&!n,refetch:i}},de=s=>fetch(s).then(F("configuration")).then(r=>r.json()),ue=c("div")(({theme:s})=>({display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, max-content))",flex:1,gap:s.spacing(2,4)})),ye=()=>{I("Network - Data Usage");const s=P("estimateTrafficDataCost"),{isOss:r}=y(),{trafficBundles:t}=le(),n=t.includedTraffic+t.purchasedTraffic,{chartDataSelection:o,setChartDataSelection:i,options:u}=Y(n),{chartData:C,usageTotal:h,overageCost:g,estimatedMonthlyCost:L,requestSummaryUsage:b}=G(n,o),U=o.grouping==="daily"&&o.month===l&&n>0&&h-n>0&&s,D=o.grouping==="daily"&&o.month===l,R=(o.grouping==="monthly"||o.month===l)&&n>0&&g>0;return e.jsx(p,{condition:r(),show:e.jsx(x,{severity:"warning",children:"Not enabled."}),elseShow:e.jsxs(e.Fragment,{children:[e.jsx(p,{condition:R,show:e.jsxs(x,{severity:"warning",sx:{mb:4},children:[e.jsx(K,{children:"Heads up!"})," You are currently consuming more requests than your plan includes and will be billed according to our terms. Please see"," ",e.jsx(m,{to:"https://www.getunleash.io/pricing",children:"this page"})," ","for more information. In order to reduce your traffic consumption, you may configure an"," ",e.jsx(m,{to:"https://docs.getunleash.io/unleash-edge",children:"Unleash Edge instance"})," ","in your own datacenter."]})}),e.jsxs(Q,{children:[e.jsxs(J,{children:[e.jsxs(ue,{children:[e.jsx(te,{period:o,usageTotal:b,includedTraffic:t.includedTraffic,purchasedTraffic:t.purchasedTraffic,currentMonth:D}),U&&e.jsx(ne,{overageCost:g,overages:h-n,estimatedMonthlyCost:L})]}),e.jsx(V,{selectedPeriod:o,setPeriod:i})]}),e.jsx(_,{data:C,plugins:[X],options:u,"aria-label":Z(o)})]})]})})};M.register(W,N,k,z,$,H,O);export{ye as default};
@@ -1 +1 @@
1
- import{b as p,j as o,s as l}from"./index-DMSjiFEm.js";const x=l("div")(()=>({display:"flex",alignItems:"center",justifyContent:"center",position:"relative",margin:0})),y=l("div",{shouldForwardProp:e=>e!=="color"})(({theme:e,color:r})=>({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:r,fontSize:e.fontSizes.smallerBody,margin:0})),u=({percentage:e,size:r="4rem",disabled:c=!1,children:d,strokeRatio:h=.2})=>{const s=p(),m={display:"block",borderRadius:"100%",transform:"rotate(-90deg)",height:r,width:r},t=100/(2*Math.PI),n=2*t,a=n*h,i=c?s.palette.neutral.border:s.palette.primary.light;return o.jsxs(x,{children:[o.jsxs("svg",{viewBox:`0 0 ${n} ${n}`,style:m,"aria-hidden":!0,children:[o.jsx("circle",{r:t,cx:t,cy:t,fill:"none",stroke:s.palette.background.elevation2,strokeWidth:a}),o.jsx("circle",{r:t,cx:t,cy:t,fill:"none",stroke:i,strokeWidth:a,strokeDasharray:`${e} 100`})]}),o.jsx(y,{color:i,children:d})]})};export{u as P};
1
+ import{b as p,j as o,s as l}from"./index-CoLhlfXP.js";const x=l("div")(()=>({display:"flex",alignItems:"center",justifyContent:"center",position:"relative",margin:0})),y=l("div",{shouldForwardProp:e=>e!=="color"})(({theme:e,color:r})=>({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:r,fontSize:e.fontSizes.smallerBody,margin:0})),u=({percentage:e,size:r="4rem",disabled:c=!1,children:d,strokeRatio:h=.2})=>{const s=p(),m={display:"block",borderRadius:"100%",transform:"rotate(-90deg)",height:r,width:r},t=100/(2*Math.PI),n=2*t,a=n*h,i=c?s.palette.neutral.border:s.palette.primary.light;return o.jsxs(x,{children:[o.jsxs("svg",{viewBox:`0 0 ${n} ${n}`,style:m,"aria-hidden":!0,children:[o.jsx("circle",{r:t,cx:t,cy:t,fill:"none",stroke:s.palette.background.elevation2,strokeWidth:a}),o.jsx("circle",{r:t,cx:t,cy:t,fill:"none",stroke:i,strokeWidth:a,strokeDasharray:`${e} 100`})]}),o.jsx(y,{color:i,children:d})]})};export{u as P};